diff --git a/res/values/config.xml b/res/values/config.xml index c9b5588c588..970261f0925 100755 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -631,4 +631,6 @@ false + + true diff --git a/src/com/android/settings/display/SmartAutoRotateController.java b/src/com/android/settings/display/SmartAutoRotateController.java index 9740002823d..768a6c10cbb 100644 --- a/src/com/android/settings/display/SmartAutoRotateController.java +++ b/src/com/android/settings/display/SmartAutoRotateController.java @@ -189,6 +189,10 @@ public class SmartAutoRotateController extends TogglePreferenceController implem * Returns true if there is a {@link RotationResolverService} available */ public static boolean isRotationResolverServiceAvailable(Context context) { + if (!context.getResources().getBoolean( + R.bool.config_auto_rotate_face_detection_available)) { + return false; + } final PackageManager packageManager = context.getPackageManager(); final String resolvePackage = packageManager.getRotationResolverPackageName(); if (TextUtils.isEmpty(resolvePackage)) { diff --git a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceControllerTest.java index 6b8d7063aee..c1a98ef0c82 100644 --- a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceControllerTest.java @@ -80,6 +80,9 @@ public class SmartAutoRotatePreferenceControllerTest { when(mContext.getResources()).thenReturn(mResources); when(mContext.getContentResolver()).thenReturn(mContentResolver); + when(mResources.getBoolean(R.bool.config_auto_rotate_face_detection_available)).thenReturn( + true); + doReturn(PACKAGE_NAME).when(mPackageManager).getRotationResolverPackageName(); doReturn(PackageManager.PERMISSION_GRANTED).when(mPackageManager).checkPermission( Manifest.permission.CAMERA, PACKAGE_NAME); diff --git a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java index e5374196681..a25702bd2ea 100644 --- a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java +++ b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java @@ -111,6 +111,8 @@ public class SmartAutoRotatePreferenceFragmentTest { when(mActivity.getPackageManager()).thenReturn(mPackageManager); when(mFragment.getActivity()).thenReturn(mActivity); when(mFragment.getContext()).thenReturn(mContext); + when(mActivity.getResources()).thenReturn(mResources); + doReturn(mView).when(mFragment).getView(); when(mFragment.findPreference(AUTO_ROTATE_SWITCH_PREFERENCE_KEY)).thenReturn( @@ -152,6 +154,17 @@ public class SmartAutoRotatePreferenceFragmentTest { verify(mRotateSwitchPreference, never()).setVisible(false); } + @Test + public void createHeader_faceDetectionNotEnabledByConfig_switchBarIsDisabled() { + doReturn(false).when(mResources).getBoolean( + R.bool.config_auto_rotate_face_detection_available); + + mFragment.createHeader(mActivity); + + verify(mRotateMainSwitchPreference, times(1)).setVisible(false); + verify(mRotateSwitchPreference, never()).setVisible(false); + } + @Test public void createPreferenceControllers_noSettableDeviceStates_returnsEmptyList() { enableDeviceStateSettableRotationStates(new String[]{}, new String[]{}); @@ -198,6 +211,8 @@ public class SmartAutoRotatePreferenceFragmentTest { when(mResources.getStringArray( R.array.config_settableAutoRotationDeviceStatesDescriptions)).thenReturn( settableStatesDescriptions); + when(mResources.getBoolean(R.bool.config_auto_rotate_face_detection_available)).thenReturn( + true); DeviceStateRotationLockSettingsManager.resetInstance(); DeviceStateRotationLockSettingsManager.getInstance(mContext) .resetStateForTesting(mResources);