Change the name of accessibility service fragment type to more descriptive names

Bug: 155052371
Test: manual test
Change-Id: I097138c84083528acd4d16a145921227ffe3f736
This commit is contained in:
jasonwshsu
2020-04-27 18:06:44 +08:00
parent 7f15836d47
commit 43daeb90da
8 changed files with 44 additions and 40 deletions

View File

@@ -269,7 +269,7 @@ public class AccessibilitySettings extends DashboardFragment {
final CharSequence serviceState; final CharSequence serviceState;
final int fragmentType = AccessibilityUtil.getAccessibilityServiceFragmentType(info); final int fragmentType = AccessibilityUtil.getAccessibilityServiceFragmentType(info);
if (fragmentType == AccessibilityServiceFragmentType.INVISIBLE) { if (fragmentType == AccessibilityServiceFragmentType.INVISIBLE_TOGGLE) {
final ComponentName componentName = new ComponentName( final ComponentName componentName = new ComponentName(
info.getResolveInfo().serviceInfo.packageName, info.getResolveInfo().serviceInfo.packageName,
info.getResolveInfo().serviceInfo.name); info.getResolveInfo().serviceInfo.name);
@@ -652,13 +652,16 @@ public class AccessibilitySettings extends DashboardFragment {
} }
private String getAccessibilityServiceFragmentTypeName(AccessibilityServiceInfo info) { private String getAccessibilityServiceFragmentTypeName(AccessibilityServiceInfo info) {
switch (AccessibilityUtil.getAccessibilityServiceFragmentType( // Shorten the name to avoid exceeding 100 characters in one line.
info)) { final String volumeShortcutToggleAccessibilityServicePreferenceFragment =
case AccessibilityServiceFragmentType.LEGACY: VolumeShortcutToggleAccessibilityServicePreferenceFragment.class.getName();
return LegacyAccessibilityServicePreferenceFragment.class.getName();
case AccessibilityServiceFragmentType.INVISIBLE: switch (AccessibilityUtil.getAccessibilityServiceFragmentType(info)) {
case AccessibilityServiceFragmentType.VOLUME_SHORTCUT_TOGGLE:
return volumeShortcutToggleAccessibilityServicePreferenceFragment;
case AccessibilityServiceFragmentType.INVISIBLE_TOGGLE:
return InvisibleToggleAccessibilityServicePreferenceFragment.class.getName(); return InvisibleToggleAccessibilityServicePreferenceFragment.class.getName();
case AccessibilityServiceFragmentType.INTUITIVE: case AccessibilityServiceFragmentType.TOGGLE:
return ToggleAccessibilityServicePreferenceFragment.class.getName(); return ToggleAccessibilityServicePreferenceFragment.class.getName();
default: default:
// impossible status // impossible status

View File

@@ -16,7 +16,7 @@
package com.android.settings.accessibility; package com.android.settings.accessibility;
import static com.android.settings.accessibility.AccessibilityUtil.AccessibilityServiceFragmentType.LEGACY; import static com.android.settings.accessibility.AccessibilityUtil.AccessibilityServiceFragmentType.VOLUME_SHORTCUT_TOGGLE;
import android.accessibilityservice.AccessibilityServiceInfo; import android.accessibilityservice.AccessibilityServiceInfo;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
@@ -102,10 +102,10 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
super.onResume(); super.onResume();
updateAccessibilityServicePreference(mScreenReaderPreference, updateAccessibilityServicePreference(mScreenReaderPreference,
SCREEN_READER_PACKAGE_NAME, SCREEN_READER_SERVICE_NAME, SCREEN_READER_PACKAGE_NAME, SCREEN_READER_SERVICE_NAME,
LegacyToggleScreenReaderPreferenceFragmentForSetupWizard.class.getName()); VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard.class.getName());
updateAccessibilityServicePreference(mSelectToSpeakPreference, updateAccessibilityServicePreference(mSelectToSpeakPreference,
SELECT_TO_SPEAK_PACKAGE_NAME, SELECT_TO_SPEAK_SERVICE_NAME, SELECT_TO_SPEAK_PACKAGE_NAME, SELECT_TO_SPEAK_SERVICE_NAME,
LegacyToggleSelectToSpeakPreferenceFragmentForSetupWizard.class.getName()); VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard.class.getName());
configureMagnificationPreferenceIfNeeded(mDisplayMagnificationPreference); configureMagnificationPreferenceIfNeeded(mDisplayMagnificationPreference);
} }
@@ -147,7 +147,7 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
} }
private void updateAccessibilityServicePreference(Preference preference, private void updateAccessibilityServicePreference(Preference preference,
String packageName, String serviceName, String targetLegacyFragment) { String packageName, String serviceName, String targetFragment) {
final AccessibilityServiceInfo info = findService(packageName, serviceName); final AccessibilityServiceInfo info = findService(packageName, serviceName);
if (info == null) { if (info == null) {
getPreferenceScreen().removePreference(preference); getPreferenceScreen().removePreference(preference);
@@ -159,8 +159,8 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
preference.setTitle(title); preference.setTitle(title);
ComponentName componentName = new ComponentName(serviceInfo.packageName, serviceInfo.name); ComponentName componentName = new ComponentName(serviceInfo.packageName, serviceInfo.name);
preference.setKey(componentName.flattenToString()); preference.setKey(componentName.flattenToString());
if (AccessibilityUtil.getAccessibilityServiceFragmentType(info) == LEGACY) { if (AccessibilityUtil.getAccessibilityServiceFragmentType(info) == VOLUME_SHORTCUT_TOGGLE) {
preference.setFragment(targetLegacyFragment); preference.setFragment(targetFragment);
} }
// Update the extras. // Update the extras.

View File

@@ -46,22 +46,23 @@ final class AccessibilityUtil {
/** /**
* Annotation for different accessibilityService fragment UI type. * Annotation for different accessibilityService fragment UI type.
* *
* {@code LEGACY} for displaying appearance aligned with sdk version Q accessibility service * {@code VOLUME_SHORTCUT_TOGGLE} for displaying basic accessibility service fragment but
* page, but only hardware shortcut allowed. * only hardware shortcut allowed.
* {@code INVISIBLE} for displaying appearance without switch bar. * {@code INVISIBLE_TOGGLE} for displaying basic accessibility service fragment without
* {@code INTUITIVE} for displaying appearance with new design. * switch bar.
* {@code TOGGLE} for displaying basic accessibility service fragment.
*/ */
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@IntDef({ @IntDef({
AccessibilityServiceFragmentType.LEGACY, AccessibilityServiceFragmentType.VOLUME_SHORTCUT_TOGGLE,
AccessibilityServiceFragmentType.INVISIBLE, AccessibilityServiceFragmentType.INVISIBLE_TOGGLE,
AccessibilityServiceFragmentType.INTUITIVE, AccessibilityServiceFragmentType.TOGGLE,
}) })
public @interface AccessibilityServiceFragmentType { public @interface AccessibilityServiceFragmentType {
int LEGACY = 0; int VOLUME_SHORTCUT_TOGGLE = 0;
int INVISIBLE = 1; int INVISIBLE_TOGGLE = 1;
int INTUITIVE = 2; int TOGGLE = 2;
} }
// TODO(b/147021230): Will move common functions and variables to // TODO(b/147021230): Will move common functions and variables to
@@ -162,11 +163,11 @@ final class AccessibilityUtil {
& AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0; & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0;
if (targetSdk <= Build.VERSION_CODES.Q) { if (targetSdk <= Build.VERSION_CODES.Q) {
return AccessibilityServiceFragmentType.LEGACY; return AccessibilityServiceFragmentType.VOLUME_SHORTCUT_TOGGLE;
} }
return requestA11yButton return requestA11yButton
? AccessibilityServiceFragmentType.INVISIBLE ? AccessibilityServiceFragmentType.INVISIBLE_TOGGLE
: AccessibilityServiceFragmentType.INTUITIVE; : AccessibilityServiceFragmentType.TOGGLE;
} }
/** /**

View File

@@ -34,7 +34,7 @@ import com.google.common.collect.ImmutableSet;
* *
* <p>For accessibility services that target SDK <= Q. * <p>For accessibility services that target SDK <= Q.
*/ */
public class LegacyAccessibilityServicePreferenceFragment extends public class VolumeShortcutToggleAccessibilityServicePreferenceFragment extends
ToggleAccessibilityServicePreferenceFragment { ToggleAccessibilityServicePreferenceFragment {
@Override @Override

View File

@@ -21,8 +21,8 @@ import android.os.Bundle;
import android.view.View; import android.view.View;
/** For accessibility services that target SDK <= Q in setup wizard. */ /** For accessibility services that target SDK <= Q in setup wizard. */
public class LegacyToggleScreenReaderPreferenceFragmentForSetupWizard public class VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard
extends LegacyAccessibilityServicePreferenceFragment { extends VolumeShortcutToggleAccessibilityServicePreferenceFragment {
private boolean mToggleSwitchWasInitiallyChecked; private boolean mToggleSwitchWasInitiallyChecked;

View File

@@ -21,8 +21,8 @@ import android.os.Bundle;
import android.view.View; import android.view.View;
/** For accessibility services that target SDK <= Q in setup wizard. */ /** For accessibility services that target SDK <= Q in setup wizard. */
public class LegacyToggleSelectToSpeakPreferenceFragmentForSetupWizard public class VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard
extends LegacyAccessibilityServicePreferenceFragment { extends VolumeShortcutToggleAccessibilityServicePreferenceFragment {
private boolean mToggleSwitchWasInitiallyChecked; private boolean mToggleSwitchWasInitiallyChecked;

View File

@@ -130,8 +130,8 @@ public class AccessibilitySettingsTest {
} }
@Test @Test
public void getServiceSummary_invisibleType_shortcutDisabled_showsOffSummary() { public void getServiceSummary_invisibleToggle_shortcutDisabled_showsOffSummary() {
setInvisibleFragmentType(mServiceInfo); setInvisibleToggleFragmentType(mServiceInfo);
doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any()); doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
final CharSequence summary = AccessibilitySettings.getServiceSummary(mContext, final CharSequence summary = AccessibilitySettings.getServiceSummary(mContext,
@@ -277,7 +277,7 @@ public class AccessibilitySettingsTest {
when(mockInfo.getComponentName()).thenReturn(DUMMY_COMPONENT_NAME); when(mockInfo.getComponentName()).thenReturn(DUMMY_COMPONENT_NAME);
} }
private void setInvisibleFragmentType(AccessibilityServiceInfo info) { private void setInvisibleToggleFragmentType(AccessibilityServiceInfo info) {
info.getResolveInfo().serviceInfo.applicationInfo.targetSdkVersion = Build.VERSION_CODES.R; info.getResolveInfo().serviceInfo.applicationInfo.targetSdkVersion = Build.VERSION_CODES.R;
info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON; info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON;
} }

View File

@@ -102,36 +102,36 @@ public final class AccessibilityUtilTest {
} }
@Test @Test
public void getAccessibilityServiceFragmentType_targetSdkQ_legacyType() { public void getAccessibilityServiceFragmentType_targetSdkQ_volumeShortcutType() {
final AccessibilityServiceInfo info = getMockAccessibilityServiceInfo(); final AccessibilityServiceInfo info = getMockAccessibilityServiceInfo();
info.getResolveInfo().serviceInfo.applicationInfo.targetSdkVersion = Build.VERSION_CODES.Q; info.getResolveInfo().serviceInfo.applicationInfo.targetSdkVersion = Build.VERSION_CODES.Q;
info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON; info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON;
assertThat(AccessibilityUtil.getAccessibilityServiceFragmentType(info)).isEqualTo( assertThat(AccessibilityUtil.getAccessibilityServiceFragmentType(info)).isEqualTo(
AccessibilityUtil.AccessibilityServiceFragmentType.LEGACY); AccessibilityUtil.AccessibilityServiceFragmentType.VOLUME_SHORTCUT_TOGGLE);
} }
@Test @Test
public void getAccessibilityServiceFragmentType_targetSdkR_HaveA11yButton_headlessType() { public void getAccessibilityServiceFragmentType_targetSdkR_HaveA11yButton_invisibleType() {
final AccessibilityServiceInfo info = getMockAccessibilityServiceInfo(); final AccessibilityServiceInfo info = getMockAccessibilityServiceInfo();
info.getResolveInfo().serviceInfo.applicationInfo.targetSdkVersion = Build.VERSION_CODES.R; info.getResolveInfo().serviceInfo.applicationInfo.targetSdkVersion = Build.VERSION_CODES.R;
info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON; info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON;
assertThat(AccessibilityUtil.getAccessibilityServiceFragmentType(info)).isEqualTo( assertThat(AccessibilityUtil.getAccessibilityServiceFragmentType(info)).isEqualTo(
AccessibilityUtil.AccessibilityServiceFragmentType.INVISIBLE); AccessibilityUtil.AccessibilityServiceFragmentType.INVISIBLE_TOGGLE);
} }
@Test @Test
public void getAccessibilityServiceFragmentType_targetSdkR_NoA11yButton_intuitiveType() { public void getAccessibilityServiceFragmentType_targetSdkR_NoA11yButton_toggleType() {
final AccessibilityServiceInfo info = getMockAccessibilityServiceInfo(); final AccessibilityServiceInfo info = getMockAccessibilityServiceInfo();
info.getResolveInfo().serviceInfo.applicationInfo.targetSdkVersion = Build.VERSION_CODES.R; info.getResolveInfo().serviceInfo.applicationInfo.targetSdkVersion = Build.VERSION_CODES.R;
info.flags |= ~AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON; info.flags |= ~AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON;
assertThat(AccessibilityUtil.getAccessibilityServiceFragmentType(info)).isEqualTo( assertThat(AccessibilityUtil.getAccessibilityServiceFragmentType(info)).isEqualTo(
AccessibilityUtil.AccessibilityServiceFragmentType.INTUITIVE); AccessibilityUtil.AccessibilityServiceFragmentType.TOGGLE);
} }
@Test @Test