Initial commit of taskbar stashing

- Added StashedHandleViewController to provide properties such as ViewOutlineProvider to animate the handle that's shown in place of taskbar while it's stashed
- Added TaskbarStashController to coordinate the stashed state, including orchestrating the animation across taskbar controllers
- Added TaskbarStashInput consumer to detect long press in the nav region when taskbar is stashed

Behavior:
- Long pressing taskbar background animates to the stashed state by morphing the TaskbarView into the stashed handle view and offsetting the background offscreen
- We persist the stashed state across app launches and reboot; to unstash, long press the stashed handle
- We also visually unstash when going back home

Test: long press tasbkar background when in an app to stash it, long press the resulting stashed handle to unstash; while stashed, swipe up to home to also unstash until launching another app
Bug: 189503603
Change-Id: I698eff785388dff1ef717c76879719d6af236c2d
This commit is contained in:
Tony Wickham
2021-06-01 16:54:07 -07:00
parent d352253c2d
commit 3fd22847ac
20 changed files with 654 additions and 38 deletions

View File

@@ -16,6 +16,8 @@
package com.android.launcher3.util;
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.util.FloatProperty;
import android.view.View;
@@ -121,5 +123,12 @@ public class MultiValueAlpha {
public String toString() {
return Float.toString(mValue);
}
/**
* Creates and returns an Animator from the current value to the given value.
*/
public Animator animateToValue(float value) {
return ObjectAnimator.ofFloat(this, VALUE, value);
}
}
}