[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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user