Loading src/com/android/settings/privacy/AccessibilityUsagePreferenceController.java +16 −5 Original line number Diff line number Diff line Loading @@ -31,15 +31,26 @@ import java.util.List; public class AccessibilityUsagePreferenceController extends BasePreferenceController { private final @NonNull List<AccessibilityServiceInfo> mEnabledServiceInfos; private final AccessibilityManager mAccessibilityManager; @NonNull private List<AccessibilityServiceInfo> mEnabledServiceInfos; public AccessibilityUsagePreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class); mEnabledServiceInfos = mAccessibilityManager.getEnabledAccessibilityServiceList( AccessibilityServiceInfo.FEEDBACK_ALL_MASK); } final AccessibilityManager accessibilityManager = context.getSystemService( AccessibilityManager.class); mEnabledServiceInfos = accessibilityManager.getEnabledAccessibilityServiceList( @Override public void updateState(Preference preference) { super.updateState(preference); mEnabledServiceInfos = mAccessibilityManager.getEnabledAccessibilityServiceList( AccessibilityServiceInfo.FEEDBACK_ALL_MASK); if (mEnabledServiceInfos.isEmpty()) { preference.setVisible(false); } } @Override Loading tests/robotests/src/com/android/settings/privacy/AccessibilityUsagePreferenceControllerTest.java +18 −8 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading @@ -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(); } } Loading
src/com/android/settings/privacy/AccessibilityUsagePreferenceController.java +16 −5 Original line number Diff line number Diff line Loading @@ -31,15 +31,26 @@ import java.util.List; public class AccessibilityUsagePreferenceController extends BasePreferenceController { private final @NonNull List<AccessibilityServiceInfo> mEnabledServiceInfos; private final AccessibilityManager mAccessibilityManager; @NonNull private List<AccessibilityServiceInfo> mEnabledServiceInfos; public AccessibilityUsagePreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class); mEnabledServiceInfos = mAccessibilityManager.getEnabledAccessibilityServiceList( AccessibilityServiceInfo.FEEDBACK_ALL_MASK); } final AccessibilityManager accessibilityManager = context.getSystemService( AccessibilityManager.class); mEnabledServiceInfos = accessibilityManager.getEnabledAccessibilityServiceList( @Override public void updateState(Preference preference) { super.updateState(preference); mEnabledServiceInfos = mAccessibilityManager.getEnabledAccessibilityServiceList( AccessibilityServiceInfo.FEEDBACK_ALL_MASK); if (mEnabledServiceInfos.isEmpty()) { preference.setVisible(false); } } @Override Loading
tests/robotests/src/com/android/settings/privacy/AccessibilityUsagePreferenceControllerTest.java +18 −8 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading @@ -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(); } }