Loading quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +4 −1 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ import com.android.launcher3.views.ActivityContext; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.rotation.RotationButtonController; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.unfold.updates.RotationChangeProvider; import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider; import java.io.PrintWriter; Loading Loading @@ -198,7 +199,9 @@ public class TaskbarActivityContext extends BaseTaskbarContext { new TaskbarViewController(this, taskbarView), new TaskbarScrimViewController(this, taskbarScrimView), new TaskbarUnfoldAnimationController(this, unfoldTransitionProgressProvider, mWindowManager, WindowManagerGlobal.getWindowManagerService()), mWindowManager, new RotationChangeProvider(WindowManagerGlobal.getWindowManagerService(), this, getMainExecutor())), new TaskbarKeyguardController(this), new StashedHandleViewController(this, stashedHandleView), new TaskbarStashController(this), Loading quickstep/src/com/android/launcher3/taskbar/TaskbarUnfoldAnimationController.java +7 −3 Original line number Diff line number Diff line Loading @@ -15,13 +15,13 @@ */ package com.android.launcher3.taskbar; import android.view.IWindowManager; import android.view.View; import android.view.WindowManager; import com.android.quickstep.util.LauncherViewsMoveFromCenterTranslationApplier; import com.android.systemui.shared.animation.UnfoldMoveFromCenterAnimator; import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener; import com.android.systemui.unfold.updates.RotationChangeProvider; import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider; import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider; Loading @@ -41,16 +41,20 @@ public class TaskbarUnfoldAnimationController implements public TaskbarUnfoldAnimationController(BaseTaskbarContext context, ScopedUnfoldTransitionProgressProvider source, WindowManager windowManager, IWindowManager iWindowManager) { WindowManager windowManager, RotationChangeProvider rotationChangeProvider) { mScopedUnfoldTransitionProgressProvider = source; mNaturalUnfoldTransitionProgressProvider = new NaturalRotationUnfoldProgressProvider(context, iWindowManager, source); new NaturalRotationUnfoldProgressProvider(context, rotationChangeProvider, source); mMoveFromCenterAnimator = new UnfoldMoveFromCenterAnimator(windowManager, new LauncherViewsMoveFromCenterTranslationApplier()); } /** * Initializes the controller * * @param taskbarControllers references to all other taskbar controllers */ public void init(TaskbarControllers taskbarControllers) { Loading quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +17 −5 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ import android.os.SystemProperties; import android.view.Display; import android.view.HapticFeedbackConstants; import android.view.View; import android.view.WindowManagerGlobal; import android.window.SplashScreen; import androidx.annotation.Nullable; Loading Loading @@ -139,12 +140,14 @@ import com.android.quickstep.views.RecentsView; import com.android.quickstep.views.TaskView; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.RemoteAnimationTargetCompat; import com.android.systemui.unfold.UnfoldSharedComponent; import com.android.systemui.unfold.UnfoldTransitionFactory; import com.android.systemui.unfold.UnfoldTransitionProgressProvider; import com.android.systemui.unfold.config.ResourceUnfoldTransitionConfig; import com.android.systemui.unfold.config.UnfoldTransitionConfig; import com.android.systemui.unfold.system.ActivityManagerActivityTypeProvider; import com.android.systemui.unfold.system.DeviceStateManagerFoldProvider; import com.android.systemui.unfold.updates.RotationChangeProvider; import java.io.FileDescriptor; import java.io.PrintWriter; Loading Loading @@ -173,6 +176,7 @@ public class QuickstepLauncher extends Launcher { // Will be updated when dragging from taskbar. private @Nullable DragOptions mNextWorkspaceDragOptions = null; private @Nullable UnfoldTransitionProgressProvider mUnfoldTransitionProgressProvider; private @Nullable RotationChangeProvider mRotationChangeProvider; private @Nullable LauncherUnfoldAnimationController mLauncherUnfoldAnimationController; /** * If Launcher restarted while in the middle of an Overview split select, it needs this data to Loading Loading @@ -664,8 +668,8 @@ public class QuickstepLauncher extends Launcher { private void initUnfoldTransitionProgressProvider() { final UnfoldTransitionConfig config = new ResourceUnfoldTransitionConfig(); if (config.isEnabled()) { mUnfoldTransitionProgressProvider = UnfoldTransitionFactory.createUnfoldTransitionProgressProvider( UnfoldSharedComponent unfoldComponent = UnfoldTransitionFactory.createUnfoldSharedComponent( /* context= */ this, config, ProxyScreenStatusProvider.INSTANCE, Loading @@ -677,13 +681,21 @@ public class QuickstepLauncher extends Launcher { getMainThreadHandler(), getMainExecutor(), /* backgroundExecutor= */ THREAD_POOL_EXECUTOR, /* tracingTagPrefix= */ "launcher" /* tracingTagPrefix= */ "launcher", WindowManagerGlobal.getWindowManagerService() ); mUnfoldTransitionProgressProvider = unfoldComponent.getUnfoldTransitionProvider() .orElseThrow(() -> new IllegalStateException( "Trying to create UnfoldTransitionProgressProvider when the " + "transition is disabled")); mRotationChangeProvider = unfoldComponent.getRotationChangeProvider(); mLauncherUnfoldAnimationController = new LauncherUnfoldAnimationController( this, /* launcher= */ this, getWindowManager(), mUnfoldTransitionProgressProvider mUnfoldTransitionProgressProvider, mRotationChangeProvider ); } } Loading quickstep/src/com/android/quickstep/util/BaseUnfoldMoveFromCenterAnimator.java +20 −1 Original line number Diff line number Diff line Loading @@ -16,12 +16,14 @@ package com.android.quickstep.util; import android.annotation.CallSuper; import android.view.Surface.Rotation; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import com.android.systemui.shared.animation.UnfoldMoveFromCenterAnimator; import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener; import com.android.systemui.unfold.updates.RotationChangeProvider; import java.util.HashMap; import java.util.Map; Loading @@ -32,15 +34,20 @@ import java.util.Map; public abstract class BaseUnfoldMoveFromCenterAnimator implements TransitionProgressListener { private final UnfoldMoveFromCenterAnimator mMoveFromCenterAnimation; private final RotationChangeProvider mRotationChangeProvider; private final Map<ViewGroup, Boolean> mOriginalClipToPadding = new HashMap<>(); private final Map<ViewGroup, Boolean> mOriginalClipChildren = new HashMap<>(); private final UnfoldMoveFromCenterRotationListener mRotationListener = new UnfoldMoveFromCenterRotationListener(); private boolean mAnimationInProgress = false; public BaseUnfoldMoveFromCenterAnimator(WindowManager windowManager) { public BaseUnfoldMoveFromCenterAnimator(WindowManager windowManager, RotationChangeProvider rotationChangeProvider) { mMoveFromCenterAnimation = new UnfoldMoveFromCenterAnimator(windowManager, new LauncherViewsMoveFromCenterTranslationApplier()); mRotationChangeProvider = rotationChangeProvider; } @CallSuper Loading @@ -50,6 +57,7 @@ public abstract class BaseUnfoldMoveFromCenterAnimator implements TransitionProg mMoveFromCenterAnimation.updateDisplayProperties(); onPrepareViewsForAnimation(); onTransitionProgress(0f); mRotationChangeProvider.addCallback(mRotationListener); } @CallSuper Loading @@ -62,6 +70,7 @@ public abstract class BaseUnfoldMoveFromCenterAnimator implements TransitionProg @Override public void onTransitionFinished() { mAnimationInProgress = false; mRotationChangeProvider.removeCallback(mRotationListener); mMoveFromCenterAnimation.onTransitionFinished(); clearRegisteredViews(); } Loading Loading @@ -109,4 +118,14 @@ public abstract class BaseUnfoldMoveFromCenterAnimator implements TransitionProg view.setClipChildren(originalClipChildren); } } private class UnfoldMoveFromCenterRotationListener implements RotationChangeProvider.RotationListener { @Override public void onRotationChanged(@Rotation int newRotation) { mMoveFromCenterAnimation.updateDisplayProperties(newRotation); updateRegisteredViewsIfNeeded(); } } } quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java +6 −5 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.annotation.Nullable; import android.util.FloatProperty; import android.util.MathUtils; import android.view.WindowManager; import android.view.WindowManagerGlobal; import androidx.core.view.OneShotPreDrawListener; Loading @@ -34,6 +33,7 @@ import com.android.launcher3.Workspace; import com.android.launcher3.util.HorizontalInsettableView; import com.android.systemui.unfold.UnfoldTransitionProgressProvider; import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener; import com.android.systemui.unfold.updates.RotationChangeProvider; import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider; import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider; Loading Loading @@ -62,16 +62,17 @@ public class LauncherUnfoldAnimationController { public LauncherUnfoldAnimationController( Launcher launcher, WindowManager windowManager, UnfoldTransitionProgressProvider unfoldTransitionProgressProvider) { UnfoldTransitionProgressProvider unfoldTransitionProgressProvider, RotationChangeProvider rotationChangeProvider) { mLauncher = launcher; mProgressProvider = new ScopedUnfoldTransitionProgressProvider( unfoldTransitionProgressProvider); mUnfoldMoveFromCenterHotseatAnimator = new UnfoldMoveFromCenterHotseatAnimator(launcher, windowManager); windowManager, rotationChangeProvider); mUnfoldMoveFromCenterWorkspaceAnimator = new UnfoldMoveFromCenterWorkspaceAnimator(launcher, windowManager); windowManager, rotationChangeProvider); mNaturalOrientationProgressProvider = new NaturalRotationUnfoldProgressProvider(launcher, WindowManagerGlobal.getWindowManagerService(), mProgressProvider); rotationChangeProvider, mProgressProvider); mNaturalOrientationProgressProvider.init(); // Animated in all orientations Loading Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +4 −1 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ import com.android.launcher3.views.ActivityContext; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.rotation.RotationButtonController; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.unfold.updates.RotationChangeProvider; import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider; import java.io.PrintWriter; Loading Loading @@ -198,7 +199,9 @@ public class TaskbarActivityContext extends BaseTaskbarContext { new TaskbarViewController(this, taskbarView), new TaskbarScrimViewController(this, taskbarScrimView), new TaskbarUnfoldAnimationController(this, unfoldTransitionProgressProvider, mWindowManager, WindowManagerGlobal.getWindowManagerService()), mWindowManager, new RotationChangeProvider(WindowManagerGlobal.getWindowManagerService(), this, getMainExecutor())), new TaskbarKeyguardController(this), new StashedHandleViewController(this, stashedHandleView), new TaskbarStashController(this), Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarUnfoldAnimationController.java +7 −3 Original line number Diff line number Diff line Loading @@ -15,13 +15,13 @@ */ package com.android.launcher3.taskbar; import android.view.IWindowManager; import android.view.View; import android.view.WindowManager; import com.android.quickstep.util.LauncherViewsMoveFromCenterTranslationApplier; import com.android.systemui.shared.animation.UnfoldMoveFromCenterAnimator; import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener; import com.android.systemui.unfold.updates.RotationChangeProvider; import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider; import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider; Loading @@ -41,16 +41,20 @@ public class TaskbarUnfoldAnimationController implements public TaskbarUnfoldAnimationController(BaseTaskbarContext context, ScopedUnfoldTransitionProgressProvider source, WindowManager windowManager, IWindowManager iWindowManager) { WindowManager windowManager, RotationChangeProvider rotationChangeProvider) { mScopedUnfoldTransitionProgressProvider = source; mNaturalUnfoldTransitionProgressProvider = new NaturalRotationUnfoldProgressProvider(context, iWindowManager, source); new NaturalRotationUnfoldProgressProvider(context, rotationChangeProvider, source); mMoveFromCenterAnimator = new UnfoldMoveFromCenterAnimator(windowManager, new LauncherViewsMoveFromCenterTranslationApplier()); } /** * Initializes the controller * * @param taskbarControllers references to all other taskbar controllers */ public void init(TaskbarControllers taskbarControllers) { Loading
quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +17 −5 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ import android.os.SystemProperties; import android.view.Display; import android.view.HapticFeedbackConstants; import android.view.View; import android.view.WindowManagerGlobal; import android.window.SplashScreen; import androidx.annotation.Nullable; Loading Loading @@ -139,12 +140,14 @@ import com.android.quickstep.views.RecentsView; import com.android.quickstep.views.TaskView; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.RemoteAnimationTargetCompat; import com.android.systemui.unfold.UnfoldSharedComponent; import com.android.systemui.unfold.UnfoldTransitionFactory; import com.android.systemui.unfold.UnfoldTransitionProgressProvider; import com.android.systemui.unfold.config.ResourceUnfoldTransitionConfig; import com.android.systemui.unfold.config.UnfoldTransitionConfig; import com.android.systemui.unfold.system.ActivityManagerActivityTypeProvider; import com.android.systemui.unfold.system.DeviceStateManagerFoldProvider; import com.android.systemui.unfold.updates.RotationChangeProvider; import java.io.FileDescriptor; import java.io.PrintWriter; Loading Loading @@ -173,6 +176,7 @@ public class QuickstepLauncher extends Launcher { // Will be updated when dragging from taskbar. private @Nullable DragOptions mNextWorkspaceDragOptions = null; private @Nullable UnfoldTransitionProgressProvider mUnfoldTransitionProgressProvider; private @Nullable RotationChangeProvider mRotationChangeProvider; private @Nullable LauncherUnfoldAnimationController mLauncherUnfoldAnimationController; /** * If Launcher restarted while in the middle of an Overview split select, it needs this data to Loading Loading @@ -664,8 +668,8 @@ public class QuickstepLauncher extends Launcher { private void initUnfoldTransitionProgressProvider() { final UnfoldTransitionConfig config = new ResourceUnfoldTransitionConfig(); if (config.isEnabled()) { mUnfoldTransitionProgressProvider = UnfoldTransitionFactory.createUnfoldTransitionProgressProvider( UnfoldSharedComponent unfoldComponent = UnfoldTransitionFactory.createUnfoldSharedComponent( /* context= */ this, config, ProxyScreenStatusProvider.INSTANCE, Loading @@ -677,13 +681,21 @@ public class QuickstepLauncher extends Launcher { getMainThreadHandler(), getMainExecutor(), /* backgroundExecutor= */ THREAD_POOL_EXECUTOR, /* tracingTagPrefix= */ "launcher" /* tracingTagPrefix= */ "launcher", WindowManagerGlobal.getWindowManagerService() ); mUnfoldTransitionProgressProvider = unfoldComponent.getUnfoldTransitionProvider() .orElseThrow(() -> new IllegalStateException( "Trying to create UnfoldTransitionProgressProvider when the " + "transition is disabled")); mRotationChangeProvider = unfoldComponent.getRotationChangeProvider(); mLauncherUnfoldAnimationController = new LauncherUnfoldAnimationController( this, /* launcher= */ this, getWindowManager(), mUnfoldTransitionProgressProvider mUnfoldTransitionProgressProvider, mRotationChangeProvider ); } } Loading
quickstep/src/com/android/quickstep/util/BaseUnfoldMoveFromCenterAnimator.java +20 −1 Original line number Diff line number Diff line Loading @@ -16,12 +16,14 @@ package com.android.quickstep.util; import android.annotation.CallSuper; import android.view.Surface.Rotation; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import com.android.systemui.shared.animation.UnfoldMoveFromCenterAnimator; import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener; import com.android.systemui.unfold.updates.RotationChangeProvider; import java.util.HashMap; import java.util.Map; Loading @@ -32,15 +34,20 @@ import java.util.Map; public abstract class BaseUnfoldMoveFromCenterAnimator implements TransitionProgressListener { private final UnfoldMoveFromCenterAnimator mMoveFromCenterAnimation; private final RotationChangeProvider mRotationChangeProvider; private final Map<ViewGroup, Boolean> mOriginalClipToPadding = new HashMap<>(); private final Map<ViewGroup, Boolean> mOriginalClipChildren = new HashMap<>(); private final UnfoldMoveFromCenterRotationListener mRotationListener = new UnfoldMoveFromCenterRotationListener(); private boolean mAnimationInProgress = false; public BaseUnfoldMoveFromCenterAnimator(WindowManager windowManager) { public BaseUnfoldMoveFromCenterAnimator(WindowManager windowManager, RotationChangeProvider rotationChangeProvider) { mMoveFromCenterAnimation = new UnfoldMoveFromCenterAnimator(windowManager, new LauncherViewsMoveFromCenterTranslationApplier()); mRotationChangeProvider = rotationChangeProvider; } @CallSuper Loading @@ -50,6 +57,7 @@ public abstract class BaseUnfoldMoveFromCenterAnimator implements TransitionProg mMoveFromCenterAnimation.updateDisplayProperties(); onPrepareViewsForAnimation(); onTransitionProgress(0f); mRotationChangeProvider.addCallback(mRotationListener); } @CallSuper Loading @@ -62,6 +70,7 @@ public abstract class BaseUnfoldMoveFromCenterAnimator implements TransitionProg @Override public void onTransitionFinished() { mAnimationInProgress = false; mRotationChangeProvider.removeCallback(mRotationListener); mMoveFromCenterAnimation.onTransitionFinished(); clearRegisteredViews(); } Loading Loading @@ -109,4 +118,14 @@ public abstract class BaseUnfoldMoveFromCenterAnimator implements TransitionProg view.setClipChildren(originalClipChildren); } } private class UnfoldMoveFromCenterRotationListener implements RotationChangeProvider.RotationListener { @Override public void onRotationChanged(@Rotation int newRotation) { mMoveFromCenterAnimation.updateDisplayProperties(newRotation); updateRegisteredViewsIfNeeded(); } } }
quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java +6 −5 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.annotation.Nullable; import android.util.FloatProperty; import android.util.MathUtils; import android.view.WindowManager; import android.view.WindowManagerGlobal; import androidx.core.view.OneShotPreDrawListener; Loading @@ -34,6 +33,7 @@ import com.android.launcher3.Workspace; import com.android.launcher3.util.HorizontalInsettableView; import com.android.systemui.unfold.UnfoldTransitionProgressProvider; import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener; import com.android.systemui.unfold.updates.RotationChangeProvider; import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider; import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider; Loading Loading @@ -62,16 +62,17 @@ public class LauncherUnfoldAnimationController { public LauncherUnfoldAnimationController( Launcher launcher, WindowManager windowManager, UnfoldTransitionProgressProvider unfoldTransitionProgressProvider) { UnfoldTransitionProgressProvider unfoldTransitionProgressProvider, RotationChangeProvider rotationChangeProvider) { mLauncher = launcher; mProgressProvider = new ScopedUnfoldTransitionProgressProvider( unfoldTransitionProgressProvider); mUnfoldMoveFromCenterHotseatAnimator = new UnfoldMoveFromCenterHotseatAnimator(launcher, windowManager); windowManager, rotationChangeProvider); mUnfoldMoveFromCenterWorkspaceAnimator = new UnfoldMoveFromCenterWorkspaceAnimator(launcher, windowManager); windowManager, rotationChangeProvider); mNaturalOrientationProgressProvider = new NaturalRotationUnfoldProgressProvider(launcher, WindowManagerGlobal.getWindowManagerService(), mProgressProvider); rotationChangeProvider, mProgressProvider); mNaturalOrientationProgressProvider.init(); // Animated in all orientations Loading