mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-01 00:06:47 +00:00
Merge "Skip Launcher opening animation if its not in the set of opening apps." into ub-launcher3-master
This commit is contained in:
committed by
Android (Google) Code Review
commit
ba747b6f19
@@ -20,6 +20,7 @@ import static com.android.launcher3.allapps.AllAppsTransitionController.ALL_APPS
|
||||
import static com.android.systemui.shared.recents.utilities.Utilities.getNextFrameNumber;
|
||||
import static com.android.systemui.shared.recents.utilities.Utilities.getSurface;
|
||||
import static com.android.systemui.shared.recents.utilities.Utilities.postAtFrontOfQueueAsynchronously;
|
||||
import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.MODE_OPENING;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
@@ -530,7 +531,7 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
|
||||
TransactionCompat t = new TransactionCompat();
|
||||
for (RemoteAnimationTargetCompat target : targets) {
|
||||
if (target.mode == RemoteAnimationTargetCompat.MODE_OPENING) {
|
||||
if (target.mode == MODE_OPENING) {
|
||||
t.setAlpha(target.leash, alpha);
|
||||
|
||||
// TODO: This isn't correct at the beginning of the animation, but better
|
||||
@@ -573,6 +574,16 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isLauncherInSetOfOpeningTargets(RemoteAnimationTargetCompat[] targets) {
|
||||
int launcherTaskId = mLauncher.getTaskId();
|
||||
for (RemoteAnimationTargetCompat target : targets) {
|
||||
if (target.mode == MODE_OPENING && target.taskId == launcherTaskId) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Runner that plays when user goes to Launcher
|
||||
* ie. pressing home, swiping up from nav bar.
|
||||
@@ -584,9 +595,12 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
Runnable finishedCallback) {
|
||||
Handler handler = mLauncher.getWindow().getDecorView().getHandler();
|
||||
postAtFrontOfQueueAsynchronously(handler, () -> {
|
||||
if (Utilities.getPrefs(mLauncher).getBoolean("pref_use_screenshot_animation",
|
||||
true) && mLauncher.isInState(LauncherState.OVERVIEW)) {
|
||||
// We use a separate transition for Overview mode.
|
||||
if ((Utilities.getPrefs(mLauncher).getBoolean("pref_use_screenshot_animation",
|
||||
true) && mLauncher.isInState(LauncherState.OVERVIEW))
|
||||
|| !isLauncherInSetOfOpeningTargets(targets)) {
|
||||
// We use a separate transition for Overview mode. And we can skip the
|
||||
// animation in cases where Launcher is not in the set of opening targets.
|
||||
// This can happen when Launcher is already visible. ie. Closing a dialog.
|
||||
setCurrentAnimator(null);
|
||||
finishedCallback.run();
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user