Fix icon tinting when in split screen
NotificationIconAreaController, StatusBarWifiView, StatusBarMobileView
all now respect the tintArea when `onDarkChanged` gets called
Test: visual; Split screen, chrome on top and settings on bottom, no icons
should be dark.
Change-Id: I7aa8f3383da3855e8ceab702539fce71edaa6af2
Fixes: 77494939
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java
index b7620f3..f81671b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java
@@ -17,6 +17,7 @@
package com.android.systemui.statusbar;
import static com.android.systemui.statusbar.policy.DarkIconDispatcher.getTint;
+import static com.android.systemui.statusbar.policy.DarkIconDispatcher.isInArea;
import android.content.Context;
import android.content.res.ColorStateList;
@@ -161,6 +162,9 @@
@Override
public void onDarkChanged(Rect area, float darkIntensity, int tint) {
+ if (!isInArea(area, this)) {
+ return;
+ }
mMobileDrawable.setDarkIntensity(darkIntensity);
ColorStateList color = ColorStateList.valueOf(getTint(area, this, tint));
mIn.setImageTintList(color);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java
index afd373e..62cd16f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java
@@ -17,6 +17,7 @@
package com.android.systemui.statusbar;
import static com.android.systemui.statusbar.policy.DarkIconDispatcher.getTint;
+import static com.android.systemui.statusbar.policy.DarkIconDispatcher.isInArea;
import android.content.Context;
import android.content.res.ColorStateList;
@@ -175,6 +176,9 @@
@Override
public void onDarkChanged(Rect area, float darkIntensity, int tint) {
+ if (!isInArea(area, this)) {
+ return;
+ }
mDarkIntensity = darkIntensity;
Drawable d = mWifiIcon.getDrawable();
if (d instanceof NeutralGoodDrawable) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
index b6a11f7..6bc19ea 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
@@ -125,7 +125,14 @@
} else {
mTintArea.set(tintArea);
}
- mIconTint = iconTint;
+ if (mNotificationIconArea != null) {
+ if (DarkIconDispatcher.isInArea(tintArea, mNotificationIconArea)) {
+ mIconTint = iconTint;
+ }
+ } else {
+ mIconTint = iconTint;
+ }
+
applyNotificationIconsTint();
}