Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 407b1806 authored by mattsziklay's avatar mattsziklay
Browse files

Use status bar appearance to determine header element brightness.

Currently we use status bar color to determine header element
brightness, which has the side effect of defaulting to bright elements
on a clear caption. This CL will instead use the
WindowInsets.APPEARANCE_LIGHT_STATUS_BAR flag to determine brightness in
this particular case.

Bug: 280833361
Test: Manual; open apps with and without clear status bar.
Change-Id: Ie429825a76c20a5e1767bb80ba99cae8b7ce6068
parent a832ada6
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ import android.app.ActivityManager.RunningTaskInfo
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 @@ internal abstract class DesktopModeWindowDecorationViewHolder(rootView: View) {
     * 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
        }
    }
}