diff options
author | Tony Wickham <twickham@google.com> | 2021-07-22 14:28:04 -1000 |
---|---|---|
committer | Tony Wickham <twickham@google.com> | 2021-08-16 16:50:52 -0700 |
commit | 635e180e56df7d32322f1eb3f3eca2a01bf3381a (patch) | |
tree | ac0f58d158b2b49a8d14e0662f92471b150bda9a /quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java | |
parent | f5ce2f624db11b7d2153301ff387732ff43e95f4 (diff) |
Extend taskbar color to entire screen in overview
Only when taskbar is unstashed in apps:
- Scrim workspace with the taskbar color when opening apps and in BackgroundAppState
- Crop opening apps to above the taskbar
- Crop TaskViews to above the taskbar during gestures
If taskbar is stashed in apps, behavior is the same as before, i.e. no scrim over the wallpaper and no cropping of tasks.
Added a field DeviceProfile#taskbkarPresentInApps to distinguish these cases. LauncherTaskbarUIController and TaskbarStashController ensure this value is set appropriately.
Test: Ensure tasks don't appear behind taskbar when it's unstashed; set ENABLE_SCRIM_FOR_APP_LAUNCH = true to test the whole screen scrimming when opening an app
Bug: 196257194
Fixes: 190681228
Change-Id: I481501457a5a6d49c380feea3db3b4058e4cf3f8
Diffstat (limited to 'quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java')
-rw-r--r-- | quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java index df89285c3f..14150b9e25 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java @@ -36,10 +36,14 @@ public class TaskbarDragLayerController { private final TaskbarActivityContext mActivity; private final TaskbarDragLayer mTaskbarDragLayer; private final int mFolderMargin; + // Alpha properties for taskbar background. private final AnimatedFloat mBgTaskbar = new AnimatedFloat(this::updateBackgroundAlpha); private final AnimatedFloat mBgNavbar = new AnimatedFloat(this::updateBackgroundAlpha); private final AnimatedFloat mKeyguardBgTaskbar = new AnimatedFloat(this::updateBackgroundAlpha); + // Used to hide our background color when someone else (e.g. ScrimView) is handling it. + private final AnimatedFloat mBgOverride = new AnimatedFloat(this::updateBackgroundAlpha); + // Translation property for taskbar background. private final AnimatedFloat mBgOffset = new AnimatedFloat(this::updateBackgroundOffset); @@ -58,6 +62,7 @@ public class TaskbarDragLayerController { mControllers = controllers; mTaskbarDragLayer.init(new TaskbarDragLayerCallbacks()); mKeyguardBgTaskbar.value = 1; + mBgOverride.value = 1; } public void onDestroy() { @@ -86,13 +91,19 @@ public class TaskbarDragLayerController { return mKeyguardBgTaskbar; } + public AnimatedFloat getOverrideBackgroundAlpha() { + return mBgOverride; + } + public AnimatedFloat getTaskbarBackgroundOffset() { return mBgOffset; } private void updateBackgroundAlpha() { + final float bgNavbar = mBgNavbar.value; + final float bgTaskbar = mBgTaskbar.value * mKeyguardBgTaskbar.value; mTaskbarDragLayer.setTaskbarBackgroundAlpha( - Math.max(mBgNavbar.value, mBgTaskbar.value * mKeyguardBgTaskbar.value) + mBgOverride.value * Math.max(bgNavbar, bgTaskbar) ); } |