diff options
Diffstat (limited to 'packages/SystemUI/src/com/android')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tiles/RotationLockTile.java | 18 |
1 files 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<QSTile.BooleanState> { 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<QSTile.BooleanState> { 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<QSTile.BooleanState> { 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; } |