mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-17 17:48:20 +00:00
Add taskbar stashing feedforward, i.e. hint at upcoming stash/unstash
Also fix unstashing not working in 3P launchers by moving the unstash call from LauncherTaskbarUIController to TaskbarActivityContext Test: long press taskbar background and stashed handle, watch it hint towards the new stashed/unstashed state respectively and then complete the animation when the long press is triggered Fixes: 193926311 Fixes: 192926350 Change-Id: I0e538be9129bf5c600d07f360b8106d7077862ad
This commit is contained in:
@@ -40,6 +40,8 @@ public class StashedHandleViewController {
|
||||
private final int mStashedHandleHeight;
|
||||
private final AnimatedFloat mTaskbarStashedHandleAlpha = new AnimatedFloat(
|
||||
this::updateStashedHandleAlpha);
|
||||
private final AnimatedFloat mTaskbarStashedHandleHintScale = new AnimatedFloat(
|
||||
this::updateStashedHandleHintScale);
|
||||
|
||||
// Initialized in init.
|
||||
private TaskbarControllers mControllers;
|
||||
@@ -64,6 +66,7 @@ public class StashedHandleViewController {
|
||||
mStashedHandleView.getLayoutParams().height = mActivity.getDeviceProfile().taskbarSize;
|
||||
|
||||
updateStashedHandleAlpha();
|
||||
mTaskbarStashedHandleHintScale.updateValue(1f);
|
||||
|
||||
final int stashedTaskbarHeight = mControllers.taskbarStashController.getStashedHeight();
|
||||
mStashedHandleView.setOutlineProvider(new ViewOutlineProvider() {
|
||||
@@ -80,12 +83,24 @@ public class StashedHandleViewController {
|
||||
outline.setRoundRect(mStashedHandleBounds, mStashedHandleRadius);
|
||||
}
|
||||
});
|
||||
|
||||
mStashedHandleView.addOnLayoutChangeListener((view, i, i1, i2, i3, i4, i5, i6, i7) -> {
|
||||
final int stashedCenterX = view.getWidth() / 2;
|
||||
final int stashedCenterY = view.getHeight() - stashedTaskbarHeight / 2;
|
||||
|
||||
view.setPivotX(stashedCenterX);
|
||||
view.setPivotY(stashedCenterY);
|
||||
});
|
||||
}
|
||||
|
||||
public AnimatedFloat getStashedHandleAlpha() {
|
||||
return mTaskbarStashedHandleAlpha;
|
||||
}
|
||||
|
||||
public AnimatedFloat getStashedHandleHintScale() {
|
||||
return mTaskbarStashedHandleHintScale;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and returns a {@link RevealOutlineAnimation} Animator that updates the stashed handle
|
||||
* shape and size. When stashed, the shape is a thin rounded pill. When unstashed, the shape
|
||||
@@ -105,4 +120,9 @@ public class StashedHandleViewController {
|
||||
protected void updateStashedHandleAlpha() {
|
||||
mStashedHandleView.setAlpha(mTaskbarStashedHandleAlpha.value);
|
||||
}
|
||||
|
||||
protected void updateStashedHandleHintScale() {
|
||||
mStashedHandleView.setScaleX(mTaskbarStashedHandleHintScale.value);
|
||||
mStashedHandleView.setScaleY(mTaskbarStashedHandleHintScale.value);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user