Merge "Use status bar appearance to determine header element brightness." into udc-qpr-dev am: f502b11399

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23517670

Change-Id: I520532f79dd62f03d208ed62c56ca34d74f19d5d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeWindowDecorationViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeWindowDecorationViewHolder.kt
index 514ea52..76c80f7 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeWindowDecorationViewHolder.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeWindowDecorationViewHolder.kt
@@ -4,7 +4,7 @@
 import android.content.Context
 import android.graphics.Color
 import android.view.View
-
+import android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS
 /**
  * Encapsulates the root [View] of a window decoration and its children to facilitate looking up
  * children (via findViewById) and updating to the latest data from [RunningTaskInfo].
@@ -23,6 +23,10 @@
      * with the caption background color.
      */
     protected fun shouldUseLightCaptionColors(taskInfo: RunningTaskInfo): Boolean {
-        return Color.valueOf(taskInfo.taskDescription.statusBarColor).luminance() < 0.5
+        return if (Color.alpha(taskInfo.taskDescription.statusBarColor) != 0) {
+            Color.valueOf(taskInfo.taskDescription.statusBarColor).luminance() < 0.5
+        } else {
+            taskInfo.taskDescription.statusBarAppearance and APPEARANCE_LIGHT_STATUS_BARS == 0
+        }
     }
 }