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:
@@ -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
|
||||||
|
@@ -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.
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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
|
@@ -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;
|
||||||
|
|
@@ -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;
|
||||||
|
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user