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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -130,8 +130,8 @@ public class AccessibilitySettingsTest {
}
@Test
public void getServiceSummary_invisibleType_shortcutDisabled_showsOffSummary() {
setInvisibleFragmentType(mServiceInfo);
public void getServiceSummary_invisibleToggle_shortcutDisabled_showsOffSummary() {
setInvisibleToggleFragmentType(mServiceInfo);
doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
final CharSequence summary = AccessibilitySettings.getServiceSummary(mContext,
@@ -277,7 +277,7 @@ public class AccessibilitySettingsTest {
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.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON;
}

View File

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