Loading src/com/android/settings/accessibility/AccessibilityEditDialogUtils.java +3 −11 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.settings.accessibility; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import android.content.Context; import android.content.DialogInterface; import android.content.res.TypedArray; Loading Loading @@ -245,27 +243,21 @@ public class AccessibilityEditDialogUtils { }); } private static boolean isGestureNavigateEnabled(Context context) { return context.getResources().getInteger( com.android.internal.R.integer.config_navBarInteractionMode) == NAV_BAR_MODE_GESTURAL; } private static CharSequence retrieveTitle(Context context) { return context.getString(isGestureNavigateEnabled(context) return context.getString(AccessibilityUtil.isGestureNavigateEnabled(context) ? R.string.accessibility_shortcut_edit_dialog_title_software_gesture : R.string.accessibility_shortcut_edit_dialog_title_software); } private static CharSequence retrieveSummary(Context context, int lineHeight) { return isGestureNavigateEnabled(context) return AccessibilityUtil.isGestureNavigateEnabled(context) ? context.getString( R.string.accessibility_shortcut_edit_dialog_summary_software_gesture) : getSummaryStringWithIcon(context, lineHeight); } private static int retrieveImageResId(Context context) { return isGestureNavigateEnabled(context) return AccessibilityUtil.isGestureNavigateEnabled(context) ? R.drawable.accessibility_shortcut_type_software_gesture : R.drawable.accessibility_shortcut_type_software; // TODO(b/142531156): Use vector drawable instead of temporal png file to avoid distorted. Loading src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java +1 −9 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.settings.accessibility; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import android.content.Context; import android.content.DialogInterface; import android.content.res.TypedArray; Loading Loading @@ -83,7 +81,7 @@ public class AccessibilityGestureNavigationTutorial { final AlertDialog alertDialog = createDialog(context, DialogType.LAUNCH_SERVICE_BY_ACCESSIBILITY_BUTTON); if (!isGestureNavigateEnabled(context)) { if (!AccessibilityUtil.isGestureNavigateEnabled(context)) { updateMessageWithIcon(context, alertDialog); } Loading Loading @@ -206,12 +204,6 @@ public class AccessibilityGestureNavigationTutorial { return colorResId; } private static boolean isGestureNavigateEnabled(Context context) { return context.getResources().getInteger( com.android.internal.R.integer.config_navBarInteractionMode) == NAV_BAR_MODE_GESTURAL; } private static boolean isTouchExploreOn(Context context) { return ((AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE)) .isTouchExplorationEnabled(); Loading src/com/android/settings/accessibility/AccessibilityUtil.java +63 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.settings.accessibility; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import android.accessibilityservice.AccessibilityServiceInfo; import android.content.Context; import android.os.Build; Loading Loading @@ -54,18 +56,78 @@ final class AccessibilityUtil { int INTUITIVE = 2; } /** * Annotation for different shortcut type UI type. * * {@code DEFAULT} for displaying default value. * {@code SOFTWARE} for displaying specifying the accessibility services or features which * choose accessibility button in the navigation bar as preferred shortcut. * {@code HARDWARE} for displaying specifying the accessibility services or features which * choose accessibility shortcut as preferred shortcut. * {@code TRIPLETAP} for displaying specifying magnification to be toggled via quickly * tapping screen 3 times as preferred shortcut. */ @Retention(RetentionPolicy.SOURCE) @IntDef({ ShortcutType.DEFAULT, ShortcutType.SOFTWARE, ShortcutType.HARDWARE, ShortcutType.TRIPLETAP, }) /** Denotes the shortcut type. */ public @interface ShortcutType { int DEFAULT = 0; int SOFTWARE = 1; // 1 << 0 int HARDWARE = 2; // 1 << 1 int TRIPLETAP = 4; // 1 << 2 } /** Denotes the accessibility enabled status */ @Retention(RetentionPolicy.SOURCE) public @interface State { int OFF = 0; int ON = 1; } /** * Return On/Off string according to the setting which specifies the integer value 1 or 0. This * setting is defined in the secure system settings {@link android.provider.Settings.Secure}. */ static CharSequence getSummary(Context context, String settingsSecureKey) { final boolean enabled = Settings.Secure.getInt(context.getContentResolver(), settingsSecureKey, 0) == 1; settingsSecureKey, State.OFF) == State.ON; final int resId = enabled ? R.string.accessibility_feature_state_on : R.string.accessibility_feature_state_off; return context.getResources().getText(resId); } /** * Capitalizes a string by capitalizing the first character and making the remaining characters * lower case. */ public static String capitalize(String stringToCapitalize) { if (stringToCapitalize == null) { return null; } StringBuilder capitalizedString = new StringBuilder(); if (stringToCapitalize.length() > 0) { capitalizedString.append(stringToCapitalize.substring(0, 1).toUpperCase()); if (stringToCapitalize.length() > 1) { capitalizedString.append(stringToCapitalize.substring(1).toLowerCase()); } } return capitalizedString.toString(); } /** Determines if a gesture navigation bar is being used. */ public static boolean isGestureNavigateEnabled(Context context) { return context.getResources().getInteger( com.android.internal.R.integer.config_navBarInteractionMode) == NAV_BAR_MODE_GESTURAL; } /** * Gets the corresponding fragment type of a given accessibility service * Loading src/com/android/settings/accessibility/LegacyAccessibilityServicePreferenceFragment.java +8 −3 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import android.view.View; import androidx.preference.PreferenceScreen; import com.android.settings.R; /** For accessibility services that target SDK <= Q. */ public class LegacyAccessibilityServicePreferenceFragment extends ToggleAccessibilityServicePreferenceFragment { Loading @@ -29,10 +31,13 @@ public class LegacyAccessibilityServicePreferenceFragment extends super.onViewCreated(view, savedInstanceState); final PreferenceScreen preferenceScreen = getPreferenceScreen(); final ShortcutPreference preference = preferenceScreen.findPreference( final ShortcutPreference shortcutPreference = preferenceScreen.findPreference( getShortcutPreferenceKey()); if (preference != null) { preference.setSettingsVisibility(View.GONE); if (shortcutPreference != null) { final CharSequence hardwareTitle = getPrefContext().getText( R.string.accessibility_shortcut_edit_dialog_title_hardware); shortcutPreference.setSummary(hardwareTitle); shortcutPreference.setSettingsVisibility(View.GONE); } } } src/com/android/settings/accessibility/MagnificationPreferenceFragment.java +1 −12 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.settings.accessibility; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import android.accessibilityservice.AccessibilityServiceInfo; import android.app.settings.SettingsEnums; import android.content.ComponentName; Loading @@ -25,7 +23,6 @@ import android.content.ContentResolver; import android.content.Context; import android.content.res.Resources; import android.os.Bundle; import android.provider.SearchIndexableResource; import android.provider.Settings; import android.text.TextUtils; import android.view.accessibility.AccessibilityManager; Loading @@ -36,12 +33,10 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.Indexable; import com.android.settings.search.actionbar.SearchMenuController; import com.android.settings.support.actionbar.HelpResourceProvider; import com.android.settingslib.search.SearchIndexable; import java.util.Arrays; import java.util.List; @SearchIndexable Loading Loading @@ -134,7 +129,7 @@ public final class MagnificationPreferenceFragment extends DashboardFragment { if (info.getComponentName().equals(assignedComponentName)) { final CharSequence assignedServiceName = info.getResolveInfo().loadLabel( context.getPackageManager()); final int messageId = isGestureNavigateEnabled(context) final int messageId = AccessibilityUtil.isGestureNavigateEnabled(context) ? R.string.accessibility_screen_magnification_gesture_navigation_warning : R.string.accessibility_screen_magnification_navbar_configuration_warning; return context.getString(messageId, assignedServiceName); Loading @@ -161,12 +156,6 @@ public final class MagnificationPreferenceFragment extends DashboardFragment { return res.getBoolean(com.android.internal.R.bool.config_showNavigationBar); } private static boolean isGestureNavigateEnabled(Context context) { return context.getResources().getInteger( com.android.internal.R.integer.config_navBarInteractionMode) == NAV_BAR_MODE_GESTURAL; } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider(R.xml.accessibility_magnification_settings) { Loading Loading
src/com/android/settings/accessibility/AccessibilityEditDialogUtils.java +3 −11 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.settings.accessibility; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import android.content.Context; import android.content.DialogInterface; import android.content.res.TypedArray; Loading Loading @@ -245,27 +243,21 @@ public class AccessibilityEditDialogUtils { }); } private static boolean isGestureNavigateEnabled(Context context) { return context.getResources().getInteger( com.android.internal.R.integer.config_navBarInteractionMode) == NAV_BAR_MODE_GESTURAL; } private static CharSequence retrieveTitle(Context context) { return context.getString(isGestureNavigateEnabled(context) return context.getString(AccessibilityUtil.isGestureNavigateEnabled(context) ? R.string.accessibility_shortcut_edit_dialog_title_software_gesture : R.string.accessibility_shortcut_edit_dialog_title_software); } private static CharSequence retrieveSummary(Context context, int lineHeight) { return isGestureNavigateEnabled(context) return AccessibilityUtil.isGestureNavigateEnabled(context) ? context.getString( R.string.accessibility_shortcut_edit_dialog_summary_software_gesture) : getSummaryStringWithIcon(context, lineHeight); } private static int retrieveImageResId(Context context) { return isGestureNavigateEnabled(context) return AccessibilityUtil.isGestureNavigateEnabled(context) ? R.drawable.accessibility_shortcut_type_software_gesture : R.drawable.accessibility_shortcut_type_software; // TODO(b/142531156): Use vector drawable instead of temporal png file to avoid distorted. Loading
src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java +1 −9 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.settings.accessibility; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import android.content.Context; import android.content.DialogInterface; import android.content.res.TypedArray; Loading Loading @@ -83,7 +81,7 @@ public class AccessibilityGestureNavigationTutorial { final AlertDialog alertDialog = createDialog(context, DialogType.LAUNCH_SERVICE_BY_ACCESSIBILITY_BUTTON); if (!isGestureNavigateEnabled(context)) { if (!AccessibilityUtil.isGestureNavigateEnabled(context)) { updateMessageWithIcon(context, alertDialog); } Loading Loading @@ -206,12 +204,6 @@ public class AccessibilityGestureNavigationTutorial { return colorResId; } private static boolean isGestureNavigateEnabled(Context context) { return context.getResources().getInteger( com.android.internal.R.integer.config_navBarInteractionMode) == NAV_BAR_MODE_GESTURAL; } private static boolean isTouchExploreOn(Context context) { return ((AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE)) .isTouchExplorationEnabled(); Loading
src/com/android/settings/accessibility/AccessibilityUtil.java +63 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.settings.accessibility; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import android.accessibilityservice.AccessibilityServiceInfo; import android.content.Context; import android.os.Build; Loading Loading @@ -54,18 +56,78 @@ final class AccessibilityUtil { int INTUITIVE = 2; } /** * Annotation for different shortcut type UI type. * * {@code DEFAULT} for displaying default value. * {@code SOFTWARE} for displaying specifying the accessibility services or features which * choose accessibility button in the navigation bar as preferred shortcut. * {@code HARDWARE} for displaying specifying the accessibility services or features which * choose accessibility shortcut as preferred shortcut. * {@code TRIPLETAP} for displaying specifying magnification to be toggled via quickly * tapping screen 3 times as preferred shortcut. */ @Retention(RetentionPolicy.SOURCE) @IntDef({ ShortcutType.DEFAULT, ShortcutType.SOFTWARE, ShortcutType.HARDWARE, ShortcutType.TRIPLETAP, }) /** Denotes the shortcut type. */ public @interface ShortcutType { int DEFAULT = 0; int SOFTWARE = 1; // 1 << 0 int HARDWARE = 2; // 1 << 1 int TRIPLETAP = 4; // 1 << 2 } /** Denotes the accessibility enabled status */ @Retention(RetentionPolicy.SOURCE) public @interface State { int OFF = 0; int ON = 1; } /** * Return On/Off string according to the setting which specifies the integer value 1 or 0. This * setting is defined in the secure system settings {@link android.provider.Settings.Secure}. */ static CharSequence getSummary(Context context, String settingsSecureKey) { final boolean enabled = Settings.Secure.getInt(context.getContentResolver(), settingsSecureKey, 0) == 1; settingsSecureKey, State.OFF) == State.ON; final int resId = enabled ? R.string.accessibility_feature_state_on : R.string.accessibility_feature_state_off; return context.getResources().getText(resId); } /** * Capitalizes a string by capitalizing the first character and making the remaining characters * lower case. */ public static String capitalize(String stringToCapitalize) { if (stringToCapitalize == null) { return null; } StringBuilder capitalizedString = new StringBuilder(); if (stringToCapitalize.length() > 0) { capitalizedString.append(stringToCapitalize.substring(0, 1).toUpperCase()); if (stringToCapitalize.length() > 1) { capitalizedString.append(stringToCapitalize.substring(1).toLowerCase()); } } return capitalizedString.toString(); } /** Determines if a gesture navigation bar is being used. */ public static boolean isGestureNavigateEnabled(Context context) { return context.getResources().getInteger( com.android.internal.R.integer.config_navBarInteractionMode) == NAV_BAR_MODE_GESTURAL; } /** * Gets the corresponding fragment type of a given accessibility service * Loading
src/com/android/settings/accessibility/LegacyAccessibilityServicePreferenceFragment.java +8 −3 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import android.view.View; import androidx.preference.PreferenceScreen; import com.android.settings.R; /** For accessibility services that target SDK <= Q. */ public class LegacyAccessibilityServicePreferenceFragment extends ToggleAccessibilityServicePreferenceFragment { Loading @@ -29,10 +31,13 @@ public class LegacyAccessibilityServicePreferenceFragment extends super.onViewCreated(view, savedInstanceState); final PreferenceScreen preferenceScreen = getPreferenceScreen(); final ShortcutPreference preference = preferenceScreen.findPreference( final ShortcutPreference shortcutPreference = preferenceScreen.findPreference( getShortcutPreferenceKey()); if (preference != null) { preference.setSettingsVisibility(View.GONE); if (shortcutPreference != null) { final CharSequence hardwareTitle = getPrefContext().getText( R.string.accessibility_shortcut_edit_dialog_title_hardware); shortcutPreference.setSummary(hardwareTitle); shortcutPreference.setSettingsVisibility(View.GONE); } } }
src/com/android/settings/accessibility/MagnificationPreferenceFragment.java +1 −12 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.settings.accessibility; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import android.accessibilityservice.AccessibilityServiceInfo; import android.app.settings.SettingsEnums; import android.content.ComponentName; Loading @@ -25,7 +23,6 @@ import android.content.ContentResolver; import android.content.Context; import android.content.res.Resources; import android.os.Bundle; import android.provider.SearchIndexableResource; import android.provider.Settings; import android.text.TextUtils; import android.view.accessibility.AccessibilityManager; Loading @@ -36,12 +33,10 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.Indexable; import com.android.settings.search.actionbar.SearchMenuController; import com.android.settings.support.actionbar.HelpResourceProvider; import com.android.settingslib.search.SearchIndexable; import java.util.Arrays; import java.util.List; @SearchIndexable Loading Loading @@ -134,7 +129,7 @@ public final class MagnificationPreferenceFragment extends DashboardFragment { if (info.getComponentName().equals(assignedComponentName)) { final CharSequence assignedServiceName = info.getResolveInfo().loadLabel( context.getPackageManager()); final int messageId = isGestureNavigateEnabled(context) final int messageId = AccessibilityUtil.isGestureNavigateEnabled(context) ? R.string.accessibility_screen_magnification_gesture_navigation_warning : R.string.accessibility_screen_magnification_navbar_configuration_warning; return context.getString(messageId, assignedServiceName); Loading @@ -161,12 +156,6 @@ public final class MagnificationPreferenceFragment extends DashboardFragment { return res.getBoolean(com.android.internal.R.bool.config_showNavigationBar); } private static boolean isGestureNavigateEnabled(Context context) { return context.getResources().getInteger( com.android.internal.R.integer.config_navBarInteractionMode) == NAV_BAR_MODE_GESTURAL; } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider(R.xml.accessibility_magnification_settings) { Loading