Made Navigation Bar transparent and added some MD3 themes
This commit is contained in:
parent
9f17bf6378
commit
3722347305
29 changed files with 76 additions and 127 deletions
|
@ -27,6 +27,7 @@ import code.name.monkey.retromusic.activities.base.AbsCastActivity
|
|||
import code.name.monkey.retromusic.databinding.SlidingMusicPanelLayoutBinding
|
||||
import code.name.monkey.retromusic.extensions.extra
|
||||
import code.name.monkey.retromusic.extensions.findNavController
|
||||
import code.name.monkey.retromusic.extensions.surfaceColor
|
||||
import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewFragment
|
||||
import code.name.monkey.retromusic.fragments.home.HomeFragment
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||
|
@ -55,7 +56,6 @@ class MainActivity : AbsCastActivity(), OnSharedPreferenceChangeListener {
|
|||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
setDrawUnderStatusBar()
|
||||
super.onCreate(savedInstanceState)
|
||||
setStatusbarColorAuto()
|
||||
setTaskDescriptionColorAuto()
|
||||
hideStatusBar()
|
||||
updateTabs()
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
*/
|
||||
package code.name.monkey.retromusic.activities.base
|
||||
|
||||
import android.content.res.ColorStateList
|
||||
import android.graphics.Color
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
|
@ -26,10 +27,10 @@ import androidx.core.view.updateLayoutParams
|
|||
import androidx.core.view.updatePadding
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.commit
|
||||
import code.name.monkey.appthemehelper.util.ATHUtil
|
||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.RetroBottomSheetBehavior
|
||||
import code.name.monkey.retromusic.databinding.ActivityMainContentBinding
|
||||
import code.name.monkey.retromusic.databinding.SlidingMusicPanelLayoutBinding
|
||||
import code.name.monkey.retromusic.extensions.*
|
||||
import code.name.monkey.retromusic.fragments.LibraryViewModel
|
||||
|
@ -109,6 +110,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
|
|||
println("Do something")
|
||||
}
|
||||
}
|
||||
println(bottomSheetBehavior.peekHeight)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -158,12 +160,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
|
|||
}
|
||||
|
||||
protected fun wrapSlidingMusicPanel(): SlidingMusicPanelLayoutBinding {
|
||||
val slidingMusicPanelLayoutBinding =
|
||||
SlidingMusicPanelLayoutBinding.inflate(layoutInflater)
|
||||
val contentContainer: ViewGroup =
|
||||
slidingMusicPanelLayoutBinding.mainContentFrame
|
||||
ActivityMainContentBinding.inflate(layoutInflater, contentContainer, true)
|
||||
return slidingMusicPanelLayoutBinding
|
||||
return SlidingMusicPanelLayoutBinding.inflate(layoutInflater)
|
||||
}
|
||||
|
||||
fun collapsePanel() {
|
||||
|
@ -187,11 +184,16 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
|
|||
|
||||
open fun onPanelCollapsed() {
|
||||
// restore values
|
||||
super.setLightStatusbar(lightStatusBar)
|
||||
super.setLightStatusbarAuto(surfaceColor())
|
||||
super.setTaskDescriptionColor(taskColor)
|
||||
}
|
||||
|
||||
open fun onPanelExpanded() {
|
||||
if (nowPlayingScreen == Blur ) {
|
||||
super.setLightStatusbar(false)
|
||||
} else {
|
||||
super.setLightStatusbarAuto(surfaceColor())
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupSlidingUpPanel() {
|
||||
|
@ -286,7 +288,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
|
|||
}
|
||||
|
||||
private fun hideBottomBar(hide: Boolean) {
|
||||
val heightOfBar = RetroUtil.getNavigationBarHeight() +
|
||||
val heightOfBar =
|
||||
if (MusicPlayerRemote.isCasting) dip(R.dimen.cast_mini_player_height) else dip(R.dimen.mini_player_height)
|
||||
val heightOfBarWithTabs = RetroUtil.getNavigationBarHeight() +
|
||||
if (MusicPlayerRemote.isCasting) dip(R.dimen.mini_cast_player_height_expanded) else dip(
|
||||
|
|
|
@ -33,6 +33,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil
|
|||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
import code.name.monkey.retromusic.LanguageContextWrapper
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.extensions.surfaceColor
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import code.name.monkey.retromusic.util.RetroUtil
|
||||
import code.name.monkey.retromusic.util.theme.ThemeManager
|
||||
|
|
|
@ -29,6 +29,7 @@ import androidx.fragment.app.Fragment
|
|||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.navigation.fragment.NavHostFragment
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
|
||||
fun Fragment.getIntRes(@IntegerRes int: Int): Int {
|
||||
return resources.getInteger(int)
|
||||
|
@ -97,3 +98,7 @@ fun Context.getDrawableCompat(@DrawableRes drawableRes: Int): Drawable {
|
|||
fun Fragment.getDrawableCompat(@DrawableRes drawableRes: Int): Drawable {
|
||||
return AppCompatResources.getDrawable(requireContext(), drawableRes)!!
|
||||
}
|
||||
|
||||
fun Fragment.applyToolbar(toolbar: MaterialToolbar) {
|
||||
(requireActivity() as AppCompatActivity).applyToolbar(toolbar)
|
||||
}
|
|
@ -1,66 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2020 Hemanth Savarla.
|
||||
*
|
||||
* Licensed under the GNU General Public License v3
|
||||
*
|
||||
* This is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
package code.name.monkey.retromusic.fragments.artists
|
||||
|
||||
import androidx.lifecycle.*
|
||||
import code.name.monkey.retromusic.interfaces.IMusicServiceEventListener
|
||||
import code.name.monkey.retromusic.model.Artist
|
||||
import code.name.monkey.retromusic.network.Result
|
||||
import code.name.monkey.retromusic.network.model.LastFmArtist
|
||||
import code.name.monkey.retromusic.repository.RealRepository
|
||||
import kotlinx.coroutines.Dispatchers.IO
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class AlbumArtistDetailsViewModel(
|
||||
private val realRepository: RealRepository,
|
||||
private val artistName: String
|
||||
) : ViewModel(), IMusicServiceEventListener {
|
||||
private val artistDetails = MutableLiveData<Artist>()
|
||||
|
||||
init {
|
||||
fetchAlbumArtist()
|
||||
}
|
||||
|
||||
private fun fetchAlbumArtist() {
|
||||
viewModelScope.launch(IO) {
|
||||
artistDetails.postValue(realRepository.albumArtistByName(artistName))
|
||||
}
|
||||
}
|
||||
|
||||
fun getArtist(): LiveData<Artist> = artistDetails
|
||||
|
||||
fun getArtistInfo(
|
||||
name: String,
|
||||
lang: String?,
|
||||
cache: String?
|
||||
): LiveData<Result<LastFmArtist>> = liveData(IO) {
|
||||
emit(Result.Loading)
|
||||
val info = realRepository.artistInfo(name, lang, cache)
|
||||
emit(info)
|
||||
}
|
||||
|
||||
override fun onMediaStoreChanged() {
|
||||
fetchAlbumArtist()
|
||||
}
|
||||
|
||||
override fun onServiceConnected() {}
|
||||
override fun onServiceDisconnected() {}
|
||||
override fun onQueueChanged() {}
|
||||
override fun onFavoriteStateChanged() {}
|
||||
override fun onPlayingMetaChanged() {}
|
||||
override fun onPlayStateChanged() {}
|
||||
override fun onRepeatModeChanged() {}
|
||||
override fun onShuffleModeChanged() {}
|
||||
}
|
|
@ -33,7 +33,7 @@ import code.name.monkey.retromusic.dialogs.ImportPlaylistDialog
|
|||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||
import code.name.monkey.retromusic.util.DensityUtil
|
||||
import code.name.monkey.retromusic.util.ThemedFastScroller.create
|
||||
import com.google.android.material.transition.MaterialFadeThrough
|
||||
import com.google.android.material.shape.MaterialShapeDrawable
|
||||
import com.google.android.material.transition.MaterialSharedAxis
|
||||
import me.zhanghai.android.fastscroll.FastScroller
|
||||
import me.zhanghai.android.fastscroll.FastScrollerBuilder
|
||||
|
@ -58,6 +58,7 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
|
|||
initAdapter()
|
||||
setUpRecyclerView()
|
||||
setupToolbar()
|
||||
binding.appBarLayout.statusBarForeground = MaterialShapeDrawable.createWithElevationOverlay(requireContext());
|
||||
}
|
||||
|
||||
fun toolbar(): Toolbar {
|
||||
|
|
|
@ -17,16 +17,13 @@ package code.name.monkey.retromusic.views
|
|||
import android.content.Context
|
||||
import android.content.res.ColorStateList
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.graphics.drawable.RippleDrawable
|
||||
import android.util.AttributeSet
|
||||
import androidx.core.content.ContextCompat
|
||||
import code.name.monkey.appthemehelper.ThemeStore
|
||||
import code.name.monkey.appthemehelper.util.ATHUtil
|
||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||
import code.name.monkey.appthemehelper.util.NavigationViewUtil
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import code.name.monkey.retromusic.util.RippleUtils
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
|
||||
class BottomNavigationBarTinted @JvmOverloads constructor(
|
||||
|
@ -50,17 +47,7 @@ class BottomNavigationBarTinted @JvmOverloads constructor(
|
|||
ColorUtil.withAlpha(iconColor, 0.5f),
|
||||
accentColor
|
||||
)
|
||||
itemBackground = RippleDrawable(
|
||||
RippleUtils.convertToRippleDrawableColor(
|
||||
ColorStateList.valueOf(
|
||||
ThemeStore.accentColor(context).addAlpha()
|
||||
)
|
||||
),
|
||||
ContextCompat.getDrawable(context, R.drawable.bottom_navigation_item_background),
|
||||
ContextCompat.getDrawable(context, R.drawable.bottom_navigation_item_background_mask)
|
||||
)
|
||||
setOnApplyWindowInsetsListener(null)
|
||||
//itemRippleColor = ColorStateList.valueOf(accentColor)
|
||||
itemRippleColor = ColorStateList.valueOf(accentColor.addAlpha())
|
||||
background = ColorDrawable(ATHUtil.resolveColor(context, R.attr.colorSurface))
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue