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);
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 =

View File

@@ -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);
}