From e8253dd8b3701bc81aa1f2b0cc6ac0988a32a3fc Mon Sep 17 00:00:00 2001 From: Svetoslav Date: Tue, 30 Apr 2013 15:57:40 -0700 Subject: [PATCH] Remove Auto-rotate screen setting if a required feature is missing. It is possible that a device running Android does not support rotation, for example a Google TV box. The change adds a check to the rotation policy to take this into account. bug:8051556 Change-Id: I60a2a35da148271a18873f6c70556dacab29dae9 --- .../android/settings/AccessibilitySettings.java | 15 +++++++++++---- src/com/android/settings/DisplaySettings.java | 6 ++++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java index a4438d056a0..4ca98d8eeee 100644 --- a/src/com/android/settings/AccessibilitySettings.java +++ b/src/com/android/settings/AccessibilitySettings.java @@ -200,16 +200,20 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements mSettingsPackageMonitor.register(getActivity(), getActivity().getMainLooper(), false); mSettingsContentObserver.register(getContentResolver()); - RotationPolicy.registerRotationPolicyListener(getActivity(), - mRotationPolicyListener); + if (RotationPolicy.isRotationSupported(getActivity())) { + RotationPolicy.registerRotationPolicyListener(getActivity(), + mRotationPolicyListener); + } } @Override public void onPause() { mSettingsPackageMonitor.unregister(); - RotationPolicy.unregisterRotationPolicyListener(getActivity(), - mRotationPolicyListener); mSettingsContentObserver.unregister(getContentResolver()); + if (RotationPolicy.isRotationSupported(getActivity())) { + RotationPolicy.unregisterRotationPolicyListener(getActivity(), + mRotationPolicyListener); + } super.onPause(); } @@ -320,6 +324,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements // Lock screen rotation. mToggleLockScreenRotationPreference = (CheckBoxPreference) findPreference(TOGGLE_LOCK_SCREEN_ROTATION_PREFERENCE); + if (!RotationPolicy.isRotationSupported(getActivity())) { + mSystemsCategory.removePreference(mToggleLockScreenRotationPreference); + } // Speak passwords. mToggleSpeakPasswordPreference = diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java index fb839a716ad..6c3a990efcc 100644 --- a/src/com/android/settings/DisplaySettings.java +++ b/src/com/android/settings/DisplaySettings.java @@ -95,9 +95,11 @@ public class DisplaySettings extends SettingsPreferenceFragment implements mAccelerometer = (CheckBoxPreference) findPreference(KEY_ACCELEROMETER); mAccelerometer.setPersistent(false); - if (RotationPolicy.isRotationLockToggleSupported(getActivity())) { + if (!RotationPolicy.isRotationSupported(getActivity()) + || RotationPolicy.isRotationLockToggleSupported(getActivity())) { // If rotation lock is supported, then we do not provide this option in - // Display settings. However, is still available in Accessibility settings. + // Display settings. However, is still available in Accessibility settings, + // if the device supports rotation. getPreferenceScreen().removePreference(mAccelerometer); }