From 2609883606e384019895e3be071658b342f5f2ca Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Tue, 14 Jul 2015 16:41:57 -0700 Subject: Show correct locked orientation on phones Bug: 22487750 Change-Id: I1feaaf1e569c576c5212ef396732b2bbb5a0c0fc --- .../android/systemui/qs/tiles/RotationLockTile.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/RotationLockTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/RotationLockTile.java index 6d2c8c0..1a26a4d 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/RotationLockTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/RotationLockTile.java @@ -78,8 +78,7 @@ public class RotationLockTile extends QSTile { return; } state.value = rotationLocked; - final boolean portrait = mContext.getResources().getConfiguration().orientation - != Configuration.ORIENTATION_LANDSCAPE; + final boolean portrait = isCurrentOrientationLockPortrait(); final AnimationIcon icon; if (rotationLocked) { final int label = portrait ? R.string.quick_settings_rotation_locked_portrait_label @@ -98,6 +97,17 @@ public class RotationLockTile extends QSTile { R.string.accessibility_rotation_lock_off); } + private boolean isCurrentOrientationLockPortrait() { + int lockOrientation = mController.getRotationLockOrientation(); + if (lockOrientation == Configuration.ORIENTATION_UNDEFINED) { + // Freely rotating device; use current rotation + return mContext.getResources().getConfiguration().orientation + != Configuration.ORIENTATION_LANDSCAPE; + } else { + return lockOrientation != Configuration.ORIENTATION_LANDSCAPE; + } + } + @Override public int getMetricsCategory() { return MetricsLogger.QS_ROTATIONLOCK; @@ -116,9 +126,7 @@ public class RotationLockTile extends QSTile { int idWhenOff) { int stringID; if (locked) { - final boolean portrait = mContext.getResources().getConfiguration().orientation - != Configuration.ORIENTATION_LANDSCAPE; - stringID = portrait ? idWhenPortrait: idWhenLandscape; + stringID = isCurrentOrientationLockPortrait() ? idWhenPortrait: idWhenLandscape; } else { stringID = idWhenOff; } -- cgit v1.1