Includes AccessibilityMenu-in-System in interaction controls category.
The Menu APK will be included by default on devices. However, in order to ensure Menu appears in the interaction controls category an OEM would need to update their config_preinstalled_interaction_control_services array. This change ensures Menu is in the correct category without any OEM action required. Bug: 261252772 Test: atest AccessibilitySettingsTest Change-Id: I9b3d6dddf2691d9489ef847e400eb776aca96e56
This commit is contained in:
@@ -328,13 +328,43 @@ public class AccessibilitySettingsTest {
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
|
||||
public void testAccessibilityMenuInSystem_IncludedInInteractionControl() {
|
||||
mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
|
||||
List.of(getMockAccessibilityServiceInfo(
|
||||
AccessibilityManager.ACCESSIBILITY_MENU_IN_SYSTEM)));
|
||||
setupFragment();
|
||||
|
||||
final RestrictedPreference pref = mFragment.getPreferenceScreen().findPreference(
|
||||
AccessibilityManager.ACCESSIBILITY_MENU_IN_SYSTEM.flattenToString());
|
||||
final String prefCategory = mFragment.mServicePreferenceToPreferenceCategoryMap.get(
|
||||
pref).getKey();
|
||||
assertThat(prefCategory).isEqualTo(AccessibilitySettings.CATEGORY_INTERACTION_CONTROL);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
|
||||
public void testAccessibilityMenuInSystem_NoPrefWhenNotInstalled() {
|
||||
mShadowAccessibilityManager.setInstalledAccessibilityServiceList(List.of());
|
||||
setupFragment();
|
||||
|
||||
final RestrictedPreference pref = mFragment.getPreferenceScreen().findPreference(
|
||||
AccessibilityManager.ACCESSIBILITY_MENU_IN_SYSTEM.flattenToString());
|
||||
assertThat(pref).isNull();
|
||||
}
|
||||
|
||||
private AccessibilityServiceInfo getMockAccessibilityServiceInfo(String packageName,
|
||||
String className) {
|
||||
return getMockAccessibilityServiceInfo(new ComponentName(packageName, className));
|
||||
}
|
||||
|
||||
private AccessibilityServiceInfo getMockAccessibilityServiceInfo(ComponentName componentName) {
|
||||
final ApplicationInfo applicationInfo = new ApplicationInfo();
|
||||
final ServiceInfo serviceInfo = new ServiceInfo();
|
||||
applicationInfo.packageName = packageName;
|
||||
serviceInfo.packageName = packageName;
|
||||
serviceInfo.name = className;
|
||||
applicationInfo.packageName = componentName.getPackageName();
|
||||
serviceInfo.packageName = componentName.getPackageName();
|
||||
serviceInfo.name = componentName.getClassName();
|
||||
serviceInfo.applicationInfo = applicationInfo;
|
||||
|
||||
final ResolveInfo resolveInfo = new ResolveInfo();
|
||||
@@ -342,7 +372,7 @@ public class AccessibilitySettingsTest {
|
||||
try {
|
||||
final AccessibilityServiceInfo info = new AccessibilityServiceInfo(resolveInfo,
|
||||
mContext);
|
||||
info.setComponentName(new ComponentName(packageName, className));
|
||||
info.setComponentName(componentName);
|
||||
return info;
|
||||
} catch (XmlPullParserException | IOException e) {
|
||||
// Do nothing
|
||||
|
Reference in New Issue
Block a user