Fading out the home surface if home and recents are shown in separate surface

Bug: 134725160
Change-Id: Ia4c5e0eefc4d8b869840645f403d943831c471f1
This commit is contained in:
Sunny Goyal
2019-06-12 15:27:33 -07:00
parent 022b182634
commit 16284b956c
2 changed files with 11 additions and 1 deletions

View File

@@ -192,6 +192,7 @@ public class ClipAnimationHelper {
float cornerRadius = 0f;
float scale = Math.max(params.currentRect.width(), mTargetRect.width()) / crop.width();
if (app.mode == targetSet.targetMode) {
alpha = mTaskAlphaCallback.apply(app, params.targetAlpha);
if (app.activityType != RemoteAnimationTargetCompat.ACTIVITY_TYPE_HOME) {
mTmpMatrix.setRectToRect(mSourceRect, params.currentRect, ScaleToFit.FILL);
mTmpMatrix.postTranslate(app.position.x, app.position.y);
@@ -208,8 +209,11 @@ public class ClipAnimationHelper {
}
mCurrentCornerRadius = cornerRadius;
}
} else if (targetSet.hasRecents) {
// If home has a different target then recents, reverse anim the
// home target.
alpha = 1 - (progress * params.targetAlpha);
}
alpha = mTaskAlphaCallback.apply(app, params.targetAlpha);
} else if (ENABLE_QUICKSTEP_LIVE_TILE.get() && launcherOnTop) {
crop = null;
layer = Integer.MAX_VALUE;

View File

@@ -33,20 +33,26 @@ public class RemoteAnimationTargetSet {
public final RemoteAnimationTargetCompat[] unfilteredApps;
public final RemoteAnimationTargetCompat[] apps;
public final int targetMode;
public final boolean hasRecents;
public RemoteAnimationTargetSet(RemoteAnimationTargetCompat[] apps, int targetMode) {
ArrayList<RemoteAnimationTargetCompat> filteredApps = new ArrayList<>();
boolean hasRecents = false;
if (apps != null) {
for (RemoteAnimationTargetCompat target : apps) {
if (target.mode == targetMode) {
filteredApps.add(target);
}
hasRecents |= target.activityType ==
RemoteAnimationTargetCompat.ACTIVITY_TYPE_RECENTS;
}
}
this.unfilteredApps = apps;
this.apps = filteredApps.toArray(new RemoteAnimationTargetCompat[filteredApps.size()]);
this.targetMode = targetMode;
this.hasRecents = hasRecents;
}
public RemoteAnimationTargetCompat findTask(int taskId) {