From fa0862dd274e43db5a515b74bcf2b14fb17ebb83 Mon Sep 17 00:00:00 2001 From: TwistedUmbrellaX Date: Sat, 9 Mar 2024 23:26:19 -0500 Subject: [PATCH] fix: clean up the overlapping decor --- app/src/main/java/ani/dantotsu/Functions.kt | 54 +++++++++---------- .../main/java/ani/dantotsu/MainActivity.kt | 23 +------- .../settings/DevelopersDialogFragment.kt | 6 +++ app/src/main/res/values/themes.xml | 1 + 4 files changed, 34 insertions(+), 50 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/Functions.kt b/app/src/main/java/ani/dantotsu/Functions.kt index cdc8ffdd..48940c37 100644 --- a/app/src/main/java/ani/dantotsu/Functions.kt +++ b/app/src/main/java/ani/dantotsu/Functions.kt @@ -156,7 +156,7 @@ fun initActivity(a: Activity) { navBarHeight = this.getInsets(WindowInsetsCompat.Type.systemBars()).bottom } } - a.hideStatusBar() + WindowInsetsControllerCompat(window, window.decorView).hide(WindowInsetsCompat.Type.statusBars()) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P && statusBarHeight == 0 && a.resources.configuration.orientation == Configuration.ORIENTATION_PORTRAIT) { window.decorView.rootWindowInsets?.displayCutout?.apply { if (boundingRects.size > 0) { @@ -176,40 +176,38 @@ fun initActivity(a: Activity) { } } -@Suppress("DEPRECATION") fun Activity.hideSystemBars() { - window.decorView.systemUiVisibility = ( - View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY - or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION - or View.SYSTEM_UI_FLAG_FULLSCREEN - or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - ) -} - -@Suppress("DEPRECATION") -fun Activity.hideStatusBar() { - window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) + WindowInsetsControllerCompat(window, window.decorView).let { controller -> + controller.systemBarsBehavior = + WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE + controller.hide(WindowInsetsCompat.Type.systemBars()) + } } open class BottomSheetDialogFragment : BottomSheetDialogFragment() { override fun onStart() { super.onStart() - val window = dialog?.window - val decorView: View = window?.decorView ?: return - decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN - if (this.resources.configuration.orientation != Configuration.ORIENTATION_PORTRAIT) { - val behavior = BottomSheetBehavior.from(requireView().parent as View) - behavior.state = BottomSheetBehavior.STATE_EXPANDED + dialog?.window?.let { window -> + WindowCompat.setDecorFitsSystemWindows(window, false) + val immersiveMode: Boolean = PrefManager.getVal(PrefName.ImmersiveMode) + if (immersiveMode) { + WindowInsetsControllerCompat( + window, window.decorView + ).hide(WindowInsetsCompat.Type.statusBars()) + } + if (this.resources.configuration.orientation != Configuration.ORIENTATION_PORTRAIT) { + val behavior = BottomSheetBehavior.from(requireView().parent as View) + behavior.state = BottomSheetBehavior.STATE_EXPANDED + } + val typedValue = TypedValue() + val theme = requireContext().theme + theme.resolveAttribute( + com.google.android.material.R.attr.colorSurface, + typedValue, + true + ) + window.navigationBarColor = typedValue.data } - val typedValue = TypedValue() - val theme = requireContext().theme - theme.resolveAttribute( - com.google.android.material.R.attr.colorSurface, - typedValue, - true - ) - window.navigationBarColor = typedValue.data } override fun show(manager: FragmentManager, tag: String?) { diff --git a/app/src/main/java/ani/dantotsu/MainActivity.kt b/app/src/main/java/ani/dantotsu/MainActivity.kt index ba47d2fb..582bf986 100644 --- a/app/src/main/java/ani/dantotsu/MainActivity.kt +++ b/app/src/main/java/ani/dantotsu/MainActivity.kt @@ -146,24 +146,14 @@ class MainActivity : AppCompatActivity() { finish() } doubleBackToExitPressedOnce = true - WindowInsetsControllerCompat(window, window.decorView) - .show(WindowInsetsCompat.Type.navigationBars()) snackString(this@MainActivity.getString(R.string.back_to_exit)).apply { this?.addCallback(object : BaseTransientBottomBar.BaseCallback() { override fun onDismissed(transientBottomBar: Snackbar?, event: Int) { super.onDismissed(transientBottomBar, event) - WindowInsetsControllerCompat(window, window.decorView).let { controller -> - controller.systemBarsBehavior = - WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE - controller.hide(WindowInsetsCompat.Type.navigationBars()) - } + doubleBackToExitPressedOnce = false } }) } - Handler(Looper.getMainLooper()).postDelayed( - { doubleBackToExitPressedOnce = false }, - 2000 - ) } val preferences: SourcePreferences = Injekt.get() @@ -367,17 +357,6 @@ class MainActivity : AppCompatActivity() { } } - override fun onResume() { - super.onResume() - - WindowCompat.setDecorFitsSystemWindows(window, false) - - WindowInsetsControllerCompat(window, window.decorView).let { controller -> - controller.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE - controller.hide(WindowInsetsCompat.Type.navigationBars()) - } - } - //ViewPager private class ViewPagerAdapter(fragmentManager: FragmentManager, lifecycle: Lifecycle) : FragmentStateAdapter(fragmentManager, lifecycle) { diff --git a/app/src/main/java/ani/dantotsu/settings/DevelopersDialogFragment.kt b/app/src/main/java/ani/dantotsu/settings/DevelopersDialogFragment.kt index b7a12ad1..564c0aaa 100644 --- a/app/src/main/java/ani/dantotsu/settings/DevelopersDialogFragment.kt +++ b/app/src/main/java/ani/dantotsu/settings/DevelopersDialogFragment.kt @@ -25,6 +25,12 @@ class DevelopersDialogFragment : BottomSheetDialogFragment() { "Contributor", "https://github.com/aayush2622" ), + Developer( + "AbandonedCart", + "https://avatars.githubusercontent.com/u/1173913?v=4", + "Contributor", + "https://github.com/AbandonedCart" + ), Developer( "Sadwhy", "https://avatars.githubusercontent.com/u/99601717?v=4", diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index e1d6f959..a2182672 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -4,6 +4,7 @@ @android:color/transparent ?android:colorBackground false + true @null false false