Loading quickstep/src/com/android/launcher3/LauncherInitListener.java +0 −37 Original line number Diff line number Diff line Loading @@ -15,23 +15,16 @@ */ package com.android.launcher3; import android.animation.AnimatorSet; import android.annotation.TargetApi; import android.os.Build; import android.os.CancellationSignal; import android.view.RemoteAnimationTarget; import com.android.launcher3.uioverrides.QuickstepLauncher; import com.android.quickstep.util.ActivityInitListener; import com.android.quickstep.util.RemoteAnimationProvider; import java.util.function.BiPredicate; @TargetApi(Build.VERSION_CODES.P) public class LauncherInitListener extends ActivityInitListener<Launcher> { private RemoteAnimationProvider mRemoteAnimationProvider; /** * @param onInitListener a callback made when the activity is initialized. The callback should * return true to continue receiving callbacks (ie. for if the activity is Loading @@ -43,37 +36,7 @@ public class LauncherInitListener extends ActivityInitListener<Launcher> { @Override public boolean handleInit(Launcher launcher, boolean alreadyOnHome) { if (mRemoteAnimationProvider != null) { QuickstepTransitionManager appTransitionManager = ((QuickstepLauncher) launcher).getAppTransitionManager(); // Set a one-time animation provider. After the first call, this will get cleared. // TODO: Probably also check the intended target id. CancellationSignal cancellationSignal = new CancellationSignal(); appTransitionManager.setRemoteAnimationProvider(new RemoteAnimationProvider() { @Override public AnimatorSet createWindowAnimation(RemoteAnimationTarget[] appTargets, RemoteAnimationTarget[] wallpaperTargets) { // On the first call clear the reference. cancellationSignal.cancel(); RemoteAnimationProvider provider = mRemoteAnimationProvider; mRemoteAnimationProvider = null; if (provider != null && launcher.getStateManager().getState().overviewUi) { return provider.createWindowAnimation(appTargets, wallpaperTargets); } return null; } }, cancellationSignal); } launcher.deferOverlayCallbacksUntilNextResumeOrStop(); return super.handleInit(launcher, alreadyOnHome); } @Override public void unregister() { mRemoteAnimationProvider = null; super.unregister(); } } quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +71 −95 Original line number Diff line number Diff line Loading @@ -82,7 +82,6 @@ import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.CancellationSignal; import android.os.Handler; import android.os.IBinder; import android.os.Looper; Loading Loading @@ -140,7 +139,6 @@ import com.android.quickstep.util.MultiValueUpdateListener; import com.android.quickstep.util.RectFSpringAnim; import com.android.quickstep.util.RectFSpringAnim.DefaultSpringConfig; import com.android.quickstep.util.RectFSpringAnim.TaskbarHotseatSpringConfig; import com.android.quickstep.util.RemoteAnimationProvider; import com.android.quickstep.util.StaggeredWorkspaceAnim; import com.android.quickstep.util.SurfaceTransaction; import com.android.quickstep.util.SurfaceTransaction.SurfaceProperties; Loading Loading @@ -229,7 +227,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener private DeviceProfile mDeviceProfile; private RemoteAnimationProvider mRemoteAnimationProvider; // Strong refs to runners which are cleared when the launcher activity is destroyed private RemoteAnimationFactory mWallpaperOpenRunner; private RemoteAnimationFactory mAppLaunchRunner; Loading Loading @@ -468,16 +465,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener return bounds; } public void setRemoteAnimationProvider(final RemoteAnimationProvider animationProvider, CancellationSignal cancellationSignal) { mRemoteAnimationProvider = animationProvider; cancellationSignal.setOnCancelListener(() -> { if (animationProvider == mRemoteAnimationProvider) { mRemoteAnimationProvider = null; } }); } /** Dump debug logs to bug report. */ public void dump(@NonNull String prefix, @NonNull PrintWriter printWriter) {} Loading Loading @@ -1234,7 +1221,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener * ie. pressing home, swiping up from nav bar. */ RemoteAnimationFactory createWallpaperOpenRunner(boolean fromUnlock) { return new WallpaperOpenLauncherAnimationRunner(mHandler, fromUnlock); return new WallpaperOpenLauncherAnimationRunner(fromUnlock); } /** Loading Loading @@ -1352,7 +1339,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener /** * Closing animator that animates the window into its final location on the workspace. */ private RectFSpringAnim getClosingWindowAnimators(AnimatorSet animation, protected RectFSpringAnim getClosingWindowAnimators(AnimatorSet animation, RemoteAnimationTarget[] targets, View launcherView, PointF velocityPxPerS, RectF closingWindowStartRect, float startWindowCornerRadius) { FloatingIconView floatingIconView = null; Loading Loading @@ -1592,17 +1579,9 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener RectF startRect, float startWindowCornerRadius, boolean fromPredictiveBack) { AnimatorSet anim = null; AnimatorSet anim = new AnimatorSet(); RectFSpringAnim rectFSpringAnim = null; RemoteAnimationProvider provider = mRemoteAnimationProvider; if (provider != null) { anim = provider.createWindowAnimation(appTargets, wallpaperTargets); } if (anim == null) { anim = new AnimatorSet(); final boolean launcherIsForceInvisibleOrOpening = mLauncher.isForceInvisible() || launcherIsATargetWithMode(appTargets, MODE_OPENING); Loading Loading @@ -1677,7 +1656,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener } } } } return new Pair(rectFSpringAnim, anim); } Loading @@ -1687,11 +1665,9 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener */ protected class WallpaperOpenLauncherAnimationRunner implements RemoteAnimationFactory { private final Handler mHandler; private final boolean mFromUnlock; public WallpaperOpenLauncherAnimationRunner(Handler handler, boolean fromUnlock) { mHandler = handler; public WallpaperOpenLauncherAnimationRunner(boolean fromUnlock) { mFromUnlock = fromUnlock; } Loading quickstep/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java +1 −2 Original line number Diff line number Diff line Loading @@ -114,8 +114,7 @@ public class HotseatPredictionController implements DragController.DragListener, WorkspaceItemInfo dragItem = new WorkspaceItemInfo((WorkspaceItemInfo) v.getTag()); v.setVisibility(View.INVISIBLE); mLauncher.getWorkspace().beginDragShared( v, null, this, dragItem, new DragPreviewProvider(v), mLauncher.getDefaultWorkspaceDragOptions()); v, null, this, dragItem, new DragPreviewProvider(v), new DragOptions()); return true; }; Loading quickstep/src/com/android/launcher3/uioverrides/ApiWrapper.java +12 −0 Original line number Diff line number Diff line Loading @@ -16,13 +16,16 @@ package com.android.launcher3.uioverrides; import android.app.ActivityOptions; import android.app.Person; import android.content.Context; import android.content.pm.LauncherActivityInfo; import android.content.pm.LauncherApps; import android.content.pm.ShortcutInfo; import android.window.RemoteTransition; import com.android.launcher3.Utilities; import com.android.quickstep.util.FadeOutRemoteTransition; import java.util.Map; Loading @@ -41,4 +44,13 @@ public class ApiWrapper { public static Map<String, LauncherActivityInfo> getActivityOverrides(Context context) { return context.getSystemService(LauncherApps.class).getActivityOverrides(); } /** * Creates an ActivityOptions to play fade-out animation on closing targets */ public static ActivityOptions createFadeOutAnimOptions(Context context) { ActivityOptions options = ActivityOptions.makeBasic(); options.setRemoteTransition(new RemoteTransition(new FadeOutRemoteTransition())); return options; } } quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +0 −43 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.LauncherState.OVERVIEW_MODAL_TASK; import static com.android.launcher3.LauncherState.OVERVIEW_SPLIT_SELECT; import static com.android.launcher3.compat.AccessibilityManagerCompat.sendCustomAccessibilityEvent; import static com.android.launcher3.config.FeatureFlags.ENABLE_SPLIT_FROM_DESKTOP_TO_WORKSPACE; import static com.android.launcher3.config.FeatureFlags.ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE; import static com.android.launcher3.config.FeatureFlags.RECEIVE_UNFOLD_EVENTS_FROM_SYSUI; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_APP_LAUNCH_TAP; Loading @@ -59,7 +58,6 @@ import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SY import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.ValueAnimator; import android.app.ActivityManager; import android.app.ActivityOptions; import android.content.Context; Loading @@ -76,13 +74,11 @@ import android.hardware.display.DisplayManager; import android.media.permission.SafeCloseable; import android.os.Build; import android.os.Bundle; import android.os.CancellationSignal; import android.os.IBinder; import android.os.SystemProperties; import android.os.Trace; import android.view.Display; import android.view.HapticFeedbackConstants; import android.view.RemoteAnimationTarget; import android.view.View; import android.window.BackEvent; import android.window.OnBackAnimationCallback; Loading Loading @@ -110,7 +106,6 @@ import com.android.launcher3.anim.AnimatorPlaybackController; import com.android.launcher3.anim.PendingAnimation; import com.android.launcher3.appprediction.PredictionRowView; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.dragndrop.DragOptions; import com.android.launcher3.hybridhotseat.HotseatPredictionController; import com.android.launcher3.logging.InstanceId; import com.android.launcher3.logging.StatsLogManager; Loading Loading @@ -164,8 +159,6 @@ import com.android.quickstep.util.GroupTask; import com.android.quickstep.util.LauncherUnfoldAnimationController; import com.android.quickstep.util.ProxyScreenStatusProvider; import com.android.quickstep.util.QuickstepOnboardingPrefs; import com.android.quickstep.util.RemoteAnimationProvider; import com.android.quickstep.util.RemoteFadeOutAnimationListener; import com.android.quickstep.util.SplitSelectStateController; import com.android.quickstep.util.SplitToWorkspaceController; import com.android.quickstep.util.SplitWithKeyboardShortcutController; Loading Loading @@ -221,7 +214,6 @@ public class QuickstepLauncher extends Launcher { private TISBindHelper mTISBindHelper; private @Nullable LauncherTaskbarUIController mTaskbarUIController; // Will be updated when dragging from taskbar. private @Nullable DragOptions mNextWorkspaceDragOptions = null; private @Nullable UnfoldTransitionProgressProvider mUnfoldTransitionProgressProvider; private @Nullable LauncherUnfoldAnimationController mLauncherUnfoldAnimationController; Loading Loading @@ -1048,41 +1040,6 @@ public class QuickstepLauncher extends Launcher { return mAppTransitionManager.hasControlRemoteAppTransitionPermission(); } @Override public DragOptions getDefaultWorkspaceDragOptions() { if (mNextWorkspaceDragOptions != null) { DragOptions options = mNextWorkspaceDragOptions; mNextWorkspaceDragOptions = null; return options; } return super.getDefaultWorkspaceDragOptions(); } public void setNextWorkspaceDragOptions(DragOptions dragOptions) { mNextWorkspaceDragOptions = dragOptions; } @Override public void useFadeOutAnimationForLauncherStart(CancellationSignal signal) { QuickstepTransitionManager appTransitionManager = getAppTransitionManager(); appTransitionManager.setRemoteAnimationProvider(new RemoteAnimationProvider() { @Override public AnimatorSet createWindowAnimation(RemoteAnimationTarget[] appTargets, RemoteAnimationTarget[] wallpaperTargets) { // On the first call clear the reference. signal.cancel(); ValueAnimator fadeAnimation = ValueAnimator.ofFloat(1, 0); fadeAnimation.addUpdateListener(new RemoteFadeOutAnimationListener(appTargets, wallpaperTargets)); AnimatorSet anim = new AnimatorSet(); anim.play(fadeAnimation); return anim; } }, signal); } @Override public float[] getNormalOverviewScaleAndOffset() { return DisplayController.getNavigationMode(this).hasGestures Loading Loading
quickstep/src/com/android/launcher3/LauncherInitListener.java +0 −37 Original line number Diff line number Diff line Loading @@ -15,23 +15,16 @@ */ package com.android.launcher3; import android.animation.AnimatorSet; import android.annotation.TargetApi; import android.os.Build; import android.os.CancellationSignal; import android.view.RemoteAnimationTarget; import com.android.launcher3.uioverrides.QuickstepLauncher; import com.android.quickstep.util.ActivityInitListener; import com.android.quickstep.util.RemoteAnimationProvider; import java.util.function.BiPredicate; @TargetApi(Build.VERSION_CODES.P) public class LauncherInitListener extends ActivityInitListener<Launcher> { private RemoteAnimationProvider mRemoteAnimationProvider; /** * @param onInitListener a callback made when the activity is initialized. The callback should * return true to continue receiving callbacks (ie. for if the activity is Loading @@ -43,37 +36,7 @@ public class LauncherInitListener extends ActivityInitListener<Launcher> { @Override public boolean handleInit(Launcher launcher, boolean alreadyOnHome) { if (mRemoteAnimationProvider != null) { QuickstepTransitionManager appTransitionManager = ((QuickstepLauncher) launcher).getAppTransitionManager(); // Set a one-time animation provider. After the first call, this will get cleared. // TODO: Probably also check the intended target id. CancellationSignal cancellationSignal = new CancellationSignal(); appTransitionManager.setRemoteAnimationProvider(new RemoteAnimationProvider() { @Override public AnimatorSet createWindowAnimation(RemoteAnimationTarget[] appTargets, RemoteAnimationTarget[] wallpaperTargets) { // On the first call clear the reference. cancellationSignal.cancel(); RemoteAnimationProvider provider = mRemoteAnimationProvider; mRemoteAnimationProvider = null; if (provider != null && launcher.getStateManager().getState().overviewUi) { return provider.createWindowAnimation(appTargets, wallpaperTargets); } return null; } }, cancellationSignal); } launcher.deferOverlayCallbacksUntilNextResumeOrStop(); return super.handleInit(launcher, alreadyOnHome); } @Override public void unregister() { mRemoteAnimationProvider = null; super.unregister(); } }
quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +71 −95 Original line number Diff line number Diff line Loading @@ -82,7 +82,6 @@ import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.CancellationSignal; import android.os.Handler; import android.os.IBinder; import android.os.Looper; Loading Loading @@ -140,7 +139,6 @@ import com.android.quickstep.util.MultiValueUpdateListener; import com.android.quickstep.util.RectFSpringAnim; import com.android.quickstep.util.RectFSpringAnim.DefaultSpringConfig; import com.android.quickstep.util.RectFSpringAnim.TaskbarHotseatSpringConfig; import com.android.quickstep.util.RemoteAnimationProvider; import com.android.quickstep.util.StaggeredWorkspaceAnim; import com.android.quickstep.util.SurfaceTransaction; import com.android.quickstep.util.SurfaceTransaction.SurfaceProperties; Loading Loading @@ -229,7 +227,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener private DeviceProfile mDeviceProfile; private RemoteAnimationProvider mRemoteAnimationProvider; // Strong refs to runners which are cleared when the launcher activity is destroyed private RemoteAnimationFactory mWallpaperOpenRunner; private RemoteAnimationFactory mAppLaunchRunner; Loading Loading @@ -468,16 +465,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener return bounds; } public void setRemoteAnimationProvider(final RemoteAnimationProvider animationProvider, CancellationSignal cancellationSignal) { mRemoteAnimationProvider = animationProvider; cancellationSignal.setOnCancelListener(() -> { if (animationProvider == mRemoteAnimationProvider) { mRemoteAnimationProvider = null; } }); } /** Dump debug logs to bug report. */ public void dump(@NonNull String prefix, @NonNull PrintWriter printWriter) {} Loading Loading @@ -1234,7 +1221,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener * ie. pressing home, swiping up from nav bar. */ RemoteAnimationFactory createWallpaperOpenRunner(boolean fromUnlock) { return new WallpaperOpenLauncherAnimationRunner(mHandler, fromUnlock); return new WallpaperOpenLauncherAnimationRunner(fromUnlock); } /** Loading Loading @@ -1352,7 +1339,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener /** * Closing animator that animates the window into its final location on the workspace. */ private RectFSpringAnim getClosingWindowAnimators(AnimatorSet animation, protected RectFSpringAnim getClosingWindowAnimators(AnimatorSet animation, RemoteAnimationTarget[] targets, View launcherView, PointF velocityPxPerS, RectF closingWindowStartRect, float startWindowCornerRadius) { FloatingIconView floatingIconView = null; Loading Loading @@ -1592,17 +1579,9 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener RectF startRect, float startWindowCornerRadius, boolean fromPredictiveBack) { AnimatorSet anim = null; AnimatorSet anim = new AnimatorSet(); RectFSpringAnim rectFSpringAnim = null; RemoteAnimationProvider provider = mRemoteAnimationProvider; if (provider != null) { anim = provider.createWindowAnimation(appTargets, wallpaperTargets); } if (anim == null) { anim = new AnimatorSet(); final boolean launcherIsForceInvisibleOrOpening = mLauncher.isForceInvisible() || launcherIsATargetWithMode(appTargets, MODE_OPENING); Loading Loading @@ -1677,7 +1656,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener } } } } return new Pair(rectFSpringAnim, anim); } Loading @@ -1687,11 +1665,9 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener */ protected class WallpaperOpenLauncherAnimationRunner implements RemoteAnimationFactory { private final Handler mHandler; private final boolean mFromUnlock; public WallpaperOpenLauncherAnimationRunner(Handler handler, boolean fromUnlock) { mHandler = handler; public WallpaperOpenLauncherAnimationRunner(boolean fromUnlock) { mFromUnlock = fromUnlock; } Loading
quickstep/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java +1 −2 Original line number Diff line number Diff line Loading @@ -114,8 +114,7 @@ public class HotseatPredictionController implements DragController.DragListener, WorkspaceItemInfo dragItem = new WorkspaceItemInfo((WorkspaceItemInfo) v.getTag()); v.setVisibility(View.INVISIBLE); mLauncher.getWorkspace().beginDragShared( v, null, this, dragItem, new DragPreviewProvider(v), mLauncher.getDefaultWorkspaceDragOptions()); v, null, this, dragItem, new DragPreviewProvider(v), new DragOptions()); return true; }; Loading
quickstep/src/com/android/launcher3/uioverrides/ApiWrapper.java +12 −0 Original line number Diff line number Diff line Loading @@ -16,13 +16,16 @@ package com.android.launcher3.uioverrides; import android.app.ActivityOptions; import android.app.Person; import android.content.Context; import android.content.pm.LauncherActivityInfo; import android.content.pm.LauncherApps; import android.content.pm.ShortcutInfo; import android.window.RemoteTransition; import com.android.launcher3.Utilities; import com.android.quickstep.util.FadeOutRemoteTransition; import java.util.Map; Loading @@ -41,4 +44,13 @@ public class ApiWrapper { public static Map<String, LauncherActivityInfo> getActivityOverrides(Context context) { return context.getSystemService(LauncherApps.class).getActivityOverrides(); } /** * Creates an ActivityOptions to play fade-out animation on closing targets */ public static ActivityOptions createFadeOutAnimOptions(Context context) { ActivityOptions options = ActivityOptions.makeBasic(); options.setRemoteTransition(new RemoteTransition(new FadeOutRemoteTransition())); return options; } }
quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +0 −43 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.LauncherState.OVERVIEW_MODAL_TASK; import static com.android.launcher3.LauncherState.OVERVIEW_SPLIT_SELECT; import static com.android.launcher3.compat.AccessibilityManagerCompat.sendCustomAccessibilityEvent; import static com.android.launcher3.config.FeatureFlags.ENABLE_SPLIT_FROM_DESKTOP_TO_WORKSPACE; import static com.android.launcher3.config.FeatureFlags.ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE; import static com.android.launcher3.config.FeatureFlags.RECEIVE_UNFOLD_EVENTS_FROM_SYSUI; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_APP_LAUNCH_TAP; Loading @@ -59,7 +58,6 @@ import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SY import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.ValueAnimator; import android.app.ActivityManager; import android.app.ActivityOptions; import android.content.Context; Loading @@ -76,13 +74,11 @@ import android.hardware.display.DisplayManager; import android.media.permission.SafeCloseable; import android.os.Build; import android.os.Bundle; import android.os.CancellationSignal; import android.os.IBinder; import android.os.SystemProperties; import android.os.Trace; import android.view.Display; import android.view.HapticFeedbackConstants; import android.view.RemoteAnimationTarget; import android.view.View; import android.window.BackEvent; import android.window.OnBackAnimationCallback; Loading Loading @@ -110,7 +106,6 @@ import com.android.launcher3.anim.AnimatorPlaybackController; import com.android.launcher3.anim.PendingAnimation; import com.android.launcher3.appprediction.PredictionRowView; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.dragndrop.DragOptions; import com.android.launcher3.hybridhotseat.HotseatPredictionController; import com.android.launcher3.logging.InstanceId; import com.android.launcher3.logging.StatsLogManager; Loading Loading @@ -164,8 +159,6 @@ import com.android.quickstep.util.GroupTask; import com.android.quickstep.util.LauncherUnfoldAnimationController; import com.android.quickstep.util.ProxyScreenStatusProvider; import com.android.quickstep.util.QuickstepOnboardingPrefs; import com.android.quickstep.util.RemoteAnimationProvider; import com.android.quickstep.util.RemoteFadeOutAnimationListener; import com.android.quickstep.util.SplitSelectStateController; import com.android.quickstep.util.SplitToWorkspaceController; import com.android.quickstep.util.SplitWithKeyboardShortcutController; Loading Loading @@ -221,7 +214,6 @@ public class QuickstepLauncher extends Launcher { private TISBindHelper mTISBindHelper; private @Nullable LauncherTaskbarUIController mTaskbarUIController; // Will be updated when dragging from taskbar. private @Nullable DragOptions mNextWorkspaceDragOptions = null; private @Nullable UnfoldTransitionProgressProvider mUnfoldTransitionProgressProvider; private @Nullable LauncherUnfoldAnimationController mLauncherUnfoldAnimationController; Loading Loading @@ -1048,41 +1040,6 @@ public class QuickstepLauncher extends Launcher { return mAppTransitionManager.hasControlRemoteAppTransitionPermission(); } @Override public DragOptions getDefaultWorkspaceDragOptions() { if (mNextWorkspaceDragOptions != null) { DragOptions options = mNextWorkspaceDragOptions; mNextWorkspaceDragOptions = null; return options; } return super.getDefaultWorkspaceDragOptions(); } public void setNextWorkspaceDragOptions(DragOptions dragOptions) { mNextWorkspaceDragOptions = dragOptions; } @Override public void useFadeOutAnimationForLauncherStart(CancellationSignal signal) { QuickstepTransitionManager appTransitionManager = getAppTransitionManager(); appTransitionManager.setRemoteAnimationProvider(new RemoteAnimationProvider() { @Override public AnimatorSet createWindowAnimation(RemoteAnimationTarget[] appTargets, RemoteAnimationTarget[] wallpaperTargets) { // On the first call clear the reference. signal.cancel(); ValueAnimator fadeAnimation = ValueAnimator.ofFloat(1, 0); fadeAnimation.addUpdateListener(new RemoteFadeOutAnimationListener(appTargets, wallpaperTargets)); AnimatorSet anim = new AnimatorSet(); anim.play(fadeAnimation); return anim; } }, signal); } @Override public float[] getNormalOverviewScaleAndOffset() { return DisplayController.getNavigationMode(this).hasGestures Loading