From 27d9a92a4478220260bfba3ecd1a4a9b6974a24e Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Mon, 5 Apr 2021 21:19:25 -0700 Subject: [PATCH] Reset force-minimized split state when in live tile mode Bug: 184233556 Test: Enter split, go home, launch same task by tapping or swiping Change-Id: Ied2d56f087e5c05f5f7c4b19428f8088edf4e599 --- .../android/quickstep/views/RecentsView.java | 13 ++- .../com/android/quickstep/views/TaskView.java | 93 ++++++++++--------- 2 files changed, 59 insertions(+), 47 deletions(-) diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index 327f5e6e92..29dd0b4986 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -786,8 +786,7 @@ public abstract class RecentsView { - if (getTask() == null) { - return; - } - if (LIVE_TILE.get() && isRunningTask()) { - if (!mIsClickableAsLiveTile) { - return; - } - - mIsClickableAsLiveTile = false; - RecentsView recentsView = getRecentsView(); - RemoteAnimationTargets targets = recentsView.getLiveTileParams().getTargetSet(); - recentsView.getLiveTileTaskViewSimulator().setDrawsBelowRecents(false); - - AnimatorSet anim = new AnimatorSet(); - TaskViewUtils.composeRecentsLaunchAnimator( - anim, this, targets.apps, - targets.wallpapers, true /* launcherClosing */, - mActivity.getStateManager(), recentsView, - recentsView.getDepthController()); - anim.addListener(new AnimatorListenerAdapter() { - - @Override - public void onAnimationEnd(Animator animator) { - recentsView.getLiveTileTaskViewSimulator().setDrawsBelowRecents(true); - recentsView.finishRecentsAnimation(false, null); - mIsClickableAsLiveTile = true; - } - }); - anim.start(); - } else { - if (mActivity.isInState(OVERVIEW_SPLIT_SELECT)) { - // User tapped to select second split screen app - getRecentsView().confirmSplitSelect(this); - } else { - launchTaskAnimated(); - } - } - mActivity.getStatsLogManager().logger().withItemInfo(getItemInfo()) - .log(LAUNCHER_TASK_LAUNCH_TAP); - }); + setOnClickListener(this::onClick); mCurrentFullscreenParams = new FullscreenDrawParams(context); mDigitalWellBeingToast = new DigitalWellBeingToast(mActivity, this); @@ -506,10 +467,52 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { return mIconView; } - public AnimatorPlaybackController createLaunchAnimationForRunningTask() { - return getRecentsView().createTaskLaunchAnimation( - this, RECENTS_LAUNCH_DURATION, TOUCH_RESPONSE_INTERPOLATOR) - .createPlaybackController(); + private void onClick(View view) { + if (getTask() == null) { + return; + } + if (LIVE_TILE.get() && isRunningTask()) { + if (!mIsClickableAsLiveTile) { + return; + } + + // Reset the minimized state since we force-toggled the minimized state when entering + // overview, but never actually finished the recents animation + SystemUiProxy p = SystemUiProxy.INSTANCE.getNoCreate(); + if (p != null) { + p.setSplitScreenMinimized(false); + } + + mIsClickableAsLiveTile = false; + RecentsView recentsView = getRecentsView(); + RemoteAnimationTargets targets = recentsView.getLiveTileParams().getTargetSet(); + recentsView.getLiveTileTaskViewSimulator().setDrawsBelowRecents(false); + + AnimatorSet anim = new AnimatorSet(); + TaskViewUtils.composeRecentsLaunchAnimator( + anim, this, targets.apps, + targets.wallpapers, true /* launcherClosing */, + mActivity.getStateManager(), recentsView, + recentsView.getDepthController()); + anim.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animator) { + recentsView.getLiveTileTaskViewSimulator().setDrawsBelowRecents(true); + recentsView.finishRecentsAnimation(false, null); + mIsClickableAsLiveTile = true; + } + }); + anim.start(); + } else { + if (mActivity.isInState(OVERVIEW_SPLIT_SELECT)) { + // User tapped to select second split screen app + getRecentsView().confirmSplitSelect(this); + } else { + launchTaskAnimated(); + } + } + mActivity.getStatsLogManager().logger().withItemInfo(getItemInfo()) + .log(LAUNCHER_TASK_LAUNCH_TAP); } /**