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
This commit is contained in:
Svetoslav
2013-04-30 15:57:40 -07:00
parent 5c460bbafe
commit e8253dd8b3
2 changed files with 15 additions and 6 deletions

View File

@@ -200,16 +200,20 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
mSettingsPackageMonitor.register(getActivity(), getActivity().getMainLooper(), false); mSettingsPackageMonitor.register(getActivity(), getActivity().getMainLooper(), false);
mSettingsContentObserver.register(getContentResolver()); mSettingsContentObserver.register(getContentResolver());
RotationPolicy.registerRotationPolicyListener(getActivity(), if (RotationPolicy.isRotationSupported(getActivity())) {
mRotationPolicyListener); RotationPolicy.registerRotationPolicyListener(getActivity(),
mRotationPolicyListener);
}
} }
@Override @Override
public void onPause() { public void onPause() {
mSettingsPackageMonitor.unregister(); mSettingsPackageMonitor.unregister();
RotationPolicy.unregisterRotationPolicyListener(getActivity(),
mRotationPolicyListener);
mSettingsContentObserver.unregister(getContentResolver()); mSettingsContentObserver.unregister(getContentResolver());
if (RotationPolicy.isRotationSupported(getActivity())) {
RotationPolicy.unregisterRotationPolicyListener(getActivity(),
mRotationPolicyListener);
}
super.onPause(); super.onPause();
} }
@@ -320,6 +324,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
// Lock screen rotation. // Lock screen rotation.
mToggleLockScreenRotationPreference = mToggleLockScreenRotationPreference =
(CheckBoxPreference) findPreference(TOGGLE_LOCK_SCREEN_ROTATION_PREFERENCE); (CheckBoxPreference) findPreference(TOGGLE_LOCK_SCREEN_ROTATION_PREFERENCE);
if (!RotationPolicy.isRotationSupported(getActivity())) {
mSystemsCategory.removePreference(mToggleLockScreenRotationPreference);
}
// Speak passwords. // Speak passwords.
mToggleSpeakPasswordPreference = mToggleSpeakPasswordPreference =

View File

@@ -95,9 +95,11 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
mAccelerometer = (CheckBoxPreference) findPreference(KEY_ACCELEROMETER); mAccelerometer = (CheckBoxPreference) findPreference(KEY_ACCELEROMETER);
mAccelerometer.setPersistent(false); 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 // 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); getPreferenceScreen().removePreference(mAccelerometer);
} }