Scale adjacent task icon during swipe up
Bug: 111699315
Change-Id: I13dfced7b32213590b1be267e6ddd1a2a0caddab
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index bb6f514..e1e596b 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -46,7 +46,7 @@
import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.R;
-import com.android.launcher3.Utilities;
+import com.android.launcher3.anim.Interpolators;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Direction;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch;
import com.android.quickstep.RecentsModel;
@@ -119,7 +119,7 @@
new FloatProperty<TaskView>("focusTransition") {
@Override
public void setValue(TaskView taskView, float v) {
- taskView.setIconAndDimTransitionProgress(v);
+ taskView.setIconAndDimTransitionProgress(v, false /* invert */);
}
@Override
@@ -316,11 +316,17 @@
}
}
- private void setIconAndDimTransitionProgress(float progress) {
+ private void setIconAndDimTransitionProgress(float progress, boolean invert) {
+ if (invert) {
+ progress = 1 - progress;
+ }
mFocusTransitionProgress = progress;
mSnapshotView.setDimAlphaMultipler(progress);
- float scale = FAST_OUT_SLOW_IN.getInterpolation(Utilities.boundToRange(
- progress * DIM_ANIM_DURATION / SCALE_ICON_DURATION, 0, 1));
+ float iconScalePercentage = (float) SCALE_ICON_DURATION / DIM_ANIM_DURATION;
+ float lowerClamp = invert ? 1f - iconScalePercentage : 0;
+ float upperClamp = invert ? 1 : iconScalePercentage;
+ float scale = Interpolators.clampToProgress(FAST_OUT_SLOW_IN, lowerClamp, upperClamp)
+ .getInterpolation(progress);
mIconView.setScaleX(scale);
mIconView.setScaleY(scale);
}
@@ -341,10 +347,14 @@
}
protected void setIconScaleAndDim(float iconScale) {
+ setIconScaleAndDim(iconScale, false);
+ }
+
+ private void setIconScaleAndDim(float iconScale, boolean invert) {
if (mIconAndDimAnimator != null) {
mIconAndDimAnimator.cancel();
}
- setIconAndDimTransitionProgress(iconScale);
+ setIconAndDimTransitionProgress(iconScale, invert);
}
public void resetVisualProperties() {
@@ -524,7 +534,8 @@
}
mFullscreenProgress = progress;
boolean isFullscreen = mFullscreenProgress > 0;
- mIconView.setVisibility(isFullscreen ? INVISIBLE : VISIBLE);
+ setIconScaleAndDim(progress, true /* invert */);
+ mIconView.setVisibility(progress < 1 ? VISIBLE : INVISIBLE);
setClipChildren(!isFullscreen);
setClipToPadding(!isFullscreen);
getThumbnail().invalidate();