diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt index 06df12edc..04a5ff251 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt @@ -25,10 +25,7 @@ import android.view.ViewTreeObserver import android.view.animation.PathInterpolator import android.widget.FrameLayout import androidx.core.animation.doOnEnd -import androidx.core.view.ViewCompat -import androidx.core.view.WindowInsetsCompat -import androidx.core.view.isGone -import androidx.core.view.isVisible +import androidx.core.view.* import androidx.fragment.app.Fragment import androidx.fragment.app.commit import code.name.monkey.appthemehelper.util.ColorUtil @@ -139,7 +136,6 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { windowInsets = insets insets } - bottomNavigationView.drawAboveSystemBarsWithPadding() if (RetroUtil.isLandscape()) { binding.slidingPanel.drawAboveSystemBarsWithPadding(true) } diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt index c9bcba724..f0b7dece9 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt @@ -6,16 +6,14 @@ import android.os.Build import android.view.View import android.view.WindowManager import androidx.appcompat.app.AppCompatActivity -import androidx.core.view.WindowCompat -import androidx.core.view.WindowInsetsCompat -import androidx.core.view.WindowInsetsControllerCompat -import androidx.core.view.isGone +import androidx.core.view.* import androidx.fragment.app.FragmentActivity import code.name.monkey.appthemehelper.ATH import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.util.PreferenceUtil +import code.name.monkey.retromusic.util.RetroUtil fun AppCompatActivity.toggleScreenOn() { if (PreferenceUtil.isScreenOnEnabled) { @@ -41,7 +39,6 @@ fun AppCompatActivity.setImmersiveFullscreen() { fun AppCompatActivity.exitFullscreen() { WindowInsetsControllerCompat(window, window.decorView).apply { - systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE show(WindowInsetsCompat.Type.systemBars()) } } diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/InsetsExtensions.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/InsetsExtensions.kt index 8b6606b4c..16bb5aa4a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/InsetsExtensions.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/InsetsExtensions.kt @@ -1,9 +1,12 @@ package code.name.monkey.retromusic.extensions import androidx.core.view.WindowInsetsCompat -import code.name.monkey.retromusic.util.RetroUtil +import code.name.monkey.retromusic.util.PreferenceUtil fun WindowInsetsCompat?.safeGetBottomInsets(): Int { - // Get Navbar heights if insets are null - return (this?.getInsets(WindowInsetsCompat.Type.systemBars())?.bottom ?: RetroUtil.getNavigationBarHeight()) + return if (PreferenceUtil.isFullScreenMode) { + return 0 + } else { + this?.getInsets(WindowInsetsCompat.Type.systemBars())?.bottom ?: 0 + } } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt index 2f79563b2..b0b56da34 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt @@ -22,6 +22,7 @@ import androidx.appcompat.widget.Toolbar import androidx.core.view.doOnPreDraw import androidx.core.view.isVisible import androidx.core.view.updateLayoutParams +import androidx.core.view.updatePadding import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.RecyclerView 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.helper.MusicPlayerRemote import code.name.monkey.retromusic.interfaces.IScrollHelper +import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.ThemedFastScroller.create import com.google.android.material.shape.MaterialShapeDrawable import com.google.android.material.transition.MaterialFadeThrough @@ -65,6 +67,7 @@ abstract class AbsRecyclerViewFragment, LM : Recycle initAdapter() setUpRecyclerView() setupToolbar() + binding.shuffleButton.fitsSystemWindows = PreferenceUtil.isFullScreenMode // Add listeners when shuffle is visible if (isShuffleVisible) { binding.recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { diff --git a/app/src/main/java/code/name/monkey/retromusic/views/BottomNavigationBarTinted.kt b/app/src/main/java/code/name/monkey/retromusic/views/BottomNavigationBarTinted.kt index 509bb5d15..03533bf13 100644 --- a/app/src/main/java/code/name/monkey/retromusic/views/BottomNavigationBarTinted.kt +++ b/app/src/main/java/code/name/monkey/retromusic/views/BottomNavigationBarTinted.kt @@ -23,6 +23,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.NavigationViewUtil import code.name.monkey.retromusic.util.PreferenceUtil import com.google.android.material.bottomnavigation.BottomNavigationView +import java.lang.RuntimeException class BottomNavigationBarTinted @JvmOverloads constructor( context: Context, @@ -31,6 +32,15 @@ class BottomNavigationBarTinted @JvmOverloads constructor( ) : BottomNavigationView(context, attrs, defStyleAttr) { 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 if (!PreferenceUtil.materialYou) { diff --git a/app/src/main/res/layout/sliding_music_panel_layout.xml b/app/src/main/res/layout/sliding_music_panel_layout.xml index edd9a1aaf..a422eba48 100644 --- a/app/src/main/res/layout/sliding_music_panel_layout.xml +++ b/app/src/main/res/layout/sliding_music_panel_layout.xml @@ -58,6 +58,5 @@ app:itemHorizontalTranslationEnabled="false" app:itemPaddingBottom="8dp" app:itemPaddingTop="8dp" - app:menu="@menu/bottom_navigation_main" - tools:layout_height="wrap_content" /> + app:menu="@menu/bottom_navigation_main" /> \ No newline at end of file