summaryrefslogtreecommitdiffstats
path: root/policy
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2011-01-24 16:43:28 -0800
committerJeff Brown <jeffbrown@google.com>2011-01-24 16:43:28 -0800
commit76a23f8b2e22273ecba8443a90fed53e45f52a2e (patch)
tree09b165407c6fb4c6add737ccbbce8f7f88f6d525 /policy
parent9bb7bf6327972f03844bc6cbc3ce076836a789a6 (diff)
parenteebc944fd13099945b04a99f15173cdaada1ecf2 (diff)
downloadframeworks_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-xpolicy/src/com/android/internal/policy/impl/PhoneWindowManager.java23
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;
}