From 58dfd4d2095c1c5ce44f7f7cce3a355823259c41 Mon Sep 17 00:00:00 2001 From: Vinit Nayak Date: Fri, 9 Apr 2021 16:54:56 -0700 Subject: [PATCH] Handle transitining out of overview more gracefully for 3P launchers Bug: 183897242 Test: Tested with Pixel Custom Launcher, as suggested on the bug Change-Id: I46ceddb9f5eed6b16b7e66406dd68d94e7a30aee --- .../quickstep/FallbackActivityInterface.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/quickstep/src/com/android/quickstep/FallbackActivityInterface.java b/quickstep/src/com/android/quickstep/FallbackActivityInterface.java index e13d1a4511..8168e88e57 100644 --- a/quickstep/src/com/android/quickstep/FallbackActivityInterface.java +++ b/quickstep/src/com/android/quickstep/FallbackActivityInterface.java @@ -27,6 +27,7 @@ import android.view.MotionEvent; import androidx.annotation.Nullable; import com.android.launcher3.DeviceProfile; +import com.android.launcher3.statemanager.StateManager; import com.android.launcher3.touch.PagedOrientationHandler; import com.android.quickstep.fallback.RecentsState; import com.android.quickstep.util.ActivityInitListener; @@ -139,7 +140,25 @@ public final class FallbackActivityInterface extends @Override public void onExitOverview(RotationTouchHelper deviceState, Runnable exitRunnable) { - // no-op, fake landscape not supported for 3P + final StateManager stateManager = getCreatedActivity().getStateManager(); + if (stateManager.getState() == HOME) { + exitRunnable.run(); + notifyRecentsOfOrientation(deviceState); + return; + } + + stateManager.addStateListener( + new StateManager.StateListener() { + @Override + public void onStateTransitionComplete(RecentsState toState) { + // Are we going from Recents to Workspace? + if (toState == HOME) { + exitRunnable.run(); + notifyRecentsOfOrientation(deviceState); + stateManager.removeStateListener(this); + } + } + }); } @Override