From 2c8539c8f022d549fd7384adc4c2ee01d9683ec0 Mon Sep 17 00:00:00 2001 From: Goooler Date: Mon, 27 Nov 2023 10:42:32 +0800 Subject: [PATCH] Catch RemoteAnimationTarget.rotationChange (#3776) --- .../android/launcher3/QuickstepTransitionManager.java | 7 +++++-- .../src/com/android/quickstep/AbsSwipeUpHandler.java | 10 +++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index 16ff7331b8..f5339e9775 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -1273,8 +1273,11 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener private static int getRotationChange(RemoteAnimationTarget[] appTargets) { int rotationChange = 0; for (RemoteAnimationTarget target : appTargets) { - if (Math.abs(target.rotationChange) > Math.abs(rotationChange)) { - rotationChange = target.rotationChange; + try { + if (Math.abs(target.rotationChange) > Math.abs(rotationChange)) { + rotationChange = target.rotationChange; + } + } catch (NoSuchFieldError ignored) { } } return rotationChange; diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index 9f56760be4..8f7652a5f8 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -1576,12 +1576,16 @@ public abstract class AbsSwipeUpHandler, Q extends private int calculateWindowRotation(RemoteAnimationTarget runningTaskTarget, RecentsOrientedState orientationState) { - if (runningTaskTarget.rotationChange != 0 + try { + if (runningTaskTarget.rotationChange != 0 && TaskAnimationManager.ENABLE_SHELL_TRANSITIONS) { - return Math.abs(runningTaskTarget.rotationChange) == ROTATION_90 + return Math.abs(runningTaskTarget.rotationChange) == ROTATION_90 ? ROTATION_270 : ROTATION_90; - } else { + } else { + return orientationState.getDisplayRotation(); + } + } catch (NoSuchFieldError ignored) { return orientationState.getDisplayRotation(); } }