diff options
-rw-r--r-- | quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java | 8 | ||||
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 13 |
2 files changed, 16 insertions, 5 deletions
diff --git a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java index d09daedb8..5fd483ff1 100644 --- a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java +++ b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java @@ -33,6 +33,7 @@ import android.animation.RectEvaluator; import android.annotation.TargetApi; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; +import android.content.pm.ActivityInfo; import android.content.res.Resources; import android.graphics.Matrix; import android.graphics.Point; @@ -280,6 +281,10 @@ public class WindowTransformSwipeHandler extends BaseSwipeInteractionHandler { mWasLauncherAlreadyVisible = alreadyOnHome; mLauncher = launcher; + // For the duration of the gesture, set the screen orientation to BEHIND to ensure that we + // do not rotate mid-quickscrub + mLauncher.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_BEHIND); + LauncherState startState = mLauncher.getStateManager().getState(); if (startState.disableRestore) { startState = mLauncher.getStateManager().getRestState(); @@ -616,6 +621,9 @@ public class WindowTransformSwipeHandler extends BaseSwipeInteractionHandler { mLauncherTransitionController = null; mLauncherLayoutListener.setHandler(null); mLauncherLayoutListener.close(false); + + // Restore the requested orientation to the user preference after the gesture has ended + mLauncher.updateRequestedOrientation(); } public void layoutListenerClosed() { diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 7905ed0cf..0ed5de165 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -371,11 +371,7 @@ public class Launcher extends BaseActivity // For handling default keys setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); - // On large interfaces, or on devices that a user has specifically enabled screen rotation, - // we want the screen to auto-rotate based on the current orientation - setRequestedOrientation(mRotationEnabled - ? SCREEN_ORIENTATION_UNSPECIFIED : SCREEN_ORIENTATION_NOSENSOR); - + updateRequestedOrientation(); setContentView(mLauncherView); getRootView().dispatchInsets(); @@ -398,6 +394,13 @@ public class Launcher extends BaseActivity TraceHelper.endSection("Launcher-onCreate"); } + public void updateRequestedOrientation() { + // On large interfaces, or on devices that a user has specifically enabled screen rotation, + // we want the screen to auto-rotate based on the current orientation + setRequestedOrientation(mRotationEnabled + ? SCREEN_ORIENTATION_UNSPECIFIED : SCREEN_ORIENTATION_NOSENSOR); + } + @Override public void onConfigurationChanged(Configuration newConfig) { int diff = newConfig.diff(mOldConfig); |