Add support for dark tint on taskbar nav buttons

Tint the buttons when taskbar isn't drawing a background (either due to alpha or offset).

Test: Dark icons on a light wallpaper on home screen, dark icons when light IME is showing
Bug: 204256643
Change-Id: Iae634a1b604f50edc102905abd0d812a43c5346e
This commit is contained in:
Tony Wickham
2021-11-04 16:53:59 -07:00
parent b797ca77b2
commit 9ceae57095
8 changed files with 78 additions and 17 deletions

View File

@@ -52,6 +52,9 @@ public class TaskbarDragLayerController {
// Initialized in init.
private TaskbarControllers mControllers;
private AnimatedFloat mNavButtonDarkIntensityMultiplier;
private float mLastSetBackgroundAlpha;
public TaskbarDragLayerController(TaskbarActivityContext activity,
TaskbarDragLayer taskbarDragLayer) {
@@ -65,6 +68,9 @@ public class TaskbarDragLayerController {
mControllers = controllers;
mTaskbarDragLayer.init(new TaskbarDragLayerCallbacks());
mNavButtonDarkIntensityMultiplier = mControllers.navbarButtonsViewController
.getNavButtonDarkIntensityMultiplier();
mBgTaskbar.value = 1;
mKeyguardBgTaskbar.value = 1;
mNotificationShadeBgTaskbar.value = 1;
@@ -114,13 +120,22 @@ public class TaskbarDragLayerController {
final float bgNavbar = mBgNavbar.value;
final float bgTaskbar = mBgTaskbar.value * mKeyguardBgTaskbar.value
* mNotificationShadeBgTaskbar.value;
mTaskbarDragLayer.setTaskbarBackgroundAlpha(
mBgOverride.value * Math.max(bgNavbar, bgTaskbar)
);
mLastSetBackgroundAlpha = mBgOverride.value * Math.max(bgNavbar, bgTaskbar);
mTaskbarDragLayer.setTaskbarBackgroundAlpha(mLastSetBackgroundAlpha);
updateNavBarDarkIntensityMultiplier();
}
private void updateBackgroundOffset() {
mTaskbarDragLayer.setTaskbarBackgroundOffset(mBgOffset.value);
updateNavBarDarkIntensityMultiplier();
}
private void updateNavBarDarkIntensityMultiplier() {
// Zero out the app-requested dark intensity when we're drawing our own background.
float effectiveBgAlpha = mLastSetBackgroundAlpha * (1 - mBgOffset.value);
mNavButtonDarkIntensityMultiplier.updateValue(1 - effectiveBgAlpha);
}
/**