[automerge] Implement switchtoScreenshot recents callback 2p: e81d9679c1

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/17363980

Bug: 223321653
Change-Id: Iab3eb961a0c14fc0515f4e59f239775603ff2842
This commit is contained in:
Evan Rosky
2022-03-24 21:14:24 +00:00
committed by Presubmit Automerger Backend
2 changed files with 37 additions and 0 deletions
@@ -145,6 +145,18 @@ public class RecentsAnimationCallbacks implements
});
}
@BinderThread
@Override
public boolean onSwitchToScreenshot(Runnable onFinished) {
Utilities.postAsyncCallback(MAIN_EXECUTOR.getHandler(), () -> {
for (RecentsAnimationListener listener : getListeners()) {
if (listener.onSwitchToScreenshot(onFinished)) return;
}
onFinished.run();
});
return true;
}
private final void onAnimationFinished(RecentsAnimationController controller) {
Utilities.postAsyncCallback(MAIN_EXECUTOR.getHandler(), () -> {
for (RecentsAnimationListener listener : getListeners()) {
@@ -180,5 +192,12 @@ public class RecentsAnimationCallbacks implements
* Callback made when a task started from the recents is ready for an app transition.
*/
default void onTasksAppeared(@NonNull RemoteAnimationTargetCompat[] appearedTaskTarget) {}
/**
* @return whether this will call onFinished or not (onFinished should only be called once).
*/
default boolean onSwitchToScreenshot(Runnable onFinished) {
return false;
}
}
}
@@ -203,6 +203,24 @@ public class TaskAnimationManager implements RecentsAnimationCallbacks.RecentsAn
}
}
}
@Override
public boolean onSwitchToScreenshot(Runnable onFinished) {
if (!ENABLE_QUICKSTEP_LIVE_TILE.get() || !activityInterface.isInLiveTileMode()
|| activityInterface.getCreatedActivity() == null) {
// No need to switch since tile is already a screenshot.
onFinished.run();
} else {
final RecentsView recentsView =
activityInterface.getCreatedActivity().getOverviewPanel();
if (recentsView != null) {
recentsView.switchToScreenshot(onFinished);
} else {
onFinished.run();
}
}
return true;
}
});
final long eventTime = gestureState.getSwipeUpStartTimeMs();
mCallbacks.addListener(gestureState);