diff --git a/quickstep/src/com/android/launcher3/LauncherInitListener.java b/quickstep/src/com/android/launcher3/LauncherInitListener.java index 5fc79f078f..35151f1a68 100644 --- a/quickstep/src/com/android/launcher3/LauncherInitListener.java +++ b/quickstep/src/com/android/launcher3/LauncherInitListener.java @@ -17,11 +17,8 @@ package com.android.launcher3; import android.animation.AnimatorSet; import android.annotation.TargetApi; -import android.content.Context; -import android.content.Intent; import android.os.Build; import android.os.CancellationSignal; -import android.os.Handler; import com.android.quickstep.util.ActivityInitListener; import com.android.quickstep.util.RemoteAnimationProvider; @@ -78,11 +75,4 @@ public class LauncherInitListener extends ActivityInitListener { mRemoteAnimationProvider = null; super.unregister(); } - - @Override - public void registerAndStartActivity(Intent intent, RemoteAnimationProvider animProvider, - Context context, Handler handler, long duration) { - mRemoteAnimationProvider = animProvider; - super.registerAndStartActivity(intent, animProvider, context, handler, duration); - } } diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index 7e5bda538e..2ccec44fe2 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -285,7 +285,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener long statusBarTransitionDelay = duration - STATUS_BAR_TRANSITION_DURATION - STATUS_BAR_TRANSITION_PRE_DELAY; RemoteAnimationAdapterCompat adapterCompat = - new RemoteAnimationAdapterCompat(runner, duration, statusBarTransitionDelay); + new RemoteAnimationAdapterCompat(runner, duration, statusBarTransitionDelay, + mLauncher.getIApplicationThread()); return new ActivityOptionsWrapper( ActivityOptionsCompat.makeRemoteAnimation(adapterCompat), onEndCallback); } @@ -1081,7 +1082,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener new RemoteAnimationAdapterCompat( new LauncherAnimationRunner(mHandler, mWallpaperOpenRunner, false /* startAtFrontOfQueue */), - CLOSING_TRANSITION_DURATION_MS, 0 /* statusBarTransitionDelay */)); + CLOSING_TRANSITION_DURATION_MS, 0 /* statusBarTransitionDelay */, + mLauncher.getIApplicationThread())); if (KEYGUARD_ANIMATION.get()) { mKeyguardGoingAwayRunner = createWallpaperOpenRunner(true /* fromUnlock */); @@ -1091,7 +1093,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener new LauncherAnimationRunner( mHandler, mKeyguardGoingAwayRunner, true /* startAtFrontOfQueue */), - CLOSING_TRANSITION_DURATION_MS, 0 /* statusBarTransitionDelay */)); + CLOSING_TRANSITION_DURATION_MS, 0 /* statusBarTransitionDelay */, + mLauncher.getIApplicationThread())); } new ActivityCompat(mLauncher).registerRemoteAnimations(definition); @@ -1109,7 +1112,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener mWallpaperOpenTransitionRunner = createWallpaperOpenRunner(false /* fromUnlock */); mLauncherOpenTransition = RemoteAnimationAdapterCompat.buildRemoteTransition( new LauncherAnimationRunner(mHandler, mWallpaperOpenTransitionRunner, - false /* startAtFrontOfQueue */)); + false /* startAtFrontOfQueue */), mLauncher.getIApplicationThread()); mLauncherOpenTransition.addHomeOpenCheck(mLauncher.getComponentName()); SystemUiProxy.INSTANCE.getNoCreate().registerRemoteTransition(mLauncherOpenTransition); } diff --git a/quickstep/src/com/android/quickstep/RecentsActivity.java b/quickstep/src/com/android/quickstep/RecentsActivity.java index ad7e4dfd3d..09a0b7d387 100644 --- a/quickstep/src/com/android/quickstep/RecentsActivity.java +++ b/quickstep/src/com/android/quickstep/RecentsActivity.java @@ -245,7 +245,7 @@ public final class RecentsActivity extends StatefulActivity { RemoteAnimationAdapterCompat adapterCompat = new RemoteAnimationAdapterCompat( wrapper, RECENTS_LAUNCH_DURATION, RECENTS_LAUNCH_DURATION - STATUS_BAR_TRANSITION_DURATION - - STATUS_BAR_TRANSITION_PRE_DELAY); + - STATUS_BAR_TRANSITION_PRE_DELAY, getIApplicationThread()); final ActivityOptionsWrapper activityOptions = new ActivityOptionsWrapper( ActivityOptionsCompat.makeRemoteAnimation(adapterCompat), onEndCallback); @@ -394,7 +394,8 @@ public final class RecentsActivity extends StatefulActivity { LauncherAnimationRunner runner = new LauncherAnimationRunner( getMainThreadHandler(), mAnimationToHomeFactory, true); RemoteAnimationAdapterCompat adapterCompat = - new RemoteAnimationAdapterCompat(runner, HOME_APPEAR_DURATION, 0); + new RemoteAnimationAdapterCompat(runner, HOME_APPEAR_DURATION, 0, + getIApplicationThread()); startActivity(createHomeIntent(), ActivityOptionsCompat.makeRemoteAnimation(adapterCompat).toBundle()); } diff --git a/quickstep/src/com/android/quickstep/TaskAnimationManager.java b/quickstep/src/com/android/quickstep/TaskAnimationManager.java index 4b8998115d..258a0c2c03 100644 --- a/quickstep/src/com/android/quickstep/TaskAnimationManager.java +++ b/quickstep/src/com/android/quickstep/TaskAnimationManager.java @@ -178,7 +178,8 @@ public class TaskAnimationManager implements RecentsAnimationCallbacks.RecentsAn if (ENABLE_SHELL_TRANSITIONS) { RemoteTransitionCompat transition = new RemoteTransitionCompat(mCallbacks, - mController != null ? mController.getController() : null); + mController != null ? mController.getController() : null, + mCtx.getIApplicationThread()); Bundle options = ActivityOptionsCompat.makeRemoteTransition(transition) .setTransientLaunch().toBundle(); mCtx.startActivity(intent, options); diff --git a/quickstep/src/com/android/quickstep/util/ActivityInitListener.java b/quickstep/src/com/android/quickstep/util/ActivityInitListener.java index b9879ab82b..aeec36f63c 100644 --- a/quickstep/src/com/android/quickstep/util/ActivityInitListener.java +++ b/quickstep/src/com/android/quickstep/util/ActivityInitListener.java @@ -15,11 +15,6 @@ */ package com.android.quickstep.util; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.os.Handler; - import com.android.launcher3.BaseActivity; import com.android.launcher3.util.ActivityTracker; import com.android.launcher3.util.ActivityTracker.SchedulerCallback; @@ -75,17 +70,4 @@ public class ActivityInitListener implements mIsRegistered = false; mOnInitListener = null; } - - /** - * Starts the given intent with the provided animation. Unlike {@link #register(Intent)}, this - * method will not call {@link #init} if the activity already exists, it will only call it when - * we get handleIntent() for the provided intent that we're starting. - */ - public void registerAndStartActivity(Intent intent, RemoteAnimationProvider animProvider, - Context context, Handler handler, long duration) { - register(); - - Bundle options = animProvider.toActivityOptions(handler, duration, context).toBundle(); - context.startActivity(new Intent(intent), options); - } } diff --git a/quickstep/src/com/android/quickstep/util/RemoteAnimationProvider.java b/quickstep/src/com/android/quickstep/util/RemoteAnimationProvider.java index 98dbd47ba4..ee82ae67df 100644 --- a/quickstep/src/com/android/quickstep/util/RemoteAnimationProvider.java +++ b/quickstep/src/com/android/quickstep/util/RemoteAnimationProvider.java @@ -16,32 +16,14 @@ package com.android.quickstep.util; import android.animation.AnimatorSet; -import android.app.ActivityOptions; -import android.content.Context; -import android.os.Handler; -import com.android.launcher3.LauncherAnimationRunner; -import com.android.launcher3.LauncherAnimationRunner.RemoteAnimationFactory; -import com.android.systemui.shared.system.ActivityOptionsCompat; -import com.android.systemui.shared.system.RemoteAnimationAdapterCompat; import com.android.systemui.shared.system.RemoteAnimationTargetCompat; public abstract class RemoteAnimationProvider { - RemoteAnimationFactory mAnimationRunner; - public abstract AnimatorSet createWindowAnimation(RemoteAnimationTargetCompat[] appTargets, RemoteAnimationTargetCompat[] wallpaperTargets); - ActivityOptions toActivityOptions(Handler handler, long duration, Context context) { - mAnimationRunner = (transit, appTargets, wallpaperTargets, nonApps, result) -> - result.setAnimation(createWindowAnimation(appTargets, wallpaperTargets), context); - final LauncherAnimationRunner wrapper = new LauncherAnimationRunner( - handler, mAnimationRunner, false /* startAtFrontOfQueue */); - return ActivityOptionsCompat.makeRemoteAnimation( - new RemoteAnimationAdapterCompat(wrapper, duration, 0)); - } - /** * @return the target with the lowest opaque layer for a certain app animation, or null. */ diff --git a/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java b/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java index 1dae2c8712..4c300ec17a 100644 --- a/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java +++ b/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java @@ -94,7 +94,8 @@ public class SplitSelectStateController { new RemoteSplitLaunchTransitionRunner(task1, task2); mSystemUiProxy.startTasks(taskIds[0], null /* mainOptions */, taskIds[1], null /* sideOptions */, STAGE_POSITION_BOTTOM_OR_RIGHT, - new RemoteTransitionCompat(animationRunner, MAIN_EXECUTOR)); + new RemoteTransitionCompat(animationRunner, MAIN_EXECUTOR, + ActivityThread.currentActivityThread().getApplicationThread())); } else { RemoteSplitLaunchAnimationRunner animationRunner = new RemoteSplitLaunchAnimationRunner(task1, task2, callback);