diff --git a/src/com/android/settings/display/AutoRotateSwitchBarController.java b/src/com/android/settings/display/AutoRotateSwitchBarController.java index e149ccb6c76..48dedfd1fa3 100644 --- a/src/com/android/settings/display/AutoRotateSwitchBarController.java +++ b/src/com/android/settings/display/AutoRotateSwitchBarController.java @@ -31,7 +31,7 @@ import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.widget.OnMainSwitchChangeListener; /** - * The switch controller for the location. + * The switch controller for auto-rotate. */ public class AutoRotateSwitchBarController implements OnMainSwitchChangeListener, LifecycleObserver, OnStart, OnStop { diff --git a/src/com/android/settings/display/SmartAutoRotateController.java b/src/com/android/settings/display/SmartAutoRotateController.java index b88aa807f97..76a222aac75 100644 --- a/src/com/android/settings/display/SmartAutoRotateController.java +++ b/src/com/android/settings/display/SmartAutoRotateController.java @@ -63,7 +63,7 @@ public class SmartAutoRotateController extends TogglePreferenceController implem updateState(mPreference); } }; - private Preference mPreference; + protected Preference mPreference; private RotationPolicy.RotationPolicyListener mRotationPolicyListener; public SmartAutoRotateController(Context context, String preferenceKey) { @@ -84,10 +84,14 @@ public class SmartAutoRotateController extends TogglePreferenceController implem if (!isRotationResolverServiceAvailable(mContext)) { return UNSUPPORTED_ON_DEVICE; } - return !RotationPolicy.isRotationLocked(mContext) && hasSufficientPermission(mContext) + return !isRotationLocked() && hasSufficientPermission(mContext) && !isCameraLocked() && !isPowerSaveMode() ? AVAILABLE : DISABLED_DEPENDENT_SETTING; } + protected boolean isRotationLocked() { + return RotationPolicy.isRotationLocked(mContext); + } + @Override public void updateState(Preference preference) { super.updateState(preference); @@ -136,7 +140,7 @@ public class SmartAutoRotateController extends TogglePreferenceController implem @Override public boolean isChecked() { - return !RotationPolicy.isRotationLocked(mContext) && hasSufficientPermission(mContext) + return !isRotationLocked() && hasSufficientPermission(mContext) && !isCameraLocked() && !isPowerSaveMode() && Settings.Secure.getInt( mContext.getContentResolver(), CAMERA_AUTOROTATE, 0) == 1; @@ -163,7 +167,10 @@ public class SmartAutoRotateController extends TogglePreferenceController implem return R.string.menu_key_display; } - static boolean isRotationResolverServiceAvailable(Context context) { + /** + * Returns true if there is a {@link RotationResolverService} available + */ + public static boolean isRotationResolverServiceAvailable(Context context) { final PackageManager packageManager = context.getPackageManager(); final String resolvePackage = packageManager.getRotationResolverPackageName(); if (TextUtils.isEmpty(resolvePackage)) {