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