Properly update status bar icon colors when opening all apps and widgets drawers

This commit is contained in:
Ensar Sarajčić 2023-09-12 14:13:47 +02:00
parent 1c0a559517
commit 92decdd66d

View file

@ -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