From 92decdd66d5c834288284188bd34fa0a2d4331ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ensar=20Saraj=C4=8Di=C4=87?= Date: Tue, 12 Sep 2023 14:13:47 +0200 Subject: [PATCH] Properly update status bar icon colors when opening all apps and widgets drawers --- .../launcher/activities/MainActivity.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt index fb9c107..bea73de 100644 --- a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt @@ -482,6 +482,10 @@ class MainActivity : SimpleActivity(), FlingListener { binding.homeScreenGrid.root.fragmentExpanded() binding.homeScreenGrid.root.hideResizeLines() fragment.root.performAccessibilityAction(AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null) + + Handler(Looper.getMainLooper()).postDelayed({ + updateStatusBarIcons() + }, ANIMATION_DURATION) } private fun hideFragment(fragment: ViewBinding) { @@ -493,6 +497,7 @@ class MainActivity : SimpleActivity(), FlingListener { window.navigationBarColor = Color.TRANSPARENT binding.homeScreenGrid.root.fragmentCollapsed() + updateStatusBarIcons(Color.TRANSPARENT) Handler(Looper.getMainLooper()).postDelayed({ if (fragment is AllAppsFragmentBinding) { fragment.allAppsGrid.scrollToPosition(0) @@ -540,6 +545,7 @@ class MainActivity : SimpleActivity(), FlingListener { binding.allAppsFragment.allAppsGrid.scrollToPosition(0) binding.allAppsFragment.root.touchDownY = -1 binding.homeScreenGrid.root.fragmentCollapsed() + updateStatusBarIcons(Color.TRANSPARENT) } if (delayed) { Handler(Looper.getMainLooper()).postDelayed(close, APP_DRAWER_CLOSE_DELAY) @@ -556,6 +562,7 @@ class MainActivity : SimpleActivity(), FlingListener { binding.widgetsFragment.widgetsList.scrollToPosition(0) binding.widgetsFragment.root.touchDownY = -1 binding.homeScreenGrid.root.fragmentCollapsed() + updateStatusBarIcons(Color.TRANSPARENT) } if (delayed) { Handler(Looper.getMainLooper()).postDelayed(close, APP_DRAWER_CLOSE_DELAY) @@ -1036,6 +1043,10 @@ class MainActivity : SimpleActivity(), FlingListener { } } + private fun updateStatusBarIcons(backgroundColor: Int = getProperBackgroundColor()) { + WindowCompat.getInsetsController(window, binding.root).isAppearanceLightStatusBars = backgroundColor.getContrastColor() == DARK_GREY + } + // taken from https://gist.github.com/maxjvh/a6ab15cbba9c82a5065d private fun calculateAverageColor(bitmap: Bitmap): Int { var red = 0