Merge "Fix icon tint on notification shelf" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
285ad4ce66
@@ -357,15 +357,21 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
||||
updateShelfIconColor();
|
||||
}
|
||||
|
||||
private void updateShelfIconColor() {
|
||||
@VisibleForTesting
|
||||
void updateShelfIconColor() {
|
||||
StatusBarIconView expandedIcon = mEntry.expandedIcon;
|
||||
boolean isPreL = Boolean.TRUE.equals(expandedIcon.getTag(R.id.icon_is_pre_L));
|
||||
boolean colorize = !isPreL || NotificationUtils.isGrayscale(expandedIcon,
|
||||
NotificationColorUtil.getInstance(mContext));
|
||||
int color = StatusBarIconView.NO_COLOR;
|
||||
if (colorize) {
|
||||
color = mEntry.getContrastedColor(mContext, mIsLowPriority && !isExpanded(),
|
||||
getBackgroundColorWithoutTint());
|
||||
NotificationHeaderView header = getVisibleNotificationHeader();
|
||||
if (header != null) {
|
||||
color = header.getOriginalIconColor();
|
||||
} else {
|
||||
color = mEntry.getContrastedColor(mContext, mIsLowPriority && !isExpanded(),
|
||||
getBackgroundColorWithoutTint());
|
||||
}
|
||||
}
|
||||
expandedIcon.setStaticDrawableColor(color);
|
||||
}
|
||||
@@ -1728,6 +1734,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
||||
NotificationContentView showingLayout = getShowingLayout();
|
||||
showingLayout.updateBackgroundColor(animated);
|
||||
mPrivateLayout.updateExpandButtons(isExpandable());
|
||||
updateShelfIconColor();
|
||||
showingLayout.setDark(isDark(), false /* animate */, 0 /* delay */);
|
||||
mShowingPublicInitialized = true;
|
||||
}
|
||||
|
||||
@@ -456,9 +456,8 @@ public class NotificationShelf extends ActivatableNotificationView implements
|
||||
}
|
||||
int shelfColor = icon.getStaticDrawableColor();
|
||||
if (!noIcon && shelfColor != StatusBarIconView.NO_COLOR) {
|
||||
int notificationColor
|
||||
= row.getVisibleNotificationHeader().getOriginalNotificationColor();
|
||||
shelfColor = NotificationUtils.interpolateColors(notificationColor, shelfColor,
|
||||
int iconColor = row.getVisibleNotificationHeader().getOriginalIconColor();
|
||||
shelfColor = NotificationUtils.interpolateColors(iconColor, shelfColor,
|
||||
iconState.iconAppearAmount);
|
||||
}
|
||||
iconState.iconColor = shelfColor;
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.content.Context;
|
||||
@@ -87,5 +88,11 @@ public class ExpandableNotificationRowTest extends SysuiTestCase {
|
||||
verify(mockContainer).reInflateViews(any(), any());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testIconColorShouldBeUpdatedWhenSensitive() throws Exception {
|
||||
ExpandableNotificationRow row = spy(mNotificationTestHelper.createRow());
|
||||
row.setSensitive(true, true);
|
||||
row.setHideSensitive(true, false, 0, 0);
|
||||
verify(row).updateShelfIconColor();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user