Check flag to see whether to show accessibility usage dialog.
Test: Manually set/unset flag, see/don't see dialog. Test: atest AccessibilityUsagePreferenceControllerTest Change-Id: I214cf0bf4c67889f48e43fdf774a943dd11e6c34
This commit is contained in:
@@ -18,6 +18,7 @@ package com.android.settings.privacy;
|
|||||||
|
|
||||||
import android.accessibilityservice.AccessibilityServiceInfo;
|
import android.accessibilityservice.AccessibilityServiceInfo;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.provider.DeviceConfig;
|
||||||
import android.view.accessibility.AccessibilityManager;
|
import android.view.accessibility.AccessibilityManager;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@@ -44,7 +45,10 @@ public class AccessibilityUsagePreferenceController extends BasePreferenceContro
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
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
|
@Override
|
||||||
|
@@ -22,8 +22,11 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_
|
|||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import android.accessibilityservice.AccessibilityServiceInfo;
|
import android.accessibilityservice.AccessibilityServiceInfo;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.provider.DeviceConfig;
|
||||||
import android.view.accessibility.AccessibilityManager;
|
import android.view.accessibility.AccessibilityManager;
|
||||||
|
|
||||||
|
import com.android.settings.testutils.shadow.ShadowDeviceConfig;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -31,6 +34,7 @@ import org.junit.runner.RunWith;
|
|||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
import org.robolectric.RuntimeEnvironment;
|
||||||
|
import org.robolectric.annotation.Config;
|
||||||
import org.robolectric.shadow.api.Shadow;
|
import org.robolectric.shadow.api.Shadow;
|
||||||
import org.robolectric.shadows.ShadowAccessibilityManager;
|
import org.robolectric.shadows.ShadowAccessibilityManager;
|
||||||
|
|
||||||
@@ -38,6 +42,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
|
@Config(shadows = {ShadowDeviceConfig.class})
|
||||||
public class AccessibilityUsagePreferenceControllerTest {
|
public class AccessibilityUsagePreferenceControllerTest {
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
@@ -54,10 +59,23 @@ public class AccessibilityUsagePreferenceControllerTest {
|
|||||||
@After
|
@After
|
||||||
public void tearDown() {
|
public void tearDown() {
|
||||||
ShadowAccessibilityManager.reset();
|
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
|
@Test
|
||||||
public void getAvailabilityStatus_noEnabledServices_shouldReturnUnsupported() {
|
public void getAvailabilityStatus_noEnabledServices_shouldReturnUnsupported() {
|
||||||
|
DeviceConfig.setProperty(DeviceConfig.Privacy.NAMESPACE,
|
||||||
|
DeviceConfig.Privacy.PROPERTY_PERMISSIONS_HUB_ENABLED, "true", true);
|
||||||
mAccessibilityManager.setEnabledAccessibilityServiceList(new ArrayList<>());
|
mAccessibilityManager.setEnabledAccessibilityServiceList(new ArrayList<>());
|
||||||
AccessibilityUsagePreferenceController controller =
|
AccessibilityUsagePreferenceController controller =
|
||||||
new AccessibilityUsagePreferenceController(mContext, "test_key");
|
new AccessibilityUsagePreferenceController(mContext, "test_key");
|
||||||
@@ -67,6 +85,8 @@ public class AccessibilityUsagePreferenceControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAvailabilityStatus_enabledServices_shouldReturnAvailableUnsearchable() {
|
public void getAvailabilityStatus_enabledServices_shouldReturnAvailableUnsearchable() {
|
||||||
|
DeviceConfig.setProperty(DeviceConfig.Privacy.NAMESPACE,
|
||||||
|
DeviceConfig.Privacy.PROPERTY_PERMISSIONS_HUB_ENABLED, "true", true);
|
||||||
mAccessibilityManager.setEnabledAccessibilityServiceList(
|
mAccessibilityManager.setEnabledAccessibilityServiceList(
|
||||||
new ArrayList<>(Arrays.asList(new AccessibilityServiceInfo())));
|
new ArrayList<>(Arrays.asList(new AccessibilityServiceInfo())));
|
||||||
AccessibilityUsagePreferenceController controller =
|
AccessibilityUsagePreferenceController controller =
|
||||||
|
Reference in New Issue
Block a user