Hide a11y usage when there is no enabled a11y service
A11y usage still shows in privacy page after user disable a11y with a11y usage dialog. We need to check again whether there is any enabled a11y after screen comes back to foreground. Change-Id: Icf7aa7dc9d802765ec49df8651385397f454cd48 Fix: 140207216 Test: robotest
This commit is contained in:
@@ -20,12 +20,13 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE;
|
||||
import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
|
||||
|
||||
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.Utils;
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settings.testutils.shadow.ShadowDeviceConfig;
|
||||
|
||||
import org.junit.After;
|
||||
@@ -65,10 +66,8 @@ public class AccessibilityUsagePreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_noEnabledServices_shouldReturnUnsupported() {
|
||||
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY,
|
||||
Utils.PROPERTY_PERMISSIONS_HUB_ENABLED, "true", true);
|
||||
mAccessibilityManager.setEnabledAccessibilityServiceList(new ArrayList<>());
|
||||
AccessibilityUsagePreferenceController controller =
|
||||
final AccessibilityUsagePreferenceController controller =
|
||||
new AccessibilityUsagePreferenceController(mContext, "test_key");
|
||||
|
||||
assertThat(controller.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
|
||||
@@ -76,13 +75,24 @@ public class AccessibilityUsagePreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_enabledServices_shouldReturnAvailable() {
|
||||
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY,
|
||||
Utils.PROPERTY_PERMISSIONS_HUB_ENABLED, "false", true);
|
||||
mAccessibilityManager.setEnabledAccessibilityServiceList(
|
||||
new ArrayList<>(Arrays.asList(new AccessibilityServiceInfo())));
|
||||
AccessibilityUsagePreferenceController controller =
|
||||
final AccessibilityUsagePreferenceController controller =
|
||||
new AccessibilityUsagePreferenceController(mContext, "test_key");
|
||||
|
||||
assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_noEnabledServices_shouldHidePreference() {
|
||||
mAccessibilityManager.setEnabledAccessibilityServiceList(new ArrayList<>());
|
||||
final AccessibilityUsagePreferenceController controller =
|
||||
new AccessibilityUsagePreferenceController(mContext, "test_key");
|
||||
final Preference preference = new Preference(mContext);
|
||||
preference.setVisible(true);
|
||||
|
||||
controller.updateState(preference);
|
||||
|
||||
assertThat(preference.isVisible()).isFalse();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user