2019-04-20 05:29:45 +00:00
|
|
|
package code.name.monkey.retromusic.activities.base
|
2018-11-30 01:06:16 +00:00
|
|
|
|
|
|
|
import android.animation.ValueAnimator
|
2019-12-01 11:28:57 +00:00
|
|
|
import android.graphics.Color
|
2018-11-30 01:06:16 +00:00
|
|
|
import android.os.Bundle
|
2019-12-01 11:28:57 +00:00
|
|
|
import android.view.View
|
|
|
|
import android.view.ViewGroup
|
|
|
|
import android.view.ViewTreeObserver
|
2020-05-11 09:51:22 +00:00
|
|
|
import android.widget.FrameLayout
|
2019-02-23 17:39:02 +00:00
|
|
|
import androidx.annotation.LayoutRes
|
|
|
|
import androidx.fragment.app.Fragment
|
2019-12-01 11:28:57 +00:00
|
|
|
import code.name.monkey.appthemehelper.util.ATHUtil
|
|
|
|
import code.name.monkey.appthemehelper.util.ColorUtil
|
2019-02-23 17:39:02 +00:00
|
|
|
import code.name.monkey.retromusic.R
|
2020-05-09 05:55:42 +00:00
|
|
|
import code.name.monkey.retromusic.RetroBottomSheetBehavior
|
2019-12-01 11:28:57 +00:00
|
|
|
import code.name.monkey.retromusic.extensions.hide
|
|
|
|
import code.name.monkey.retromusic.extensions.show
|
|
|
|
import code.name.monkey.retromusic.fragments.MiniPlayerFragment
|
|
|
|
import code.name.monkey.retromusic.fragments.NowPlayingScreen
|
2020-02-26 16:49:24 +00:00
|
|
|
import code.name.monkey.retromusic.fragments.NowPlayingScreen.*
|
2019-04-20 05:29:45 +00:00
|
|
|
import code.name.monkey.retromusic.fragments.base.AbsPlayerFragment
|
|
|
|
import code.name.monkey.retromusic.fragments.player.adaptive.AdaptiveFragment
|
|
|
|
import code.name.monkey.retromusic.fragments.player.blur.BlurPlayerFragment
|
|
|
|
import code.name.monkey.retromusic.fragments.player.card.CardFragment
|
|
|
|
import code.name.monkey.retromusic.fragments.player.cardblur.CardBlurFragment
|
2020-01-06 18:07:02 +00:00
|
|
|
import code.name.monkey.retromusic.fragments.player.circle.CirclePlayerFragment
|
2020-05-09 05:55:42 +00:00
|
|
|
import code.name.monkey.retromusic.fragments.player.classic.ClassicPlayerFragment
|
2019-04-20 05:29:45 +00:00
|
|
|
import code.name.monkey.retromusic.fragments.player.color.ColorFragment
|
|
|
|
import code.name.monkey.retromusic.fragments.player.fit.FitFragment
|
|
|
|
import code.name.monkey.retromusic.fragments.player.flat.FlatPlayerFragment
|
|
|
|
import code.name.monkey.retromusic.fragments.player.full.FullPlayerFragment
|
2020-05-17 19:58:04 +00:00
|
|
|
import code.name.monkey.retromusic.fragments.player.gradient.GradientPlayerFragment
|
2019-04-20 05:29:45 +00:00
|
|
|
import code.name.monkey.retromusic.fragments.player.material.MaterialFragment
|
|
|
|
import code.name.monkey.retromusic.fragments.player.normal.PlayerFragment
|
2019-10-04 10:58:28 +00:00
|
|
|
import code.name.monkey.retromusic.fragments.player.peak.PeakPlayerFragment
|
2019-04-20 05:29:45 +00:00
|
|
|
import code.name.monkey.retromusic.fragments.player.plain.PlainPlayerFragment
|
|
|
|
import code.name.monkey.retromusic.fragments.player.simple.SimplePlayerFragment
|
|
|
|
import code.name.monkey.retromusic.fragments.player.tiny.TinyPlayerFragment
|
2019-05-19 17:10:21 +00:00
|
|
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
2019-12-01 15:27:01 +00:00
|
|
|
import code.name.monkey.retromusic.model.CategoryInfo
|
2019-12-01 11:28:57 +00:00
|
|
|
import code.name.monkey.retromusic.util.DensityUtil
|
2020-06-06 18:57:28 +00:00
|
|
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
2019-02-23 17:39:02 +00:00
|
|
|
import code.name.monkey.retromusic.views.BottomNavigationBarTinted
|
2019-10-04 12:59:37 +00:00
|
|
|
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
2020-05-09 05:55:42 +00:00
|
|
|
import com.google.android.material.shape.MaterialShapeDrawable
|
|
|
|
import com.google.android.material.shape.ShapeAppearanceModel
|
2020-02-26 16:49:24 +00:00
|
|
|
import kotlinx.android.synthetic.main.sliding_music_panel_layout.*
|
2019-02-23 17:39:02 +00:00
|
|
|
|
2020-02-26 16:49:24 +00:00
|
|
|
abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
|
|
|
AbsPlayerFragment.Callbacks {
|
2019-12-01 11:28:57 +00:00
|
|
|
companion object {
|
|
|
|
val TAG: String = AbsSlidingMusicPanelActivity::class.java.simpleName
|
|
|
|
}
|
|
|
|
|
2020-05-11 09:51:22 +00:00
|
|
|
private lateinit var behavior: RetroBottomSheetBehavior<FrameLayout>
|
2019-12-01 11:28:57 +00:00
|
|
|
private var miniPlayerFragment: MiniPlayerFragment? = null
|
|
|
|
private var playerFragment: AbsPlayerFragment? = null
|
2020-05-09 14:45:07 +00:00
|
|
|
private var cps: NowPlayingScreen? = null
|
2019-12-01 11:28:57 +00:00
|
|
|
private var navigationBarColor: Int = 0
|
|
|
|
private var taskColor: Int = 0
|
|
|
|
private var lightStatusBar: Boolean = false
|
|
|
|
private var lightNavigationBar: Boolean = false
|
|
|
|
private var navigationBarColorAnimator: ValueAnimator? = null
|
|
|
|
protected abstract fun createContentView(): View
|
2020-05-09 05:55:42 +00:00
|
|
|
private lateinit var shapeDrawable: MaterialShapeDrawable
|
2019-12-01 11:28:57 +00:00
|
|
|
private val panelState: Int
|
2020-05-11 09:51:22 +00:00
|
|
|
get() = behavior.state
|
2019-12-01 11:28:57 +00:00
|
|
|
|
|
|
|
private val bottomSheetCallbackList = object : BottomSheetBehavior.BottomSheetCallback() {
|
|
|
|
|
|
|
|
override fun onSlide(bottomSheet: View, slideOffset: Float) {
|
|
|
|
setMiniPlayerAlphaProgress(slideOffset)
|
|
|
|
dimBackground.show()
|
|
|
|
dimBackground.alpha = slideOffset
|
2020-05-09 05:55:42 +00:00
|
|
|
shapeDrawable.interpolation = 1 - slideOffset
|
2019-12-01 11:28:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
override fun onStateChanged(bottomSheet: View, newState: Int) {
|
|
|
|
when (newState) {
|
|
|
|
BottomSheetBehavior.STATE_EXPANDED -> {
|
|
|
|
onPanelExpanded()
|
|
|
|
}
|
|
|
|
BottomSheetBehavior.STATE_COLLAPSED -> {
|
|
|
|
onPanelCollapsed()
|
|
|
|
dimBackground.hide()
|
|
|
|
}
|
|
|
|
else -> {
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-05-11 09:51:22 +00:00
|
|
|
fun getBottomSheetBehavior() = behavior
|
2020-05-05 07:42:09 +00:00
|
|
|
|
2019-12-01 11:28:57 +00:00
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
|
super.onCreate(savedInstanceState)
|
|
|
|
setContentView(createContentView())
|
|
|
|
chooseFragmentForTheme()
|
|
|
|
setupSlidingUpPanel()
|
|
|
|
|
|
|
|
|
2020-05-11 09:51:22 +00:00
|
|
|
|
|
|
|
behavior = BottomSheetBehavior.from(slidingPanel) as RetroBottomSheetBehavior
|
2019-12-01 11:28:57 +00:00
|
|
|
|
|
|
|
val themeColor = ATHUtil.resolveColor(this, android.R.attr.windowBackground, Color.GRAY)
|
|
|
|
dimBackground.setBackgroundColor(ColorUtil.withAlpha(themeColor, 0.5f))
|
2020-05-09 05:55:42 +00:00
|
|
|
shapeDrawable = MaterialShapeDrawable(
|
|
|
|
ShapeAppearanceModel.builder(
|
|
|
|
this,
|
|
|
|
R.style.ClassicThemeOverLay,
|
|
|
|
0
|
|
|
|
).build()
|
|
|
|
)
|
|
|
|
slidingPanel.background = shapeDrawable
|
2019-12-01 11:28:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
override fun onResume() {
|
|
|
|
super.onResume()
|
2020-06-06 18:57:28 +00:00
|
|
|
if (cps != PreferenceUtil.nowPlayingScreen) {
|
2019-12-01 11:28:57 +00:00
|
|
|
postRecreate()
|
|
|
|
}
|
2020-05-11 09:51:22 +00:00
|
|
|
behavior.addBottomSheetCallback(bottomSheetCallbackList)
|
2019-12-01 11:28:57 +00:00
|
|
|
|
2020-05-11 09:51:22 +00:00
|
|
|
if (behavior.state == BottomSheetBehavior.STATE_EXPANDED) {
|
2019-12-01 11:28:57 +00:00
|
|
|
setMiniPlayerAlphaProgress(1f)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun onDestroy() {
|
|
|
|
super.onDestroy()
|
2020-05-11 09:51:22 +00:00
|
|
|
behavior.removeBottomSheetCallback(bottomSheetCallbackList)
|
2019-12-01 15:27:01 +00:00
|
|
|
if (navigationBarColorAnimator != null) navigationBarColorAnimator?.cancel() // just in case
|
2019-12-01 11:28:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
protected fun wrapSlidingMusicPanel(@LayoutRes resId: Int): View {
|
2020-02-26 16:49:24 +00:00
|
|
|
val slidingMusicPanelLayout =
|
|
|
|
layoutInflater.inflate(R.layout.sliding_music_panel_layout, null)
|
|
|
|
val contentContainer =
|
|
|
|
slidingMusicPanelLayout.findViewById<ViewGroup>(R.id.mainContentFrame)
|
2019-12-01 11:28:57 +00:00
|
|
|
layoutInflater.inflate(resId, contentContainer)
|
|
|
|
return slidingMusicPanelLayout
|
|
|
|
}
|
|
|
|
|
|
|
|
private fun collapsePanel() {
|
2020-05-11 09:51:22 +00:00
|
|
|
behavior.state = BottomSheetBehavior.STATE_COLLAPSED
|
2019-12-01 11:28:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fun expandPanel() {
|
2020-05-11 09:51:22 +00:00
|
|
|
behavior.state = BottomSheetBehavior.STATE_EXPANDED
|
2019-12-01 11:28:57 +00:00
|
|
|
setMiniPlayerAlphaProgress(1f)
|
|
|
|
}
|
|
|
|
|
|
|
|
private fun setMiniPlayerAlphaProgress(progress: Float) {
|
|
|
|
if (miniPlayerFragment?.view == null) return
|
|
|
|
val alpha = 1 - progress
|
|
|
|
miniPlayerFragment?.view?.alpha = alpha
|
|
|
|
// necessary to make the views below clickable
|
|
|
|
miniPlayerFragment?.view?.visibility = if (alpha == 0f) View.GONE else View.VISIBLE
|
|
|
|
|
|
|
|
bottomNavigationView.translationY = progress * 500
|
2019-12-01 15:27:01 +00:00
|
|
|
//bottomNavigationView.alpha = alpha
|
2019-12-01 11:28:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
open fun onPanelCollapsed() {
|
|
|
|
// restore values
|
|
|
|
super.setLightStatusbar(lightStatusBar)
|
|
|
|
super.setTaskDescriptionColor(taskColor)
|
|
|
|
super.setNavigationbarColor(navigationBarColor)
|
|
|
|
super.setLightNavigationBar(lightNavigationBar)
|
|
|
|
|
|
|
|
|
|
|
|
playerFragment?.setMenuVisibility(false)
|
|
|
|
playerFragment?.userVisibleHint = false
|
|
|
|
playerFragment?.onHide()
|
|
|
|
}
|
|
|
|
|
|
|
|
open fun onPanelExpanded() {
|
|
|
|
val playerFragmentColor = playerFragment!!.paletteColor
|
|
|
|
super.setTaskDescriptionColor(playerFragmentColor)
|
|
|
|
|
|
|
|
playerFragment?.setMenuVisibility(true)
|
|
|
|
playerFragment?.userVisibleHint = true
|
|
|
|
playerFragment?.onShow()
|
|
|
|
onPaletteColorChanged()
|
|
|
|
}
|
|
|
|
|
|
|
|
private fun setupSlidingUpPanel() {
|
2020-02-26 16:49:24 +00:00
|
|
|
slidingPanel.viewTreeObserver.addOnGlobalLayoutListener(object :
|
|
|
|
ViewTreeObserver.OnGlobalLayoutListener {
|
2019-12-01 11:28:57 +00:00
|
|
|
override fun onGlobalLayout() {
|
|
|
|
slidingPanel.viewTreeObserver.removeOnGlobalLayoutListener(this)
|
2020-05-14 10:25:57 +00:00
|
|
|
if (cps != Peak) {
|
2019-12-01 11:28:57 +00:00
|
|
|
val params = slidingPanel.layoutParams as ViewGroup.LayoutParams
|
|
|
|
params.height = ViewGroup.LayoutParams.MATCH_PARENT
|
|
|
|
slidingPanel.layoutParams = params
|
|
|
|
}
|
|
|
|
when (panelState) {
|
|
|
|
BottomSheetBehavior.STATE_EXPANDED -> onPanelExpanded()
|
|
|
|
BottomSheetBehavior.STATE_COLLAPSED -> onPanelCollapsed()
|
|
|
|
else -> playerFragment!!.onHide()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
fun getBottomNavigationView(): BottomNavigationBarTinted {
|
|
|
|
return bottomNavigationView
|
|
|
|
}
|
|
|
|
|
2020-05-11 09:51:22 +00:00
|
|
|
fun setBottomBarVisibility(visible: Int) {
|
|
|
|
bottomNavigationView.visibility = visible
|
|
|
|
hideBottomBar(MusicPlayerRemote.playingQueue.isEmpty())
|
|
|
|
}
|
|
|
|
|
2019-12-01 11:28:57 +00:00
|
|
|
private fun hideBottomBar(hide: Boolean) {
|
|
|
|
val heightOfBar = resources.getDimensionPixelSize(R.dimen.mini_player_height)
|
2020-02-26 16:49:24 +00:00
|
|
|
val heightOfBarWithTabs =
|
|
|
|
resources.getDimensionPixelSize(R.dimen.mini_player_height_expanded)
|
2019-12-01 11:28:57 +00:00
|
|
|
|
|
|
|
if (hide) {
|
2020-05-11 09:51:22 +00:00
|
|
|
behavior.isHideable = true
|
|
|
|
behavior.peekHeight = 0
|
2019-12-01 11:28:57 +00:00
|
|
|
bottomNavigationView.elevation = DensityUtil.dip2px(this, 10f).toFloat()
|
2020-05-11 19:39:44 +00:00
|
|
|
collapsePanel()
|
2019-12-01 11:28:57 +00:00
|
|
|
} else {
|
|
|
|
if (MusicPlayerRemote.playingQueue.isNotEmpty()) {
|
2020-02-25 06:44:46 +00:00
|
|
|
slidingPanel.elevation = DensityUtil.dip2px(this, 10f).toFloat()
|
2019-12-01 11:28:57 +00:00
|
|
|
bottomNavigationView.elevation = DensityUtil.dip2px(this, 10f).toFloat()
|
2020-05-11 09:51:22 +00:00
|
|
|
behavior.isHideable = false
|
|
|
|
behavior.peekHeight =
|
|
|
|
if (bottomNavigationView.visibility == View.VISIBLE) {
|
|
|
|
heightOfBarWithTabs
|
|
|
|
} else {
|
|
|
|
heightOfBar
|
|
|
|
}
|
2019-12-01 11:28:57 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private fun chooseFragmentForTheme() {
|
2020-06-06 18:57:28 +00:00
|
|
|
cps = PreferenceUtil.nowPlayingScreen
|
2020-05-09 14:45:07 +00:00
|
|
|
val fragment: Fragment = when (cps) {
|
2020-05-14 10:25:57 +00:00
|
|
|
Blur -> BlurPlayerFragment()
|
|
|
|
Adaptive -> AdaptiveFragment()
|
|
|
|
Normal -> PlayerFragment()
|
|
|
|
Card -> CardFragment()
|
|
|
|
BlurCard -> CardBlurFragment()
|
|
|
|
Fit -> FitFragment()
|
|
|
|
Flat -> FlatPlayerFragment()
|
|
|
|
Full -> FullPlayerFragment()
|
|
|
|
Plain -> PlainPlayerFragment()
|
|
|
|
Simple -> SimplePlayerFragment()
|
|
|
|
Material -> MaterialFragment()
|
|
|
|
Color -> ColorFragment()
|
|
|
|
Tiny -> TinyPlayerFragment()
|
|
|
|
Peak -> PeakPlayerFragment()
|
|
|
|
Circle -> CirclePlayerFragment()
|
2020-05-14 15:27:42 +00:00
|
|
|
Classic -> ClassicPlayerFragment()
|
2020-05-17 19:58:04 +00:00
|
|
|
Gradient -> GradientPlayerFragment()
|
2019-12-01 11:28:57 +00:00
|
|
|
else -> PlayerFragment()
|
|
|
|
} // must implement AbsPlayerFragment
|
2020-05-11 09:51:22 +00:00
|
|
|
supportFragmentManager.beginTransaction()
|
|
|
|
.replace(R.id.playerFragmentContainer, fragment)
|
2019-12-30 11:01:50 +00:00
|
|
|
.commit()
|
2019-12-01 11:28:57 +00:00
|
|
|
supportFragmentManager.executePendingTransactions()
|
|
|
|
|
2020-02-26 16:49:24 +00:00
|
|
|
playerFragment =
|
|
|
|
supportFragmentManager.findFragmentById(R.id.playerFragmentContainer) as AbsPlayerFragment
|
|
|
|
miniPlayerFragment =
|
|
|
|
supportFragmentManager.findFragmentById(R.id.miniPlayerFragment) as MiniPlayerFragment
|
2019-12-01 11:28:57 +00:00
|
|
|
miniPlayerFragment?.view?.setOnClickListener { expandPanel() }
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun onServiceConnected() {
|
|
|
|
super.onServiceConnected()
|
|
|
|
if (MusicPlayerRemote.playingQueue.isNotEmpty()) {
|
2020-02-26 16:49:24 +00:00
|
|
|
slidingPanel.viewTreeObserver.addOnGlobalLayoutListener(object :
|
|
|
|
ViewTreeObserver.OnGlobalLayoutListener {
|
2019-12-01 11:28:57 +00:00
|
|
|
override fun onGlobalLayout() {
|
|
|
|
slidingPanel.viewTreeObserver.removeOnGlobalLayoutListener(this)
|
|
|
|
hideBottomBar(false)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
} // don't call hideBottomBar(true) here as it causes a bug with the SlidingUpPanelLayout
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun onQueueChanged() {
|
|
|
|
super.onQueueChanged()
|
|
|
|
hideBottomBar(MusicPlayerRemote.playingQueue.isEmpty())
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun onBackPressed() {
|
|
|
|
if (!handleBackPress()) super.onBackPressed()
|
|
|
|
}
|
|
|
|
|
|
|
|
open fun handleBackPress(): Boolean {
|
2020-05-11 09:51:22 +00:00
|
|
|
if (behavior.peekHeight != 0 && playerFragment!!.onBackPressed()) return true
|
2019-12-01 11:28:57 +00:00
|
|
|
if (panelState == BottomSheetBehavior.STATE_EXPANDED) {
|
|
|
|
collapsePanel()
|
|
|
|
return true
|
2020-01-24 17:27:43 +00:00
|
|
|
}
|
2019-12-01 11:28:57 +00:00
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun onPaletteColorChanged() {
|
|
|
|
if (panelState == BottomSheetBehavior.STATE_EXPANDED) {
|
|
|
|
val paletteColor = playerFragment!!.paletteColor
|
|
|
|
super.setTaskDescriptionColor(paletteColor)
|
|
|
|
|
|
|
|
val isColorLight = ColorUtil.isColorLight(paletteColor)
|
|
|
|
|
2020-06-06 18:57:28 +00:00
|
|
|
if (PreferenceUtil.isAdaptiveColor && (cps == Normal || cps == Flat)) {
|
2019-12-01 11:28:57 +00:00
|
|
|
super.setLightNavigationBar(true)
|
|
|
|
super.setLightStatusbar(isColorLight)
|
2020-05-14 10:25:57 +00:00
|
|
|
} else if (cps == Card || cps == Blur || cps == BlurCard) {
|
2019-12-01 11:28:57 +00:00
|
|
|
super.setLightStatusbar(false)
|
|
|
|
super.setLightNavigationBar(true)
|
2020-02-02 12:44:16 +00:00
|
|
|
super.setNavigationbarColor(Color.BLACK)
|
2020-05-17 19:58:04 +00:00
|
|
|
} else if (cps == Color || cps == Tiny || cps == Gradient) {
|
2019-12-01 11:28:57 +00:00
|
|
|
super.setNavigationbarColor(paletteColor)
|
|
|
|
super.setLightNavigationBar(isColorLight)
|
|
|
|
super.setLightStatusbar(isColorLight)
|
2020-05-14 10:25:57 +00:00
|
|
|
} else if (cps == Full) {
|
2020-05-09 14:45:07 +00:00
|
|
|
super.setNavigationbarColor(paletteColor)
|
|
|
|
super.setLightNavigationBar(isColorLight)
|
|
|
|
super.setLightStatusbar(false)
|
2020-05-17 19:58:04 +00:00
|
|
|
} else if (cps == Classic) {
|
2020-05-09 05:55:42 +00:00
|
|
|
super.setLightStatusbar(false)
|
2020-05-14 15:27:42 +00:00
|
|
|
} else if (cps == Fit) {
|
2020-02-26 16:49:24 +00:00
|
|
|
super.setLightStatusbar(false)
|
2019-12-01 11:28:57 +00:00
|
|
|
} else {
|
2019-12-30 11:01:50 +00:00
|
|
|
super.setLightStatusbar(
|
|
|
|
ColorUtil.isColorLight(
|
|
|
|
ATHUtil.resolveColor(
|
|
|
|
this,
|
|
|
|
android.R.attr.windowBackground
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
2019-12-01 11:28:57 +00:00
|
|
|
super.setLightNavigationBar(true)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun setLightStatusbar(enabled: Boolean) {
|
|
|
|
lightStatusBar = enabled
|
|
|
|
if (panelState == BottomSheetBehavior.STATE_COLLAPSED) {
|
|
|
|
super.setLightStatusbar(enabled)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun setLightNavigationBar(enabled: Boolean) {
|
|
|
|
lightNavigationBar = enabled
|
|
|
|
if (panelState == BottomSheetBehavior.STATE_COLLAPSED) {
|
|
|
|
super.setLightNavigationBar(enabled)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun setNavigationbarColor(color: Int) {
|
|
|
|
navigationBarColor = color
|
|
|
|
if (panelState == BottomSheetBehavior.STATE_COLLAPSED) {
|
|
|
|
if (navigationBarColorAnimator != null) navigationBarColorAnimator!!.cancel()
|
|
|
|
super.setNavigationbarColor(color)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun setTaskDescriptionColor(color: Int) {
|
|
|
|
taskColor = color
|
|
|
|
if (panelState == BottomSheetBehavior.STATE_COLLAPSED) {
|
|
|
|
super.setTaskDescriptionColor(color)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-05-11 09:51:22 +00:00
|
|
|
fun updateTabs() {
|
2019-12-01 11:28:57 +00:00
|
|
|
bottomNavigationView.menu.clear()
|
2020-06-06 18:57:28 +00:00
|
|
|
val currentTabs: List<CategoryInfo> = PreferenceUtil.libraryCategory
|
2019-12-01 11:28:57 +00:00
|
|
|
for (tab in currentTabs) {
|
|
|
|
if (tab.visible) {
|
|
|
|
val menu = tab.category
|
2019-12-01 15:27:01 +00:00
|
|
|
bottomNavigationView.menu.add(0, menu.id, 0, menu.stringRes).setIcon(menu.icon)
|
2019-12-01 11:28:57 +00:00
|
|
|
}
|
|
|
|
}
|
2020-05-11 09:51:22 +00:00
|
|
|
if (bottomNavigationView.menu.size() == 1) {
|
|
|
|
bottomNavigationView.hide()
|
2019-12-01 15:27:01 +00:00
|
|
|
}
|
2019-12-01 11:28:57 +00:00
|
|
|
}
|
2019-03-25 12:43:43 +00:00
|
|
|
}
|