summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2012-08-03 13:54:02 -0700
committerCraig Mautner <cmautner@google.com>2012-08-03 14:47:24 -0700
commit4bd149ef83c8e3e2ffb61885e71f44df9a9ccfa7 (patch)
treefb68ea52d2fbbb8b511c6f83911e4f722e827916
parentb92edf99ef268fe0fd76445286d720bd11f967d2 (diff)
Do not use last app rotation as default.
If the rotation sensor has been disabled we were substituting the last app rotation for the sensor value. This fix uses the last sensor value delivered before the sensor was disabled. Only use the last app rotation if we never have received a valid sensor value. Fixes bug 6387946. Change-Id: I50743c30ee2b4455e9848d3a619809be97eec3c8
-rwxr-xr-xpolicy/src/com/android/internal/policy/impl/PhoneWindowManager.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 215f5978fbed..718512b8a378 100755
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -361,6 +361,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
boolean mScreenOnEarly = false;
boolean mScreenOnFully = false;
boolean mOrientationSensorEnabled = false;
+ int mLastSensorRotation = -1;
int mCurrentAppOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
boolean mHasSoftInput = false;
@@ -3728,7 +3729,16 @@ public class PhoneWindowManager implements WindowManagerPolicy {
synchronized (mLock) {
int sensorRotation = mOrientationListener.getProposedRotation(); // may be -1
if (sensorRotation < 0) {
- sensorRotation = lastRotation;
+ // Sensor is disabled, device probably just turned off.
+ if (mLastSensorRotation >= 0) {
+ sensorRotation = mLastSensorRotation;
+ } else {
+ // Sensor has never been enabled. Last resort is to use lastRotation.
+ sensorRotation = lastRotation;
+ }
+ } else {
+ // Valid sensor data, save it away.
+ mLastSensorRotation = sensorRotation;
}
final int preferredRotation;