Merge "Continue receiving key events from input consumer after settling into Overview" into sc-dev
This commit is contained in:
@@ -1334,7 +1334,11 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
}
|
||||
|
||||
private void invalidateHandler() {
|
||||
mInputConsumerProxy.destroy();
|
||||
if (!LIVE_TILE.get() || !mActivityInterface.isInLiveTileMode()
|
||||
|| mGestureState.getEndTarget() != RECENTS) {
|
||||
mInputConsumerProxy.destroy();
|
||||
mTaskAnimationManager.setLiveTileCleanUpHandler(null);
|
||||
}
|
||||
endRunningWindowAnim(false /* cancel */);
|
||||
|
||||
if (mGestureEndCallback != null) {
|
||||
@@ -1526,6 +1530,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
apps[apps.length - 1] = appearedTaskTarget;
|
||||
launchOtherTaskInLiveTileMode(appearedTaskTarget.taskId, apps);
|
||||
});
|
||||
mTaskAnimationManager.setLiveTileCleanUpHandler(mInputConsumerProxy::destroy);
|
||||
ActivityManagerWrapper.getInstance().registerTaskStackListener(
|
||||
mLiveTileRestartListener);
|
||||
}
|
||||
|
||||
@@ -50,6 +50,7 @@ public class TaskAnimationManager implements RecentsAnimationCallbacks.RecentsAn
|
||||
private GestureState mLastGestureState;
|
||||
private RemoteAnimationTargetCompat mLastAppearedTaskTarget;
|
||||
private Consumer<RemoteAnimationTargetCompat> mLaunchOtherTaskHandler;
|
||||
private Runnable mLiveTileCleanUpHandler;
|
||||
private Context mCtx;
|
||||
|
||||
TaskAnimationManager(Context ctx) {
|
||||
@@ -169,6 +170,10 @@ public class TaskAnimationManager implements RecentsAnimationCallbacks.RecentsAn
|
||||
mLaunchOtherTaskHandler = handler;
|
||||
}
|
||||
|
||||
public void setLiveTileCleanUpHandler(Runnable runnable) {
|
||||
mLiveTileCleanUpHandler = runnable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Finishes the running recents animation.
|
||||
*/
|
||||
@@ -206,6 +211,11 @@ public class TaskAnimationManager implements RecentsAnimationCallbacks.RecentsAn
|
||||
* Cleans up the recents animation entirely.
|
||||
*/
|
||||
private void cleanUpRecentsAnimation() {
|
||||
if (mLiveTileCleanUpHandler != null) {
|
||||
mLiveTileCleanUpHandler.run();
|
||||
mLiveTileCleanUpHandler = null;
|
||||
}
|
||||
|
||||
// Release all the target leashes
|
||||
if (mTargets != null) {
|
||||
mTargets.release();
|
||||
|
||||
Reference in New Issue
Block a user