Provides an ordered array of shortcut types so Settings presents shortcuts in the desired order
NO_IFTTT=corrects ui order Flag: android.provider.a11y_standalone_gesture_enabled Test: atest AccessibilityUtilTest Bug: 371463731 Change-Id: Ia1864076faa281cf57c469a2d0d34f859858d859
This commit is contained in:
@@ -90,11 +90,5 @@
|
|||||||
settings:allowDividerAbove="false"
|
settings:allowDividerAbove="false"
|
||||||
settings:allowDividerBelow="false"
|
settings:allowDividerBelow="false"
|
||||||
settings:controller="com.android.settings.accessibility.shortcuts.TripleTapShortcutOptionController" />
|
settings:controller="com.android.settings.accessibility.shortcuts.TripleTapShortcutOptionController" />
|
||||||
<!--
|
<!-- LINT.ThenChange(/src/com/android/settings/accessibility/AccessibilityUtil.java:shortcut_type_ui_order) -->
|
||||||
LINT.ThenChange(
|
|
||||||
/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java:shortcut_type_ui_order,
|
|
||||||
/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java:shortcut_type_ui_order,
|
|
||||||
/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java:shortcut_type_ui_order
|
|
||||||
)
|
|
||||||
-->
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
@@ -64,7 +64,6 @@ import androidx.core.widget.TextViewCompat;
|
|||||||
import androidx.viewpager.widget.PagerAdapter;
|
import androidx.viewpager.widget.PagerAdapter;
|
||||||
import androidx.viewpager.widget.ViewPager;
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
import com.android.internal.accessibility.common.ShortcutConstants;
|
|
||||||
import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
|
import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
|
||||||
import com.android.internal.accessibility.util.ShortcutUtils;
|
import com.android.internal.accessibility.util.ShortcutUtils;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -490,11 +489,10 @@ public final class AccessibilityShortcutsTutorial {
|
|||||||
static List<TutorialPage> createShortcutTutorialPages(
|
static List<TutorialPage> createShortcutTutorialPages(
|
||||||
@NonNull Context context, int shortcutTypes, @NonNull CharSequence featureName,
|
@NonNull Context context, int shortcutTypes, @NonNull CharSequence featureName,
|
||||||
boolean inSetupWizard) {
|
boolean inSetupWizard) {
|
||||||
// LINT.IfChange(shortcut_type_ui_order)
|
|
||||||
final List<TutorialPage> tutorialPages = new ArrayList<>();
|
final List<TutorialPage> tutorialPages = new ArrayList<>();
|
||||||
int buttonMode = ShortcutUtils.getButtonMode(context, context.getUserId());
|
int buttonMode = ShortcutUtils.getButtonMode(context, context.getUserId());
|
||||||
|
|
||||||
for (int shortcutType: ShortcutConstants.USER_SHORTCUT_TYPES) {
|
for (int shortcutType: AccessibilityUtil.SHORTCUTS_ORDER_IN_UI) {
|
||||||
if ((shortcutTypes & shortcutType) == 0) {
|
if ((shortcutTypes & shortcutType) == 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -506,7 +504,6 @@ public final class AccessibilityShortcutsTutorial {
|
|||||||
createShortcutTutorialPage(
|
createShortcutTutorialPage(
|
||||||
context, shortcutType, buttonMode, featureName, inSetupWizard));
|
context, shortcutType, buttonMode, featureName, inSetupWizard));
|
||||||
}
|
}
|
||||||
// LINT.ThenChange(/res/xml/accessibility_edit_shortcuts.xml:shortcut_type_ui_order)
|
|
||||||
|
|
||||||
return tutorialPages;
|
return tutorialPages;
|
||||||
}
|
}
|
||||||
|
@@ -50,7 +50,6 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.annotation.StringRes;
|
import androidx.annotation.StringRes;
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.android.internal.accessibility.common.ShortcutConstants;
|
|
||||||
import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
|
import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
|
||||||
import com.android.internal.accessibility.util.ShortcutUtils;
|
import com.android.internal.accessibility.util.ShortcutUtils;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -66,6 +65,16 @@ import java.util.StringJoiner;
|
|||||||
|
|
||||||
/** Provides utility methods to accessibility settings only. */
|
/** Provides utility methods to accessibility settings only. */
|
||||||
public final class AccessibilityUtil {
|
public final class AccessibilityUtil {
|
||||||
|
// LINT.IfChange(shortcut_type_ui_order)
|
||||||
|
static final int[] SHORTCUTS_ORDER_IN_UI = {
|
||||||
|
QUICK_SETTINGS,
|
||||||
|
SOFTWARE, // FAB displays before gesture. Navbar displays without gesture.
|
||||||
|
GESTURE,
|
||||||
|
HARDWARE,
|
||||||
|
TWOFINGER_DOUBLETAP,
|
||||||
|
TRIPLETAP
|
||||||
|
};
|
||||||
|
// LINT.ThenChange(/res/xml/accessibility_edit_shortcuts.xml:shortcut_type_ui_order)
|
||||||
|
|
||||||
private AccessibilityUtil(){}
|
private AccessibilityUtil(){}
|
||||||
|
|
||||||
@@ -344,7 +353,7 @@ public final class AccessibilityUtil {
|
|||||||
*/
|
*/
|
||||||
static boolean hasValuesInSettings(Context context, int shortcutTypes,
|
static boolean hasValuesInSettings(Context context, int shortcutTypes,
|
||||||
@NonNull ComponentName componentName) {
|
@NonNull ComponentName componentName) {
|
||||||
for (int shortcutType : ShortcutConstants.USER_SHORTCUT_TYPES) {
|
for (int shortcutType : AccessibilityUtil.SHORTCUTS_ORDER_IN_UI) {
|
||||||
if (!android.view.accessibility.Flags.a11yQsShortcut()) {
|
if (!android.view.accessibility.Flags.a11yQsShortcut()) {
|
||||||
if ((shortcutType & QUICK_SETTINGS) == QUICK_SETTINGS) {
|
if ((shortcutType & QUICK_SETTINGS) == QUICK_SETTINGS) {
|
||||||
continue;
|
continue;
|
||||||
@@ -395,7 +404,7 @@ public final class AccessibilityUtil {
|
|||||||
static int getUserShortcutTypesFromSettings(Context context,
|
static int getUserShortcutTypesFromSettings(Context context,
|
||||||
@NonNull ComponentName componentName) {
|
@NonNull ComponentName componentName) {
|
||||||
int shortcutTypes = DEFAULT;
|
int shortcutTypes = DEFAULT;
|
||||||
for (int shortcutType : ShortcutConstants.USER_SHORTCUT_TYPES) {
|
for (int shortcutType : AccessibilityUtil.SHORTCUTS_ORDER_IN_UI) {
|
||||||
if (!android.view.accessibility.Flags.a11yQsShortcut()) {
|
if (!android.view.accessibility.Flags.a11yQsShortcut()) {
|
||||||
if ((shortcutType & QUICK_SETTINGS) == QUICK_SETTINGS) {
|
if ((shortcutType & QUICK_SETTINGS) == QUICK_SETTINGS) {
|
||||||
continue;
|
continue;
|
||||||
@@ -511,8 +520,7 @@ public final class AccessibilityUtil {
|
|||||||
public static CharSequence getShortcutSummaryList(Context context, int shortcutTypes) {
|
public static CharSequence getShortcutSummaryList(Context context, int shortcutTypes) {
|
||||||
final List<CharSequence> list = new ArrayList<>();
|
final List<CharSequence> list = new ArrayList<>();
|
||||||
|
|
||||||
// LINT.IfChange(shortcut_type_ui_order)
|
for (int shortcutType : AccessibilityUtil.SHORTCUTS_ORDER_IN_UI) {
|
||||||
for (int shortcutType : ShortcutConstants.USER_SHORTCUT_TYPES) {
|
|
||||||
if (!android.view.accessibility.Flags.a11yQsShortcut()
|
if (!android.view.accessibility.Flags.a11yQsShortcut()
|
||||||
&& (shortcutType & QUICK_SETTINGS) == QUICK_SETTINGS) {
|
&& (shortcutType & QUICK_SETTINGS) == QUICK_SETTINGS) {
|
||||||
continue;
|
continue;
|
||||||
@@ -548,7 +556,6 @@ public final class AccessibilityUtil {
|
|||||||
list.sort(CharSequence::compare);
|
list.sort(CharSequence::compare);
|
||||||
return CaseMap.toTitle().wholeString().noLowercase().apply(Locale.getDefault(), /* iter= */
|
return CaseMap.toTitle().wholeString().noLowercase().apply(Locale.getDefault(), /* iter= */
|
||||||
null, LocaleUtils.getConcatenatedString(list));
|
null, LocaleUtils.getConcatenatedString(list));
|
||||||
// LINT.ThenChange(/res/xml/accessibility_edit_shortcuts.xml:shortcut_type_ui_order)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
@@ -30,7 +30,6 @@ import android.view.accessibility.Flags;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.android.internal.accessibility.common.ShortcutConstants;
|
|
||||||
import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
|
import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
|
||||||
import com.android.internal.accessibility.util.ShortcutUtils;
|
import com.android.internal.accessibility.util.ShortcutUtils;
|
||||||
|
|
||||||
@@ -123,7 +122,7 @@ public final class PreferredShortcuts {
|
|||||||
public static void updatePreferredShortcutsFromSettings(
|
public static void updatePreferredShortcutsFromSettings(
|
||||||
@NonNull Context context, @NonNull Set<String> components) {
|
@NonNull Context context, @NonNull Set<String> components) {
|
||||||
final Map<Integer, Set<String>> shortcutTypeToTargets = new ArrayMap<>();
|
final Map<Integer, Set<String>> shortcutTypeToTargets = new ArrayMap<>();
|
||||||
for (int shortcutType : ShortcutConstants.USER_SHORTCUT_TYPES) {
|
for (int shortcutType : AccessibilityUtil.SHORTCUTS_ORDER_IN_UI) {
|
||||||
if (!Flags.a11yQsShortcut()
|
if (!Flags.a11yQsShortcut()
|
||||||
&& shortcutType == QUICK_SETTINGS) {
|
&& shortcutType == QUICK_SETTINGS) {
|
||||||
// Skip saving quick setting as preferred shortcut option when flag is not enabled
|
// Skip saving quick setting as preferred shortcut option when flag is not enabled
|
||||||
|
@@ -55,7 +55,6 @@ import androidx.preference.Preference;
|
|||||||
import androidx.preference.PreferenceCategory;
|
import androidx.preference.PreferenceCategory;
|
||||||
import androidx.preference.SwitchPreferenceCompat;
|
import androidx.preference.SwitchPreferenceCompat;
|
||||||
|
|
||||||
import com.android.internal.accessibility.common.ShortcutConstants;
|
|
||||||
import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
|
import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.server.accessibility.Flags;
|
import com.android.server.accessibility.Flags;
|
||||||
@@ -740,7 +739,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static boolean hasMagnificationValuesInSettings(Context context, int shortcutTypes) {
|
static boolean hasMagnificationValuesInSettings(Context context, int shortcutTypes) {
|
||||||
for (int shortcutType : ShortcutConstants.USER_SHORTCUT_TYPES) {
|
for (int shortcutType : AccessibilityUtil.SHORTCUTS_ORDER_IN_UI) {
|
||||||
if ((shortcutTypes & shortcutType) == 0) {
|
if ((shortcutTypes & shortcutType) == 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -791,7 +790,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
|||||||
|
|
||||||
private static int getUserShortcutTypeFromSettings(Context context) {
|
private static int getUserShortcutTypeFromSettings(Context context) {
|
||||||
int shortcutTypes = DEFAULT;
|
int shortcutTypes = DEFAULT;
|
||||||
for (int shortcutType : ShortcutConstants.USER_SHORTCUT_TYPES) {
|
for (int shortcutType : AccessibilityUtil.SHORTCUTS_ORDER_IN_UI) {
|
||||||
if ((shortcutType & (TWOFINGER_DOUBLETAP | QUICK_SETTINGS | GESTURE | TRIPLETAP))
|
if ((shortcutType & (TWOFINGER_DOUBLETAP | QUICK_SETTINGS | GESTURE | TRIPLETAP))
|
||||||
== shortcutType
|
== shortcutType
|
||||||
&& !android.view.accessibility.Flags.a11yQsShortcut()) {
|
&& !android.view.accessibility.Flags.a11yQsShortcut()) {
|
||||||
|
Reference in New Issue
Block a user