From 401b921c190199bb73cc2d2218e9d30911b625a8 Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Tue, 29 Jun 2021 14:23:55 -0700 Subject: [PATCH] Fix bug where status bar was not set properly. - Need to check both alpha of the view, and alpha of the background color. Bug: 187467559 Test: check status bar colors when using: - on white wallpaper, - on black wallpaper, - on wallpaper with white text - on wallpaper with dark text Change-Id: Ie6f34d34dfa9dea716f95bd6a95125fbd650fc29 --- src/com/android/launcher3/views/ScrimView.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/views/ScrimView.java b/src/com/android/launcher3/views/ScrimView.java index fb1485b480..1eb79ad550 100644 --- a/src/com/android/launcher3/views/ScrimView.java +++ b/src/com/android/launcher3/views/ScrimView.java @@ -97,8 +97,10 @@ public class ScrimView extends View implements Insettable { private void updateSysUiColors() { // Use a light system UI (dark icons) if all apps is behind at least half of the // status bar. - boolean forceChange = - getVisibility() == VISIBLE && getAlpha() > STATUS_BAR_COLOR_FORCE_UPDATE_THRESHOLD; + final float threshold = STATUS_BAR_COLOR_FORCE_UPDATE_THRESHOLD; + boolean forceChange = getVisibility() == VISIBLE + && getAlpha() > threshold + && (Color.alpha(mBackgroundColor) / 255f) > threshold; if (forceChange) { getSystemUiController().updateUiState(UI_STATE_SCRIM_VIEW, !isScrimDark()); } else {