From 4b919f813f4e5e0323a4c1747392551fce4a8758 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Tue, 1 May 2012 10:44:08 -0700 Subject: [PATCH] Fixing regression where the proper rotation check was not being done. (Bug 6422040) Change-Id: Iadc9a886b84c4418750dc365298944f76c564587 --- .../launcher2/AppsCustomizePagedView.java | 2 +- src/com/android/launcher2/Launcher.java | 38 +++++++++++-------- src/com/android/launcher2/Workspace.java | 2 +- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java index 3936e599cd..305094485a 100644 --- a/src/com/android/launcher2/AppsCustomizePagedView.java +++ b/src/com/android/launcher2/AppsCustomizePagedView.java @@ -758,7 +758,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // drop in Workspace mLauncher.exitSpringLoadedDragMode(); } - mLauncher.unlockScreenOrientation(); + mLauncher.unlockScreenOrientation(false); } @Override diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index 028a4515a8..876aa3b1fa 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -381,15 +381,8 @@ public final class Launcher extends Activity } mSearchDropTargetBar.onSearchPackagesChanged(searchVisible, voiceVisible); - final String forceEnableRotation = - SystemProperties.get(FORCE_ENABLE_ROTATION_PROPERTY, "false"); - - boolean enableRotation = getResources().getBoolean(R.bool.allow_rotation); - // On large interfaces, we want the screen to auto-rotate based on the current orientation - if (enableRotation || "true".equalsIgnoreCase(forceEnableRotation)) { - setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); - } + unlockScreenOrientation(true); } private void checkForLocaleChange() { @@ -3333,16 +3326,31 @@ public final class Launcher extends Activity return oriMap[(d.getRotation() + indexOffset) % 4]; } - public void lockScreenOrientation() { - setRequestedOrientation(mapConfigurationOriActivityInfoOri(getResources() - .getConfiguration().orientation)); + public boolean isRotationEnabled() { + boolean forceEnableRotation = "true".equalsIgnoreCase(SystemProperties.get( + FORCE_ENABLE_ROTATION_PROPERTY, "false")); + boolean enableRotation = forceEnableRotation || + getResources().getBoolean(R.bool.allow_rotation); + return enableRotation; } - public void unlockScreenOrientation() { - mHandler.postDelayed(new Runnable() { - public void run() { + public void lockScreenOrientation() { + if (isRotationEnabled()) { + setRequestedOrientation(mapConfigurationOriActivityInfoOri(getResources() + .getConfiguration().orientation)); + } + } + public void unlockScreenOrientation(boolean immediate) { + if (isRotationEnabled()) { + if (immediate) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); + } else { + mHandler.postDelayed(new Runnable() { + public void run() { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); + } + }, mRestoreScreenOrientationDelay); } - }, mRestoreScreenOrientationDelay); + } } /* Cling related */ diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 84787a251b..f219d76036 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -383,7 +383,7 @@ public class Workspace extends SmoothPagedView public void onDragEnd() { mIsDragOccuring = false; updateChildrenLayersEnabled(); - mLauncher.unlockScreenOrientation(); + mLauncher.unlockScreenOrientation(false); } /**