diff --git a/src/com/android/settings/privacy/AccessibilityUsagePreferenceController.java b/src/com/android/settings/privacy/AccessibilityUsagePreferenceController.java index 8aff2238a4c..bcf8f4761a0 100644 --- a/src/com/android/settings/privacy/AccessibilityUsagePreferenceController.java +++ b/src/com/android/settings/privacy/AccessibilityUsagePreferenceController.java @@ -18,6 +18,7 @@ package com.android.settings.privacy; import android.accessibilityservice.AccessibilityServiceInfo; import android.content.Context; +import android.provider.DeviceConfig; import android.view.accessibility.AccessibilityManager; import androidx.annotation.NonNull; @@ -44,7 +45,10 @@ public class AccessibilityUsagePreferenceController extends BasePreferenceContro @Override public int getAvailabilityStatus() { - return mEnabledServiceInfos.isEmpty() ? UNSUPPORTED_ON_DEVICE : AVAILABLE; + return (mEnabledServiceInfos.isEmpty() || !Boolean.parseBoolean( + DeviceConfig.getProperty(DeviceConfig.Privacy.NAMESPACE, + DeviceConfig.Privacy.PROPERTY_PERMISSIONS_HUB_ENABLED))) + ? UNSUPPORTED_ON_DEVICE : AVAILABLE; } @Override diff --git a/tests/robotests/src/com/android/settings/privacy/AccessibilityUsagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/privacy/AccessibilityUsagePreferenceControllerTest.java index 103344633c5..05ce30a29a0 100644 --- a/tests/robotests/src/com/android/settings/privacy/AccessibilityUsagePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/privacy/AccessibilityUsagePreferenceControllerTest.java @@ -22,8 +22,11 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_ import static com.google.common.truth.Truth.assertThat; import android.accessibilityservice.AccessibilityServiceInfo; import android.content.Context; +import android.provider.DeviceConfig; import android.view.accessibility.AccessibilityManager; +import com.android.settings.testutils.shadow.ShadowDeviceConfig; + import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -31,6 +34,7 @@ import org.junit.runner.RunWith; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; import org.robolectric.shadow.api.Shadow; import org.robolectric.shadows.ShadowAccessibilityManager; @@ -38,6 +42,7 @@ import java.util.ArrayList; import java.util.Arrays; @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowDeviceConfig.class}) public class AccessibilityUsagePreferenceControllerTest { private Context mContext; @@ -54,10 +59,23 @@ public class AccessibilityUsagePreferenceControllerTest { @After public void tearDown() { ShadowAccessibilityManager.reset(); + ShadowDeviceConfig.reset(); + } + + @Test + public void isAvailable_permissionHubNotSet_shouldReturnUnsupported() { + mAccessibilityManager.setEnabledAccessibilityServiceList(new ArrayList<>()); + AccessibilityUsagePreferenceController controller = + new AccessibilityUsagePreferenceController(mContext, "test_key"); + + // We have not yet set the property to show the Permissions Hub. + assertThat(controller.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test public void getAvailabilityStatus_noEnabledServices_shouldReturnUnsupported() { + DeviceConfig.setProperty(DeviceConfig.Privacy.NAMESPACE, + DeviceConfig.Privacy.PROPERTY_PERMISSIONS_HUB_ENABLED, "true", true); mAccessibilityManager.setEnabledAccessibilityServiceList(new ArrayList<>()); AccessibilityUsagePreferenceController controller = new AccessibilityUsagePreferenceController(mContext, "test_key"); @@ -67,6 +85,8 @@ public class AccessibilityUsagePreferenceControllerTest { @Test public void getAvailabilityStatus_enabledServices_shouldReturnAvailableUnsearchable() { + DeviceConfig.setProperty(DeviceConfig.Privacy.NAMESPACE, + DeviceConfig.Privacy.PROPERTY_PERMISSIONS_HUB_ENABLED, "true", true); mAccessibilityManager.setEnabledAccessibilityServiceList( new ArrayList<>(Arrays.asList(new AccessibilityServiceInfo()))); AccessibilityUsagePreferenceController controller =