[BottomNavigation] Fixed BottomNavigation for Immersive mode
This commit is contained in:
parent
e72cffe6ea
commit
444677fe21
6 changed files with 23 additions and 15 deletions
|
@ -25,10 +25,7 @@ import android.view.ViewTreeObserver
|
||||||
import android.view.animation.PathInterpolator
|
import android.view.animation.PathInterpolator
|
||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
import androidx.core.animation.doOnEnd
|
import androidx.core.animation.doOnEnd
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.*
|
||||||
import androidx.core.view.WindowInsetsCompat
|
|
||||||
import androidx.core.view.isGone
|
|
||||||
import androidx.core.view.isVisible
|
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.commit
|
import androidx.fragment.app.commit
|
||||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
|
@ -139,7 +136,6 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
|
||||||
windowInsets = insets
|
windowInsets = insets
|
||||||
insets
|
insets
|
||||||
}
|
}
|
||||||
bottomNavigationView.drawAboveSystemBarsWithPadding()
|
|
||||||
if (RetroUtil.isLandscape()) {
|
if (RetroUtil.isLandscape()) {
|
||||||
binding.slidingPanel.drawAboveSystemBarsWithPadding(true)
|
binding.slidingPanel.drawAboveSystemBarsWithPadding(true)
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,16 +6,14 @@ import android.os.Build
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.view.WindowCompat
|
import androidx.core.view.*
|
||||||
import androidx.core.view.WindowInsetsCompat
|
|
||||||
import androidx.core.view.WindowInsetsControllerCompat
|
|
||||||
import androidx.core.view.isGone
|
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import code.name.monkey.appthemehelper.ATH
|
import code.name.monkey.appthemehelper.ATH
|
||||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
|
import code.name.monkey.retromusic.util.RetroUtil
|
||||||
|
|
||||||
fun AppCompatActivity.toggleScreenOn() {
|
fun AppCompatActivity.toggleScreenOn() {
|
||||||
if (PreferenceUtil.isScreenOnEnabled) {
|
if (PreferenceUtil.isScreenOnEnabled) {
|
||||||
|
@ -41,7 +39,6 @@ fun AppCompatActivity.setImmersiveFullscreen() {
|
||||||
|
|
||||||
fun AppCompatActivity.exitFullscreen() {
|
fun AppCompatActivity.exitFullscreen() {
|
||||||
WindowInsetsControllerCompat(window, window.decorView).apply {
|
WindowInsetsControllerCompat(window, window.decorView).apply {
|
||||||
systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
|
||||||
show(WindowInsetsCompat.Type.systemBars())
|
show(WindowInsetsCompat.Type.systemBars())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
package code.name.monkey.retromusic.extensions
|
package code.name.monkey.retromusic.extensions
|
||||||
|
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
import code.name.monkey.retromusic.util.RetroUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
|
|
||||||
fun WindowInsetsCompat?.safeGetBottomInsets(): Int {
|
fun WindowInsetsCompat?.safeGetBottomInsets(): Int {
|
||||||
// Get Navbar heights if insets are null
|
return if (PreferenceUtil.isFullScreenMode) {
|
||||||
return (this?.getInsets(WindowInsetsCompat.Type.systemBars())?.bottom ?: RetroUtil.getNavigationBarHeight())
|
return 0
|
||||||
|
} else {
|
||||||
|
this?.getInsets(WindowInsetsCompat.Type.systemBars())?.bottom ?: 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ import androidx.appcompat.widget.Toolbar
|
||||||
import androidx.core.view.doOnPreDraw
|
import androidx.core.view.doOnPreDraw
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.core.view.updateLayoutParams
|
import androidx.core.view.updateLayoutParams
|
||||||
|
import androidx.core.view.updatePadding
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import code.name.monkey.appthemehelper.common.ATHToolbarActivity
|
import code.name.monkey.appthemehelper.common.ATHToolbarActivity
|
||||||
|
@ -35,6 +36,7 @@ import code.name.monkey.retromusic.extensions.dip
|
||||||
import code.name.monkey.retromusic.extensions.drawNextToNavbar
|
import code.name.monkey.retromusic.extensions.drawNextToNavbar
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.interfaces.IScrollHelper
|
import code.name.monkey.retromusic.interfaces.IScrollHelper
|
||||||
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import code.name.monkey.retromusic.util.ThemedFastScroller.create
|
import code.name.monkey.retromusic.util.ThemedFastScroller.create
|
||||||
import com.google.android.material.shape.MaterialShapeDrawable
|
import com.google.android.material.shape.MaterialShapeDrawable
|
||||||
import com.google.android.material.transition.MaterialFadeThrough
|
import com.google.android.material.transition.MaterialFadeThrough
|
||||||
|
@ -65,6 +67,7 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
|
||||||
initAdapter()
|
initAdapter()
|
||||||
setUpRecyclerView()
|
setUpRecyclerView()
|
||||||
setupToolbar()
|
setupToolbar()
|
||||||
|
binding.shuffleButton.fitsSystemWindows = PreferenceUtil.isFullScreenMode
|
||||||
// Add listeners when shuffle is visible
|
// Add listeners when shuffle is visible
|
||||||
if (isShuffleVisible) {
|
if (isShuffleVisible) {
|
||||||
binding.recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
|
binding.recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
|
||||||
|
|
|
@ -23,6 +23,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
import code.name.monkey.appthemehelper.util.NavigationViewUtil
|
import code.name.monkey.appthemehelper.util.NavigationViewUtil
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import com.google.android.material.bottomnavigation.BottomNavigationView
|
import com.google.android.material.bottomnavigation.BottomNavigationView
|
||||||
|
import java.lang.RuntimeException
|
||||||
|
|
||||||
class BottomNavigationBarTinted @JvmOverloads constructor(
|
class BottomNavigationBarTinted @JvmOverloads constructor(
|
||||||
context: Context,
|
context: Context,
|
||||||
|
@ -31,6 +32,15 @@ class BottomNavigationBarTinted @JvmOverloads constructor(
|
||||||
) : BottomNavigationView(context, attrs, defStyleAttr) {
|
) : BottomNavigationView(context, attrs, defStyleAttr) {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
// If we are in Immersive mode we have to just set empty OnApplyWindowInsetsListener as
|
||||||
|
// bottom, start, and end padding is always applied (with the help of OnApplyWindowInsetsListener) to
|
||||||
|
// BottomNavigationView to dodge the system navigation bar (so we basically clear that listener).
|
||||||
|
if (PreferenceUtil.isFullScreenMode) {
|
||||||
|
setOnApplyWindowInsetsListener { _, insets ->
|
||||||
|
insets
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
labelVisibilityMode = PreferenceUtil.tabTitleMode
|
labelVisibilityMode = PreferenceUtil.tabTitleMode
|
||||||
|
|
||||||
if (!PreferenceUtil.materialYou) {
|
if (!PreferenceUtil.materialYou) {
|
||||||
|
|
|
@ -58,6 +58,5 @@
|
||||||
app:itemHorizontalTranslationEnabled="false"
|
app:itemHorizontalTranslationEnabled="false"
|
||||||
app:itemPaddingBottom="8dp"
|
app:itemPaddingBottom="8dp"
|
||||||
app:itemPaddingTop="8dp"
|
app:itemPaddingTop="8dp"
|
||||||
app:menu="@menu/bottom_navigation_main"
|
app:menu="@menu/bottom_navigation_main" />
|
||||||
tools:layout_height="wrap_content" />
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
Loading…
Add table
Add a link
Reference in a new issue