diff options
-rw-r--r-- | quickstep/recents_ui_overrides/src/com/android/quickstep/util/ClipAnimationHelper.java | 6 | ||||
-rw-r--r-- | quickstep/src/com/android/quickstep/util/RemoteAnimationTargetSet.java | 6 |
2 files changed, 11 insertions, 1 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/ClipAnimationHelper.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/ClipAnimationHelper.java index aca23e4e4..de671e04a 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/ClipAnimationHelper.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/ClipAnimationHelper.java @@ -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; diff --git a/quickstep/src/com/android/quickstep/util/RemoteAnimationTargetSet.java b/quickstep/src/com/android/quickstep/util/RemoteAnimationTargetSet.java index 0df4e947d..1229293e6 100644 --- a/quickstep/src/com/android/quickstep/util/RemoteAnimationTargetSet.java +++ b/quickstep/src/com/android/quickstep/util/RemoteAnimationTargetSet.java @@ -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) { |