From f0040b8392501fc4870112959d272f30c3eec3c7 Mon Sep 17 00:00:00 2001 From: TwistedUmbrellaX <1173913+AbandonedCart@users.noreply.github.com> Date: Wed, 13 Mar 2024 09:15:13 -0400 Subject: [PATCH] feat: add an option to revert bar hide (#242) * feat: add an option to revert bar hide * fix: clarify the bars being hidden --- app/src/main/java/ani/dantotsu/Functions.kt | 24 +++++++++++++++---- .../main/java/ani/dantotsu/MainActivity.kt | 3 --- .../manga/mangareader/MangaReaderActivity.kt | 15 +++++++----- 3 files changed, 29 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/Functions.kt b/app/src/main/java/ani/dantotsu/Functions.kt index b7fe66f5..1a49aa14 100644 --- a/app/src/main/java/ani/dantotsu/Functions.kt +++ b/app/src/main/java/ani/dantotsu/Functions.kt @@ -149,7 +149,7 @@ fun initActivity(a: Activity) { if (navBarHeight == 0) { ViewCompat.getRootWindowInsets(window.decorView.findViewById(android.R.id.content)) ?.apply { - navBarHeight = this.getInsets(WindowInsetsCompat.Type.systemBars()).bottom + navBarHeight = this.getInsets(WindowInsetsCompat.Type.navigationBars()).bottom } } WindowInsetsControllerCompat(window, window.decorView).hide(WindowInsetsCompat.Type.statusBars()) @@ -165,9 +165,8 @@ fun initActivity(a: Activity) { val windowInsets = ViewCompat.getRootWindowInsets(window.decorView.findViewById(android.R.id.content)) if (windowInsets != null) { - val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()) - statusBarHeight = insets.top - navBarHeight = insets.bottom + statusBarHeight = windowInsets.getInsets(WindowInsetsCompat.Type.statusBars()).top + navBarHeight = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars()).bottom } } if (a !is MainActivity) a.setNavigationTheme() @@ -181,6 +180,23 @@ fun Activity.hideSystemBars() { } } +fun Activity.hideSystemBarsExtendView() { + WindowCompat.setDecorFitsSystemWindows(window, false) + hideSystemBars() +} + +fun Activity.showSystemBars() { + WindowInsetsControllerCompat(window, window.decorView).let { controller -> + controller.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_DEFAULT + controller.show(WindowInsetsCompat.Type.systemBars()) + } +} + +fun Activity.showSystemBarsRetractView() { + WindowCompat.setDecorFitsSystemWindows(window, true) + showSystemBars() +} + fun Activity.setNavigationTheme() { val tv = TypedValue() theme.resolveAttribute(android.R.attr.colorBackground, tv, true) diff --git a/app/src/main/java/ani/dantotsu/MainActivity.kt b/app/src/main/java/ani/dantotsu/MainActivity.kt index 358331ed..35d7bc34 100644 --- a/app/src/main/java/ani/dantotsu/MainActivity.kt +++ b/app/src/main/java/ani/dantotsu/MainActivity.kt @@ -358,9 +358,6 @@ class MainActivity : AppCompatActivity() { override fun onResume() { super.onResume() initActivity(this) - binding.includedNavbar.navbarContainer.updateLayoutParams { - bottomMargin = navBarHeight - } window.navigationBarColor = getColor(android.R.color.transparent) } diff --git a/app/src/main/java/ani/dantotsu/media/manga/mangareader/MangaReaderActivity.kt b/app/src/main/java/ani/dantotsu/media/manga/mangareader/MangaReaderActivity.kt index d74959f9..1265d8be 100644 --- a/app/src/main/java/ani/dantotsu/media/manga/mangareader/MangaReaderActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/manga/mangareader/MangaReaderActivity.kt @@ -122,8 +122,11 @@ class MangaReaderActivity : AppCompatActivity() { } } - private fun hideBars() { - if (!PrefManager.getVal(PrefName.ShowSystemBars)) hideSystemBars() + private fun hideSystemBars() { + if (PrefManager.getVal(PrefName.ShowSystemBars)) + showSystemBarsRetractView() + else + hideSystemBarsExtendView() } override fun onDestroy() { @@ -153,7 +156,7 @@ class MangaReaderActivity : AppCompatActivity() { controllerDuration = (PrefManager.getVal(PrefName.AnimationSpeed) * 200).toLong() - hideBars() + hideSystemBars() var pageSliderTimer = Timer() fun pageSliderHide() { @@ -395,7 +398,7 @@ class MangaReaderActivity : AppCompatActivity() { fun applySettings() { saveReaderSettings("${media.id}_current_settings", defaultSettings) - hideBars() + hideSystemBars() //true colors SubsamplingScaleImageView.setPreferredBitmapConfig( @@ -779,7 +782,7 @@ class MangaReaderActivity : AppCompatActivity() { } if (!PrefManager.getVal(PrefName.ShowSystemBars)) { - hideBars() + hideSystemBars() checkNotch() } // Hide the scrollbar completely @@ -937,7 +940,7 @@ class MangaReaderActivity : AppCompatActivity() { dialog.dismiss() runnable.run() } - .setOnCancelListener { hideBars() } + .setOnCancelListener { hideSystemBars() } .create() .show() } else {