From b7550b903b35753c0504764470893ca5d9e60e38 Mon Sep 17 00:00:00 2001 From: RafaRamos Date: Thu, 4 Jan 2024 16:05:28 +0100 Subject: [PATCH 1/3] Create function to check if there are Navigation bars. --- .../github/libretube/helpers/NavBarHelper.kt | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/github/libretube/helpers/NavBarHelper.kt b/app/src/main/java/com/github/libretube/helpers/NavBarHelper.kt index c250cfea5..d0d24bf02 100644 --- a/app/src/main/java/com/github/libretube/helpers/NavBarHelper.kt +++ b/app/src/main/java/com/github/libretube/helpers/NavBarHelper.kt @@ -16,15 +16,22 @@ import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.navigation.NavigationBarView object NavBarHelper { + private const val SEPARATOR = "," + fun hasTabs(): Boolean { + val prefsItems = getNavBarPrefs() + + val tabsUnchanged = prefsItems.isEmpty() + val allTabsHidden = prefsItems.all { it.contains("-") } + + return tabsUnchanged || !allTabsHidden + } + // contains "-" -> invisible menu item, else -> visible menu item fun getNavBarItems(context: Context): List { val prefItems = try { - PreferenceHelper.getString( - PreferenceKeys.NAVBAR_ITEMS, - "" - ).split(SEPARATOR) + getNavBarPrefs() } catch (e: Exception) { Log.e("fail to parse nav items", e.toString()) return getDefaultNavBarItems(context) @@ -126,4 +133,11 @@ object NavBarHelper { val index = getDefaultNavBarItems(context).indexOfFirst { it.itemId == itemId } PreferenceHelper.putInt(PreferenceKeys.START_FRAGMENT, index) } + + private fun getNavBarPrefs(): List { + return PreferenceHelper + .getString(PreferenceKeys.NAVBAR_ITEMS, "") + .split(SEPARATOR) + } + } From f37446fb221b4fe32ee703e95221f6e426f99cf2 Mon Sep 17 00:00:00 2001 From: RafaRamos Date: Thu, 4 Jan 2024 16:05:46 +0100 Subject: [PATCH 2/3] Adjust main motion scene. --- app/src/main/res/xml/activity_main_scene.xml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/xml/activity_main_scene.xml b/app/src/main/res/xml/activity_main_scene.xml index 227ed7197..e27bc68a3 100644 --- a/app/src/main/res/xml/activity_main_scene.xml +++ b/app/src/main/res/xml/activity_main_scene.xml @@ -12,14 +12,27 @@ android:translationY="0dp" motion:framePosition="0" motion:motionTarget="@+id/bottomNav" /> + + + + + + + Date: Thu, 4 Jan 2024 16:06:09 +0100 Subject: [PATCH 3/3] Ensure no main navigation scene is performed if there are no tabs. --- .../libretube/ui/fragments/AudioPlayerFragment.kt | 10 ++++++++-- .../github/libretube/ui/fragments/PlayerFragment.kt | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt index 6f3c03274..3785f58c2 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt @@ -33,6 +33,7 @@ import com.github.libretube.extensions.toID import com.github.libretube.helpers.AudioHelper import com.github.libretube.helpers.BackgroundHelper import com.github.libretube.helpers.ImageHelper +import com.github.libretube.helpers.NavBarHelper import com.github.libretube.helpers.NavigationHelper import com.github.libretube.helpers.PlayerHelper import com.github.libretube.helpers.ThemeHelper @@ -216,6 +217,7 @@ class AudioPlayerFragment : Fragment(), AudioPlayerOptions { private fun initializeTransitionLayout() { mainActivity.binding.container.isVisible = true val mainMotionLayout = mainActivity.binding.mainMotionLayout + mainMotionLayout.progress = 0F val surfaceColor = SurfaceColors.getColorForElevation(requireContext(), 3f) binding.audioPlayerContainer.setBackgroundColor(surfaceColor) @@ -227,7 +229,9 @@ class AudioPlayerFragment : Fragment(), AudioPlayerOptions { endId: Int, progress: Float ) { - mainMotionLayout.progress = abs(progress) + if (NavBarHelper.hasTabs()) { + mainMotionLayout.progress = abs(progress) + } transitionEndId = endId transitionStartId = startId } @@ -235,7 +239,9 @@ class AudioPlayerFragment : Fragment(), AudioPlayerOptions { override fun onTransitionCompleted(motionLayout: MotionLayout?, currentId: Int) { if (currentId == transitionEndId) { viewModel.isMiniPlayerVisible.value = true - mainMotionLayout.progress = 1F + if (NavBarHelper.hasTabs()) { + mainMotionLayout.progress = 1F + } } else if (currentId == transitionStartId) { viewModel.isMiniPlayerVisible.value = false mainMotionLayout.progress = 0F diff --git a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt index 1cf588fea..566c6a1e0 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt @@ -79,6 +79,7 @@ import com.github.libretube.extensions.togglePlayPauseState import com.github.libretube.extensions.updateParameters import com.github.libretube.helpers.BackgroundHelper import com.github.libretube.helpers.ImageHelper +import com.github.libretube.helpers.NavBarHelper import com.github.libretube.helpers.NavigationHelper import com.github.libretube.helpers.PlayerHelper import com.github.libretube.helpers.PlayerHelper.SPONSOR_HIGHLIGHT_CATEGORY @@ -423,6 +424,7 @@ class PlayerFragment : Fragment(), OnlinePlayerOptions { private fun initializeTransitionLayout() { mainActivity.binding.container.isVisible = true val mainMotionLayout = mainActivity.binding.mainMotionLayout + mainMotionLayout.progress = 0F binding.playerMotionLayout.addTransitionListener(object : TransitionAdapter() { override fun onTransitionChange( @@ -433,7 +435,9 @@ class PlayerFragment : Fragment(), OnlinePlayerOptions { ) { if (_binding == null) return - mainMotionLayout.progress = abs(progress) + if (NavBarHelper.hasTabs()) { + mainMotionLayout.progress = abs(progress) + } disableController() commentsViewModel.setCommentSheetExpand(false) chaptersBottomSheet?.dismiss() @@ -459,7 +463,9 @@ class PlayerFragment : Fragment(), OnlinePlayerOptions { disableController() commentsViewModel.setCommentSheetExpand(null) binding.sbSkipBtn.isGone = true - mainMotionLayout.progress = 1F + if (NavBarHelper.hasTabs()) { + mainMotionLayout.progress = 1F + } (activity as MainActivity).requestOrientationChange() } }