Loading quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +40 −65 Original line number Diff line number Diff line Loading @@ -77,7 +77,6 @@ import android.app.ActivityOptions; import android.app.WindowConfiguration; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; import android.database.ContentObserver; import android.graphics.Color; Loading Loading @@ -187,9 +186,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener */ public static final int STATUS_BAR_TRANSITION_PRE_DELAY = 96; private static final String CONTROL_REMOTE_APP_TRANSITION_PERMISSION = "android.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS"; public static final long APP_LAUNCH_DURATION = 500; private static final long APP_LAUNCH_ALPHA_DURATION = 50; Loading Loading @@ -292,8 +288,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener mLauncher.addOnDeviceProfileChangeListener(this); if (supportsSSplashScreen()) { mTaskStartParams = new LinkedHashMap<Integer, Pair<Integer, Integer>>(MAX_NUM_TASKS) { if (ENABLE_SHELL_STARTING_SURFACE) { mTaskStartParams = new LinkedHashMap<>(MAX_NUM_TASKS) { @Override protected boolean removeEldestEntry(Entry<Integer, Pair<Integer, Integer>> entry) { return size() > MAX_NUM_TASKS; Loading Loading @@ -681,7 +677,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener mDragLayer.getLocationOnScreen(dragLayerBounds); final boolean hasSplashScreen; if (supportsSSplashScreen()) { if (ENABLE_SHELL_STARTING_SURFACE) { int taskId = openingTargets.getFirstAppTargetTaskId(); Pair<Integer, Integer> defaultParams = Pair.create(STARTING_WINDOW_TYPE_NONE, 0); Pair<Integer, Integer> taskParams = Loading Loading @@ -926,7 +922,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener RemoteAnimationTarget openingTarget = openingTargets.getFirstAppTarget(); int fallbackBackgroundColor = 0; if (openingTarget != null && supportsSSplashScreen()) { if (openingTarget != null && ENABLE_SHELL_STARTING_SURFACE) { fallbackBackgroundColor = mTaskStartParams.containsKey(openingTarget.taskId) ? mTaskStartParams.get(openingTarget.taskId).second : 0; mTaskStartParams.remove(openingTarget.taskId); Loading Loading @@ -1102,12 +1098,10 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener if (SEPARATE_RECENTS_ACTIVITY.get()) { return; } if (hasControlRemoteAppTransitionPermission()) { RemoteAnimationDefinition definition = new RemoteAnimationDefinition(); addRemoteAnimations(definition); mLauncher.registerRemoteAnimations(definition); } } /** * Adds remote animations to a {@link RemoteAnimationDefinition}. May be overridden to add Loading Loading @@ -1144,7 +1138,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener if (SEPARATE_RECENTS_ACTIVITY.get()) { return; } if (hasControlRemoteAppTransitionPermission()) { mWallpaperOpenTransitionRunner = createWallpaperOpenRunner(false /* fromUnlock */); mLauncherOpenTransition = new RemoteTransition( new LauncherAnimationRunner(mHandler, mWallpaperOpenTransitionRunner, Loading @@ -1165,7 +1159,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener homeCheck.mRequirements[1].mModes = new int[]{TRANSIT_CLOSE, TRANSIT_TO_BACK}; SystemUiProxy.INSTANCE.get(mLauncher) .registerRemoteTransition(mLauncherOpenTransition, homeCheck); } if (mBackAnimationController != null) { mBackAnimationController.registerBackCallbacks(mHandler); } Loading @@ -1183,7 +1176,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener if (SEPARATE_RECENTS_ACTIVITY.get()) { return; } if (hasControlRemoteAppTransitionPermission()) { mLauncher.unregisterRemoteAnimations(); // Also clear strong references to the runners registered with the remote animation Loading @@ -1192,7 +1184,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener mAppLaunchRunner = null; mKeyguardGoingAwayRunner = null; } } protected void unregisterRemoteTransitions() { if (ENABLE_SHELL_TRANSITIONS) { Loading @@ -1201,13 +1192,11 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener if (SEPARATE_RECENTS_ACTIVITY.get()) { return; } if (hasControlRemoteAppTransitionPermission()) { if (mLauncherOpenTransition == null) return; SystemUiProxy.INSTANCE.get(mLauncher).unregisterRemoteTransition( mLauncherOpenTransition); mLauncherOpenTransition = null; mWallpaperOpenTransitionRunner = null; } if (mBackAnimationController != null) { mBackAnimationController.unregisterBackCallbacks(); mBackAnimationController = null; Loading Loading @@ -1553,20 +1542,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener return closingAnimator; } private boolean supportsSSplashScreen() { return hasControlRemoteAppTransitionPermission() && Utilities.ATLEAST_S && ENABLE_SHELL_STARTING_SURFACE; } /** * Returns true if we have permission to control remote app transisions */ public boolean hasControlRemoteAppTransitionPermission() { return mLauncher.checkSelfPermission(CONTROL_REMOTE_APP_TRANSITION_PERMISSION) == PackageManager.PERMISSION_GRANTED; } private void addCujInstrumentation(Animator anim, int cuj) { anim.addListener(new AnimationSuccessListener() { @Override Loading quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +2 −5 Original line number Diff line number Diff line Loading @@ -1021,7 +1021,7 @@ public class QuickstepLauncher extends Launcher { @Override public boolean supportsAdaptiveIconAnimation(View clickedView) { return mAppTransitionManager.hasControlRemoteAppTransitionPermission(); return true; } @Override Loading Loading @@ -1056,10 +1056,7 @@ public class QuickstepLauncher extends Launcher { @Override public ActivityOptionsWrapper getActivityLaunchOptions(View v, @Nullable ItemInfo item) { ActivityOptionsWrapper activityOptions = mAppTransitionManager.hasControlRemoteAppTransitionPermission() ? mAppTransitionManager.getActivityLaunchOptions(v) : super.getActivityLaunchOptions(v, item); ActivityOptionsWrapper activityOptions = mAppTransitionManager.getActivityLaunchOptions(v); if (mLastTouchUpTime > 0) { activityOptions.options.setSourceInfo(ActivityOptions.SourceInfo.TYPE_LAUNCHER, mLastTouchUpTime); Loading Loading
quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +40 −65 Original line number Diff line number Diff line Loading @@ -77,7 +77,6 @@ import android.app.ActivityOptions; import android.app.WindowConfiguration; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; import android.database.ContentObserver; import android.graphics.Color; Loading Loading @@ -187,9 +186,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener */ public static final int STATUS_BAR_TRANSITION_PRE_DELAY = 96; private static final String CONTROL_REMOTE_APP_TRANSITION_PERMISSION = "android.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS"; public static final long APP_LAUNCH_DURATION = 500; private static final long APP_LAUNCH_ALPHA_DURATION = 50; Loading Loading @@ -292,8 +288,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener mLauncher.addOnDeviceProfileChangeListener(this); if (supportsSSplashScreen()) { mTaskStartParams = new LinkedHashMap<Integer, Pair<Integer, Integer>>(MAX_NUM_TASKS) { if (ENABLE_SHELL_STARTING_SURFACE) { mTaskStartParams = new LinkedHashMap<>(MAX_NUM_TASKS) { @Override protected boolean removeEldestEntry(Entry<Integer, Pair<Integer, Integer>> entry) { return size() > MAX_NUM_TASKS; Loading Loading @@ -681,7 +677,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener mDragLayer.getLocationOnScreen(dragLayerBounds); final boolean hasSplashScreen; if (supportsSSplashScreen()) { if (ENABLE_SHELL_STARTING_SURFACE) { int taskId = openingTargets.getFirstAppTargetTaskId(); Pair<Integer, Integer> defaultParams = Pair.create(STARTING_WINDOW_TYPE_NONE, 0); Pair<Integer, Integer> taskParams = Loading Loading @@ -926,7 +922,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener RemoteAnimationTarget openingTarget = openingTargets.getFirstAppTarget(); int fallbackBackgroundColor = 0; if (openingTarget != null && supportsSSplashScreen()) { if (openingTarget != null && ENABLE_SHELL_STARTING_SURFACE) { fallbackBackgroundColor = mTaskStartParams.containsKey(openingTarget.taskId) ? mTaskStartParams.get(openingTarget.taskId).second : 0; mTaskStartParams.remove(openingTarget.taskId); Loading Loading @@ -1102,12 +1098,10 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener if (SEPARATE_RECENTS_ACTIVITY.get()) { return; } if (hasControlRemoteAppTransitionPermission()) { RemoteAnimationDefinition definition = new RemoteAnimationDefinition(); addRemoteAnimations(definition); mLauncher.registerRemoteAnimations(definition); } } /** * Adds remote animations to a {@link RemoteAnimationDefinition}. May be overridden to add Loading Loading @@ -1144,7 +1138,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener if (SEPARATE_RECENTS_ACTIVITY.get()) { return; } if (hasControlRemoteAppTransitionPermission()) { mWallpaperOpenTransitionRunner = createWallpaperOpenRunner(false /* fromUnlock */); mLauncherOpenTransition = new RemoteTransition( new LauncherAnimationRunner(mHandler, mWallpaperOpenTransitionRunner, Loading @@ -1165,7 +1159,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener homeCheck.mRequirements[1].mModes = new int[]{TRANSIT_CLOSE, TRANSIT_TO_BACK}; SystemUiProxy.INSTANCE.get(mLauncher) .registerRemoteTransition(mLauncherOpenTransition, homeCheck); } if (mBackAnimationController != null) { mBackAnimationController.registerBackCallbacks(mHandler); } Loading @@ -1183,7 +1176,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener if (SEPARATE_RECENTS_ACTIVITY.get()) { return; } if (hasControlRemoteAppTransitionPermission()) { mLauncher.unregisterRemoteAnimations(); // Also clear strong references to the runners registered with the remote animation Loading @@ -1192,7 +1184,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener mAppLaunchRunner = null; mKeyguardGoingAwayRunner = null; } } protected void unregisterRemoteTransitions() { if (ENABLE_SHELL_TRANSITIONS) { Loading @@ -1201,13 +1192,11 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener if (SEPARATE_RECENTS_ACTIVITY.get()) { return; } if (hasControlRemoteAppTransitionPermission()) { if (mLauncherOpenTransition == null) return; SystemUiProxy.INSTANCE.get(mLauncher).unregisterRemoteTransition( mLauncherOpenTransition); mLauncherOpenTransition = null; mWallpaperOpenTransitionRunner = null; } if (mBackAnimationController != null) { mBackAnimationController.unregisterBackCallbacks(); mBackAnimationController = null; Loading Loading @@ -1553,20 +1542,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener return closingAnimator; } private boolean supportsSSplashScreen() { return hasControlRemoteAppTransitionPermission() && Utilities.ATLEAST_S && ENABLE_SHELL_STARTING_SURFACE; } /** * Returns true if we have permission to control remote app transisions */ public boolean hasControlRemoteAppTransitionPermission() { return mLauncher.checkSelfPermission(CONTROL_REMOTE_APP_TRANSITION_PERMISSION) == PackageManager.PERMISSION_GRANTED; } private void addCujInstrumentation(Animator anim, int cuj) { anim.addListener(new AnimationSuccessListener() { @Override Loading
quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +2 −5 Original line number Diff line number Diff line Loading @@ -1021,7 +1021,7 @@ public class QuickstepLauncher extends Launcher { @Override public boolean supportsAdaptiveIconAnimation(View clickedView) { return mAppTransitionManager.hasControlRemoteAppTransitionPermission(); return true; } @Override Loading Loading @@ -1056,10 +1056,7 @@ public class QuickstepLauncher extends Launcher { @Override public ActivityOptionsWrapper getActivityLaunchOptions(View v, @Nullable ItemInfo item) { ActivityOptionsWrapper activityOptions = mAppTransitionManager.hasControlRemoteAppTransitionPermission() ? mAppTransitionManager.getActivityLaunchOptions(v) : super.getActivityLaunchOptions(v, item); ActivityOptionsWrapper activityOptions = mAppTransitionManager.getActivityLaunchOptions(v); if (mLastTouchUpTime > 0) { activityOptions.options.setSourceInfo(ActivityOptions.SourceInfo.TYPE_LAUNCHER, mLastTouchUpTime); Loading