diff options
author | Jeff Brown <jeffbrown@google.com> | 2011-01-24 16:43:28 -0800 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2011-01-24 16:43:28 -0800 |
commit | 76a23f8b2e22273ecba8443a90fed53e45f52a2e (patch) | |
tree | 09b165407c6fb4c6add737ccbbce8f7f88f6d525 /policy | |
parent | 9bb7bf6327972f03844bc6cbc3ce076836a789a6 (diff) | |
parent | eebc944fd13099945b04a99f15173cdaada1ecf2 (diff) | |
download | frameworks_base-76a23f8b2e22273ecba8443a90fed53e45f52a2e.zip frameworks_base-76a23f8b2e22273ecba8443a90fed53e45f52a2e.tar.gz frameworks_base-76a23f8b2e22273ecba8443a90fed53e45f52a2e.tar.bz2 |
resolved conflicts for merge of eebc944f to master
Change-Id: I969cf69d2bd6901742d2cdf1bd44344ee7ba9fc7
Diffstat (limited to 'policy')
-rwxr-xr-x | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 67e0e67..9b5c42e 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -389,6 +389,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.SCREEN_OFF_TIMEOUT), false, this); resolver.registerContentObserver(Settings.System.getUriFor( + Settings.System.WINDOW_ORIENTATION_LISTENER_LOG), false, this); + resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.POINTER_LOCATION), false, this); resolver.registerContentObserver(Settings.Secure.getUriFor( Settings.Secure.DEFAULT_INPUT_METHOD), false, this); @@ -759,6 +761,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { updateOrientationListenerLp(); } + mOrientationListener.setLogEnabled( + Settings.System.getInt(resolver, + Settings.System.WINDOW_ORIENTATION_LISTENER_LOG, 0) != 0); + if (mSystemReady) { int pointerLocation = Settings.System.getInt(resolver, Settings.System.POINTER_LOCATION, 0); @@ -2492,18 +2498,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { return mSeascapeRotation; case ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE: //return either landscape rotation based on the sensor - mOrientationListener.setAllow180Rotation( - isLandscapeOrSeascape(Surface.ROTATION_180)); return getCurrentLandscapeRotation(lastRotation); case ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT: - mOrientationListener.setAllow180Rotation( - !isLandscapeOrSeascape(Surface.ROTATION_180)); return getCurrentPortraitRotation(lastRotation); } - mOrientationListener.setAllow180Rotation(mAllowAllRotations || - orientation == ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR); - // case for nosensor meaning ignore sensor and consider only lid // or orientation sensor disabled //or case.unspecified @@ -2519,7 +2518,15 @@ public class PhoneWindowManager implements WindowManagerPolicy { return mUserRotation; } else { if (useSensorForOrientationLp(orientation)) { - return mOrientationListener.getCurrentRotation(lastRotation); + // Disable 180 degree rotation unless allowed by default for the device + // or explicitly requested by the application. + int rotation = mOrientationListener.getCurrentRotation(lastRotation); + if (rotation == Surface.ROTATION_180 + && !mAllowAllRotations + && orientation != ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR) { + return lastRotation; + } + return rotation; } return Surface.ROTATION_0; } |