diff options
author | Jeff Brown <jeffbrown@google.com> | 2013-04-18 01:42:01 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-04-18 01:42:01 +0000 |
commit | ab15e6ab37cb29e6f3653cc5fa1872523946c50e (patch) | |
tree | 7f11b09bfff37915d39aba436748760f8521937b | |
parent | bb7b315cdd48fdcffc07d0e98557cb88b9f58006 (diff) | |
parent | c82c89edc76667d2d39f5327bffd3c9b7cf04d9f (diff) | |
download | frameworks_base-ab15e6ab37cb29e6f3653cc5fa1872523946c50e.zip frameworks_base-ab15e6ab37cb29e6f3653cc5fa1872523946c50e.tar.gz frameworks_base-ab15e6ab37cb29e6f3653cc5fa1872523946c50e.tar.bz2 |
Merge "Add a config resource to force HDMI rotation on some devices." into jb-mr2-dev
-rw-r--r-- | core/res/res/values/config.xml | 6 | ||||
-rw-r--r-- | core/res/res/values/symbols.xml | 1 | ||||
-rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 31 |
3 files changed, 28 insertions, 10 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index cc50d8a..84e300a 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -345,6 +345,12 @@ A value of -1 means no change in orientation by default. --> <integer name="config_carDockRotation">-1</integer> + <!-- The number of degrees to rotate the display when the device has HDMI connected + but is not in a dock. A value of -1 means no change in orientation by default. + Use -1 except on older devices whose Hardware Composer HAL does not + provide full support for multiple displays. --> + <integer name="config_undockedHdmiRotation">-1</integer> + <!-- Control the default UI mode type to use when there is no other type override happening. One of the following values (See Configuration.java): 1 UI_MODE_TYPE_NORMAL diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 45ea182..5e75390 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1584,6 +1584,7 @@ <java-symbol type="integer" name="config_screenBrightnessSettingDefault" /> <java-symbol type="integer" name="config_screenBrightnessDim" /> <java-symbol type="integer" name="config_shutdownBatteryTemperature" /> + <java-symbol type="integer" name="config_undockedHdmiRotation" /> <java-symbol type="integer" name="config_virtualKeyQuietTimeMillis" /> <java-symbol type="layout" name="am_compat_mode_dialog" /> <java-symbol type="layout" name="launch_warning" /> diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 7cb6b09..7f3fc43 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -251,8 +251,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { int mLidOpenRotation; int mCarDockRotation; int mDeskDockRotation; - int mHdmiRotation; - boolean mHdmiRotationLock; + int mUndockedHdmiRotation; + int mDemoHdmiRotation; + boolean mDemoHdmiRotationLock; int mUserRotationMode = WindowManagerPolicy.USER_ROTATION_FREE; int mUserRotation = Surface.ROTATION_0; @@ -854,6 +855,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { com.android.internal.R.integer.config_carDockRotation); mDeskDockRotation = readRotation( com.android.internal.R.integer.config_deskDockRotation); + mUndockedHdmiRotation = readRotation( + com.android.internal.R.integer.config_undockedHdmiRotation); mCarDockEnablesAccelerometer = mContext.getResources().getBoolean( com.android.internal.R.bool.config_carDockEnablesAccelerometer); mDeskDockEnablesAccelerometer = mContext.getResources().getBoolean( @@ -1024,11 +1027,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { // For demo purposes, allow the rotation of the HDMI display to be controlled. // By default, HDMI locks rotation to landscape. if ("portrait".equals(SystemProperties.get("persist.demo.hdmirotation"))) { - mHdmiRotation = mPortraitRotation; + mDemoHdmiRotation = mPortraitRotation; } else { - mHdmiRotation = mLandscapeRotation; + mDemoHdmiRotation = mLandscapeRotation; } - mHdmiRotationLock = SystemProperties.getBoolean("persist.demo.hdmirotationlock", false); + mDemoHdmiRotationLock = SystemProperties.getBoolean("persist.demo.hdmirotationlock", false); } @Override @@ -4200,10 +4203,17 @@ public class PhoneWindowManager implements WindowManagerPolicy { // enable 180 degree rotation while docked. preferredRotation = mDeskDockEnablesAccelerometer ? sensorRotation : mDeskDockRotation; - } else if (mHdmiPlugged && mHdmiRotationLock) { - // Ignore sensor when plugged into HDMI. + } else if (mHdmiPlugged && mDemoHdmiRotationLock) { + // Ignore sensor when plugged into HDMI when demo HDMI rotation lock enabled. // Note that the dock orientation overrides the HDMI orientation. - preferredRotation = mHdmiRotation; + preferredRotation = mDemoHdmiRotation; + } else if (mHdmiPlugged && mDockMode == Intent.EXTRA_DOCK_STATE_UNDOCKED + && mUndockedHdmiRotation >= 0) { + // Ignore sensor when plugged into HDMI and an undocked orientation has + // been specified in the configuration (only for legacy devices without + // full multi-display support). + // Note that the dock orientation overrides the HDMI orientation. + preferredRotation = mUndockedHdmiRotation; } else if (orientation == ActivityInfo.SCREEN_ORIENTATION_LOCKED) { // Application just wants to remain locked in the last rotation. preferredRotation = lastRotation; @@ -4967,7 +4977,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { pw.print(" mSeascapeRotation="); pw.println(mSeascapeRotation); pw.print(prefix); pw.print("mPortraitRotation="); pw.print(mPortraitRotation); pw.print(" mUpsideDownRotation="); pw.println(mUpsideDownRotation); - pw.print(prefix); pw.print("mHdmiRotation="); pw.print(mHdmiRotation); - pw.print(" mHdmiRotationLock="); pw.println(mHdmiRotationLock); + pw.print(prefix); pw.print("mDemoHdmiRotation="); pw.print(mDemoHdmiRotation); + pw.print(" mDemoHdmiRotationLock="); pw.println(mDemoHdmiRotationLock); + pw.print(prefix); pw.print("mUndockedHdmiRotation="); pw.println(mUndockedHdmiRotation); } } |