Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 69b897ad authored by Rhed Jao's avatar Rhed Jao
Browse files

A new setting key to hold targets of the a11y button

Roll back the changes of ACCESSIBILITY_BUTTON_TARGET_COMPONENT to
support previous behavior of the a11y button. Also, create another
setting key to hold shortcut targets of the a11y button which is
assigned by the user from the settings app.

Bug: 152263232
Test: atest SettingsProviderTest
Change-Id: I7a70e8c8495cefe6632efddbb322a323aa1168c7
parent 3ad67328
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -6598,11 +6598,9 @@ public final class Settings {
                "accessibility_shortcut_target_service";
        /**
         * Setting specifying the accessibility services, accessibility shortcut targets,
         * or features to be toggled via the accessibility button in the navigation bar.
         *
         * <p> This is a colon-separated string list which contains the flattened
         * {@link ComponentName} and the class name of a system class implementing a supported
         * Setting specifying the accessibility service or feature to be toggled via the
         * accessibility button in the navigation bar. This is either a flattened
         * {@link ComponentName} or the class name of a system class implementing a supported
         * accessibility feature.
         * @hide
         */
@@ -6611,15 +6609,14 @@ public final class Settings {
        /**
         * Setting specifying the accessibility services, accessibility shortcut targets,
         * or features to be toggled via the long press accessibility button in the navigation bar.
         * or features to be toggled via the accessibility button in the navigation bar.
         *
         * <p> This is a colon-separated string list which contains the flattened
         * {@link ComponentName} and the class name of a system class implementing a supported
         * accessibility feature.
         * @hide
         */
        public static final String ACCESSIBILITY_BUTTON_LONG_PRESS_TARGETS =
                "accessibility_button_long_press_targets";
        public static final String ACCESSIBILITY_BUTTON_TARGETS = "accessibility_button_targets";
        /**
         * The system class name of magnification controller which is a target to be toggled via
@@ -6784,8 +6781,8 @@ public final class Settings {
         * zoom in the display content and is targeted to low vision users. The current
         * magnification scale is controlled by {@link #ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE}.
         *
         * @deprecated Use {@link #ACCESSIBILITY_BUTTON_TARGET_COMPONENT} instead.
         * {@link #ACCESSIBILITY_BUTTON_TARGET_COMPONENT} holds the magnification system class name
         * @deprecated Use {@link #ACCESSIBILITY_BUTTON_TARGETS} instead.
         * {@link #ACCESSIBILITY_BUTTON_TARGETS} holds the magnification system class name
         * when navigation bar magnification is enabled.
         * @hide
         */
+2 −3
Original line number Diff line number Diff line
@@ -77,9 +77,8 @@ message SecureSettingsProto {
        optional SettingProto interactive_ui_timeout_ms = 33 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Settings for accessibility magnification.
        optional SettingProto accessibility_magnification_mode = 34 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto accessibility_magnification_capability = 35 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto button_long_press_targets = 36 [ (android.privacy).dest = DEST_AUTOMATIC ];

        optional SettingProto button_targets = 35 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto accessibility_magnification_capability = 36 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Accessibility accessibility = 2;

+1 −1
Original line number Diff line number Diff line
@@ -164,7 +164,7 @@ public class SecureSettings {
        Settings.Secure.AWARE_TAP_PAUSE_TOUCH_COUNT,
        Settings.Secure.PEOPLE_STRIP,
        Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE,
        Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS,
        Settings.Secure.ACCESSIBILITY_MAGNIFICATION_CAPABILITY,
        Settings.Secure.ACCESSIBILITY_BUTTON_LONG_PRESS_TARGETS,
    };
}
+3 −5
Original line number Diff line number Diff line
@@ -25,10 +25,10 @@ import static android.provider.settings.validators.SettingsValidators.COMMA_SEPA
import static android.provider.settings.validators.SettingsValidators.COMPONENT_NAME_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.JSON_OBJECT_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.LOCALE_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.NONE_NEGATIVE_LONG_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.NON_NEGATIVE_INTEGER_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.NULLABLE_COMPONENT_NAME_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.PACKAGE_NAME_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.NONE_NEGATIVE_LONG_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.TILE_LIST_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.TTS_LIST_VALIDATOR;

@@ -78,9 +78,7 @@ public class SecureSettingsValidators {
                ACCESSIBILITY_SHORTCUT_TARGET_LIST_VALIDATOR);
        // technically either ComponentName or class name, but there's proper value
        // validation at callsites, so allow any non-null string
        VALIDATORS.put(
                Secure.ACCESSIBILITY_BUTTON_TARGET_COMPONENT,
                ACCESSIBILITY_SHORTCUT_TARGET_LIST_VALIDATOR);
        VALIDATORS.put(Secure.ACCESSIBILITY_BUTTON_TARGET_COMPONENT, value -> value != null);
        VALIDATORS.put(Secure.ACCESSIBILITY_SHORTCUT_DIALOG_SHOWN, BOOLEAN_VALIDATOR);
        VALIDATORS.put(Secure.ACCESSIBILITY_SHORTCUT_ENABLED, BOOLEAN_VALIDATOR);
        VALIDATORS.put(Secure.ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN, BOOLEAN_VALIDATOR);
@@ -253,7 +251,7 @@ public class SecureSettingsValidators {
                        Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN,
                        Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL));
        VALIDATORS.put(
                Secure.ACCESSIBILITY_BUTTON_LONG_PRESS_TARGETS,
                Secure.ACCESSIBILITY_BUTTON_TARGETS,
                ACCESSIBILITY_SHORTCUT_TARGET_LIST_VALIDATOR);
    }
}
+3 −3
Original line number Diff line number Diff line
@@ -1813,12 +1813,12 @@ class SettingsProtoDumpUtil {
        dumpSetting(s, p,
                Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE,
                SecureSettingsProto.Accessibility.ACCESSIBILITY_MAGNIFICATION_MODE);
        dumpSetting(s, p,
                Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS,
                SecureSettingsProto.Accessibility.BUTTON_TARGETS);
        dumpSetting(s, p,
                Settings.Secure.ACCESSIBILITY_MAGNIFICATION_CAPABILITY,
                SecureSettingsProto.Accessibility.ACCESSIBILITY_MAGNIFICATION_CAPABILITY);
        dumpSetting(s, p,
                Settings.Secure.ACCESSIBILITY_BUTTON_LONG_PRESS_TARGETS,
                SecureSettingsProto.Accessibility.BUTTON_LONG_PRESS_TARGETS);
        p.end(accessibilityToken);

        final long adaptiveSleepToken = p.start(SecureSettingsProto.ADAPTIVE_SLEEP);