diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index e77922a49b..1571ac0ea5 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -37,6 +37,7 @@ import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCH import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_DRAGGING; import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_FULLSCREEN; import static com.android.launcher3.testing.shared.ResourceUtils.getBoolByName; +import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.quickstep.util.AnimUtils.completeRunnableListCallback; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_VOICE_INTERACTION_WINDOW_SHOWING; @@ -289,7 +290,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { new TaskbarUnfoldAnimationController(this, unfoldTransitionProgressProvider, mWindowManager, new RotationChangeProvider(c.getSystemService(DisplayManager.class), this, - getMainThreadHandler())), + UI_HELPER_EXECUTOR.getHandler(), getMainThreadHandler())), new TaskbarKeyguardController(this), new StashedHandleViewController(this, stashedHandleView), new TaskbarStashController(this), diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java index 69b0a7147f..e379b2a617 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java @@ -194,6 +194,7 @@ 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.dagger.UnfoldMain; import com.android.systemui.unfold.progress.RemoteUnfoldTransitionReceiver; import com.android.systemui.unfold.updates.RotationChangeProvider; @@ -1047,6 +1048,7 @@ public class QuickstepLauncher extends Launcher implements RecentsViewContainer getMainExecutor(), getMainThreadHandler(), /* backgroundExecutor= */ UI_HELPER_EXECUTOR, + /* bgHandler= */ UI_HELPER_EXECUTOR.getHandler(), /* tracingTagPrefix= */ "launcher", getSystemService(DisplayManager.class) ); @@ -1066,7 +1068,7 @@ public class QuickstepLauncher extends Launcher implements RecentsViewContainer } private void initUnfoldAnimationController(UnfoldTransitionProgressProvider progressProvider, - RotationChangeProvider rotationChangeProvider) { + @UnfoldMain RotationChangeProvider rotationChangeProvider) { mLauncherUnfoldAnimationController = new LauncherUnfoldAnimationController( /* launcher= */ this, getWindowManager(), diff --git a/quickstep/src/com/android/quickstep/util/BaseUnfoldMoveFromCenterAnimator.java b/quickstep/src/com/android/quickstep/util/BaseUnfoldMoveFromCenterAnimator.java index 328a7270eb..f1e2dd7108 100644 --- a/quickstep/src/com/android/quickstep/util/BaseUnfoldMoveFromCenterAnimator.java +++ b/quickstep/src/com/android/quickstep/util/BaseUnfoldMoveFromCenterAnimator.java @@ -21,8 +21,11 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; +import androidx.annotation.MainThread; + import com.android.systemui.shared.animation.UnfoldMoveFromCenterAnimator; import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener; +import com.android.systemui.unfold.dagger.UnfoldMain; import com.android.systemui.unfold.updates.RotationChangeProvider; import java.util.HashMap; @@ -34,7 +37,7 @@ import java.util.Map; public abstract class BaseUnfoldMoveFromCenterAnimator implements TransitionProgressListener { private final UnfoldMoveFromCenterAnimator mMoveFromCenterAnimation; - private final RotationChangeProvider mRotationChangeProvider; + @UnfoldMain private final RotationChangeProvider mRotationChangeProvider; private final Map mOriginalClipToPadding = new HashMap<>(); private final Map mOriginalClipChildren = new HashMap<>(); @@ -48,7 +51,7 @@ public abstract class BaseUnfoldMoveFromCenterAnimator implements TransitionProg private Float mLastTransitionProgress = null; public BaseUnfoldMoveFromCenterAnimator(WindowManager windowManager, - RotationChangeProvider rotationChangeProvider) { + @UnfoldMain RotationChangeProvider rotationChangeProvider) { mMoveFromCenterAnimation = new UnfoldMoveFromCenterAnimator(windowManager, new LauncherViewsMoveFromCenterTranslationApplier()); mRotationChangeProvider = rotationChangeProvider; @@ -143,8 +146,14 @@ public abstract class BaseUnfoldMoveFromCenterAnimator implements TransitionProg private class UnfoldMoveFromCenterRotationListener implements RotationChangeProvider.RotationListener { + @MainThread @Override public void onRotationChanged(@Rotation int newRotation) { + onRotationChangedInternal(newRotation); + } + + @MainThread + private void onRotationChangedInternal(@Rotation int newRotation) { mMoveFromCenterAnimation.updateDisplayProperties(newRotation); updateRegisteredViewsIfNeeded(); } diff --git a/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java b/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java index 4474f3355c..26668c8da3 100644 --- a/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java +++ b/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java @@ -39,6 +39,7 @@ import com.android.quickstep.util.unfold.LauncherJankMonitorTransitionProgressLi import com.android.quickstep.util.unfold.PreemptiveUnfoldTransitionProgressProvider; import com.android.systemui.unfold.UnfoldTransitionProgressProvider; import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener; +import com.android.systemui.unfold.dagger.UnfoldMain; import com.android.systemui.unfold.updates.RotationChangeProvider; import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider; import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider; @@ -76,7 +77,7 @@ public class LauncherUnfoldAnimationController implements OnDeviceProfileChangeL QuickstepLauncher launcher, WindowManager windowManager, UnfoldTransitionProgressProvider unfoldTransitionProgressProvider, - RotationChangeProvider rotationChangeProvider) { + @UnfoldMain RotationChangeProvider rotationChangeProvider) { mLauncher = launcher; if (FeatureFlags.PREEMPTIVE_UNFOLD_ANIMATION_START.get()) { diff --git a/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterHotseatAnimator.java b/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterHotseatAnimator.java index 4aea1b8282..a740e0bfe0 100644 --- a/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterHotseatAnimator.java +++ b/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterHotseatAnimator.java @@ -21,6 +21,7 @@ import android.view.WindowManager; import com.android.launcher3.Hotseat; import com.android.launcher3.uioverrides.QuickstepLauncher; +import com.android.systemui.unfold.dagger.UnfoldMain; import com.android.systemui.unfold.updates.RotationChangeProvider; /** @@ -30,8 +31,9 @@ public class UnfoldMoveFromCenterHotseatAnimator extends BaseUnfoldMoveFromCente private final QuickstepLauncher mLauncher; - public UnfoldMoveFromCenterHotseatAnimator(QuickstepLauncher launcher, - WindowManager windowManager, RotationChangeProvider rotationChangeProvider) { + public UnfoldMoveFromCenterHotseatAnimator( + QuickstepLauncher launcher, WindowManager windowManager, + @UnfoldMain RotationChangeProvider rotationChangeProvider) { super(windowManager, rotationChangeProvider); mLauncher = launcher; } diff --git a/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterWorkspaceAnimator.java b/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterWorkspaceAnimator.java index 0ec3ae05d7..6e330bb78b 100644 --- a/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterWorkspaceAnimator.java +++ b/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterWorkspaceAnimator.java @@ -22,6 +22,7 @@ import com.android.launcher3.CellLayout; import com.android.launcher3.ShortcutAndWidgetContainer; import com.android.launcher3.Workspace; import com.android.launcher3.uioverrides.QuickstepLauncher; +import com.android.systemui.unfold.dagger.UnfoldMain; import com.android.systemui.unfold.updates.RotationChangeProvider; /** @@ -31,8 +32,9 @@ public class UnfoldMoveFromCenterWorkspaceAnimator extends BaseUnfoldMoveFromCen private final QuickstepLauncher mLauncher; - public UnfoldMoveFromCenterWorkspaceAnimator(QuickstepLauncher launcher, - WindowManager windowManager, RotationChangeProvider rotationChangeProvider) { + public UnfoldMoveFromCenterWorkspaceAnimator( + QuickstepLauncher launcher, WindowManager windowManager, + @UnfoldMain RotationChangeProvider rotationChangeProvider) { super(windowManager, rotationChangeProvider); mLauncher = launcher; }