mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-04 01:46:49 +00:00
Add transitions to DWB banner when app thumbnail progresses from Overview tile to fullscreen
This patch makes it so that the DWB banner transitions out neatly when a user in Overview drags a tile downward to launch the app. Previously, the banner would stick around throughout the transition, creating visual clutter and drawing attention to the corners of the app. Fixed by creating an exit transition in setFullscreenProgress(), similar to other UI elements like Overview action chips. There is another outstanding issue where sometimes the transition can get clipped and jump to the final frame. The cause is still unknown, but issue is tracked at b/250976138 for a future fix. Fixes: 249825524 Test: Manual Change-Id: Iea47a9bc643537f0b716ce11b104803d9ca25fd2
This commit is contained in:
@@ -19,6 +19,7 @@ package com.android.quickstep.views;
|
||||
import static android.view.Display.DEFAULT_DISPLAY;
|
||||
import static android.widget.Toast.LENGTH_SHORT;
|
||||
|
||||
import static com.android.launcher3.LauncherState.BACKGROUND_APP;
|
||||
import static com.android.launcher3.Utilities.comp;
|
||||
import static com.android.launcher3.Utilities.getDescendantCoordRelativeToAncestor;
|
||||
import static com.android.launcher3.anim.Interpolators.ACCEL_DEACCEL;
|
||||
@@ -171,7 +172,7 @@ public class TaskView extends FrameLayout implements Reusable {
|
||||
new FloatProperty<TaskView>("focusTransition") {
|
||||
@Override
|
||||
public void setValue(TaskView taskView, float v) {
|
||||
taskView.setIconAndDimTransitionProgress(v, false /* invert */);
|
||||
taskView.setIconsAndBannersTransitionProgress(v, false /* invert */);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -953,7 +954,11 @@ public class TaskView extends FrameLayout implements Reusable {
|
||||
return deviceProfile.isTablet && !isFocusedTask();
|
||||
}
|
||||
|
||||
protected void setIconAndDimTransitionProgress(float progress, boolean invert) {
|
||||
/**
|
||||
* Called to animate a smooth transition when going directly from an app into Overview (and
|
||||
* vice versa). Icons fade in, and DWB banners slide in with a "shift up" animation.
|
||||
*/
|
||||
protected void setIconsAndBannersTransitionProgress(float progress, boolean invert) {
|
||||
if (invert) {
|
||||
progress = 1 - progress;
|
||||
}
|
||||
@@ -997,7 +1002,7 @@ public class TaskView extends FrameLayout implements Reusable {
|
||||
if (mIconAndDimAnimator != null) {
|
||||
mIconAndDimAnimator.cancel();
|
||||
}
|
||||
setIconAndDimTransitionProgress(iconScale, invert);
|
||||
setIconsAndBannersTransitionProgress(iconScale, invert);
|
||||
}
|
||||
|
||||
protected void resetPersistentViewTransforms() {
|
||||
@@ -1417,6 +1422,12 @@ public class TaskView extends FrameLayout implements Reusable {
|
||||
mIconView.setVisibility(progress < 1 ? VISIBLE : INVISIBLE);
|
||||
mSnapshotView.getTaskOverlay().setFullscreenProgress(progress);
|
||||
|
||||
// Animate icons and DWB banners in/out, except in QuickSwitch state, when tiles are
|
||||
// oversized and banner would look disproportionately large.
|
||||
if (mActivity.getStateManager().getState() != BACKGROUND_APP) {
|
||||
setIconsAndBannersTransitionProgress(progress, true);
|
||||
}
|
||||
|
||||
updateSnapshotRadius();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user