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

Commit 9fbf51d4 authored by Menghan Li's avatar Menghan Li Committed by Android (Google) Code Review
Browse files

Merge "Support accessibility shortcut secondary action (9/n)"

parents 1b5b3fc3 87147f55
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -4795,8 +4795,8 @@
    <string name="accessibility_screen_magnification_navbar_title">Magnify with shortcut</string>
    <!-- Summary for the accessibility magnification setting indicating both "Magnify with button" and "Magnify with triple-tap" are enabled [CHAR LIMIT=50] -->
    <string name="accessibility_screen_magnification_state_navbar_gesture">Magnify with shortcut &amp; triple-tap</string>
    <!-- Title for the footer text to explain what Magnify does. [CHAR LIMIT=35] -->
    <string name="accessibility_screen_magnification_about">About Magnify</string>
    <!-- Title for the footer text to explain what accessibility service does. [CHAR LIMIT=35] -->
    <string name="accessibility_footer_title">About <xliff:g id="service" example="Select to Speak">%1$s</xliff:g></string>
    <!-- Title for the footer text to explain what option accessibility service does. [CHAR LIMIT=35] -->
    <string name="accessibility_screen_option">Options</string>
    <!-- Summary for the accessibility preference to enable screen magnification. [CHAR LIMIT=25] -->
+13 −7
Original line number Diff line number Diff line
@@ -32,11 +32,17 @@
        settings:allowDividerBelow="true"
        settings:searchable="false" />

    <PreferenceCategory
        android:key="color_inversion_footer_category">

        <com.android.settingslib.widget.FooterPreference
            android:key="color_inversion_footer"
            android:persistent="false"
            android:selectable="false"
            settings:allowDividerAbove="false"
            android:title="@string/accessibility_display_inversion_preference_subtitle"
        settings:allowDividerAbove="true"
            settings:searchable="false" />

    </PreferenceCategory>

</PreferenceScreen>
+34 −22
Original line number Diff line number Diff line
@@ -26,14 +26,18 @@
        android:persistent="false"
        android:selectable="false"
        android:title="@string/summary_placeholder"
        settings:allowDividerBelow="true"
        settings:searchable="false"/>

    <PreferenceCategory
        android:title="@string/daltonizer_type"
        android:key="daltonizer_mode_category" >

        <com.android.settingslib.widget.RadioButtonPreference
            android:key="daltonizer_mode_deuteranomaly"
            android:persistent="false"
            android:summary="@string/daltonizer_mode_deuteranomaly_summary"
        android:title="@string/daltonizer_mode_deuteranomaly_title"
        settings:allowDividerAbove="true" />
            android:title="@string/daltonizer_mode_deuteranomaly_title" />

        <com.android.settingslib.widget.RadioButtonPreference
            android:key="daltonizer_mode_protanomaly"
@@ -47,10 +51,18 @@
            android:summary="@string/daltonizer_mode_tritanomaly_summary"
            android:title="@string/daltonizer_mode_tritanomaly_title" />

    </PreferenceCategory>

    <PreferenceCategory
        android:key="daltonizer_footer_category" >

        <com.android.settingslib.widget.FooterPreference
            android:key="daltonizer_footer"
            android:persistent="false"
            android:selectable="false"
            settings:allowDividerAbove="false"
            android:title="@string/accessibility_display_daltonizer_preference_subtitle"
            settings:searchable="false" />

    </PreferenceCategory>
</PreferenceScreen>
+11 −5
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import android.view.View;
import android.view.accessibility.AccessibilityManager;
import android.widget.CheckBox;

import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;

import com.android.internal.widget.LockPatternUtils;
@@ -66,7 +67,6 @@ public class ToggleAccessibilityServicePreferenceFragment extends

    private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
    private static final String EXTRA_SHORTCUT_TYPE = "shortcut_type";
    private ShortcutPreference mShortcutPreference;
    private int mUserShortcutType = UserShortcutType.DEFAULT;
    // Used to restore the edit dialog status.
    private int mUserShortcutTypeCache = UserShortcutType.DEFAULT;
@@ -116,13 +116,13 @@ public class ToggleAccessibilityServicePreferenceFragment extends

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        // Restore the user shortcut type.
        if (savedInstanceState != null && savedInstanceState.containsKey(EXTRA_SHORTCUT_TYPE)) {
            mUserShortcutTypeCache = savedInstanceState.getInt(EXTRA_SHORTCUT_TYPE,
                    UserShortcutType.DEFAULT);
        }
        initShortcutPreference();
        super.onViewCreated(view, savedInstanceState);
    }

    @Override
@@ -372,6 +372,15 @@ public class ToggleAccessibilityServicePreferenceFragment extends
        }
    }

    @Override
    protected void updateFooterTitle(PreferenceCategory category) {
        final AccessibilityServiceInfo info = getAccessibilityServiceInfo();
        final String titleText = (info == null) ? "" :
                getString(R.string.accessibility_footer_title,
                        info.getResolveInfo().loadLabel(getPackageManager()));
        category.setTitle(titleText);
    }

    private void initShortcutPreference() {
        final PreferenceScreen preferenceScreen = getPreferenceScreen();
        mShortcutPreference = new ShortcutPreference(
@@ -380,9 +389,6 @@ public class ToggleAccessibilityServicePreferenceFragment extends
        mShortcutPreference.setKey(getShortcutPreferenceKey());
        mShortcutPreference.setTitle(R.string.accessibility_shortcut_title);
        mShortcutPreference.setOnClickListener(this);
        // Put the shortcutPreference before settingsPreference.
        mShortcutPreference.setOrder(-1);
        preferenceScreen.addPreference(mShortcutPreference);
    }

    private void updateShortcutPreference() {
+28 −11
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import android.widget.Switch;

import androidx.appcompat.app.AlertDialog;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
@@ -58,11 +59,11 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere

    private static final String ENABLED = Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED;
    private static final String PREVIEW_PREFERENCE_KEY = "color_inversion_preview";
    private static final String CATEGORY_FOOTER_KEY = "color_inversion_footer_category";
    private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
    private static final int DIALOG_ID_EDIT_SHORTCUT = 1;
    private static final String EXTRA_SHORTCUT_TYPE = "shortcut_type";
    private final Handler mHandler = new Handler();
    private ShortcutPreference mShortcutPreference;
    private SettingsContentObserver mSettingsContentObserver;
    private int mUserShortcutType = UserShortcutType.DEFAULT;
    // Used to restore the edit dialog status.
@@ -109,6 +110,13 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere
                R.string.accessibility_display_inversion_switch_title);
    }

    @Override
    protected void updateFooterTitle(PreferenceCategory category) {
        final String titleText = getString(R.string.accessibility_footer_title,
                getString(R.string.accessibility_display_inversion_preference_title));
        category.setTitle(titleText);
    }

    @Override
    public void onSwitchChanged(Switch switchView, boolean isChecked) {
        Settings.Secure.putInt(getContentResolver(), ENABLED, isChecked ? State.ON : State.OFF);
@@ -125,13 +133,6 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Restore the user shortcut type.
        if (savedInstanceState != null && savedInstanceState.containsKey(EXTRA_SHORTCUT_TYPE)) {
            mUserShortcutTypeCache = savedInstanceState.getInt(EXTRA_SHORTCUT_TYPE,
                    UserShortcutType.DEFAULT);
        }
        initShortcutPreference();

        final List<String> enableServiceFeatureKeys = new ArrayList<>(/* initialCapacity= */ 1);
        enableServiceFeatureKeys.add(ENABLED);
        mSettingsContentObserver = new SettingsContentObserver(mHandler, enableServiceFeatureKeys) {
@@ -145,6 +146,25 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere
        return super.onCreateView(inflater, container, savedInstanceState);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        // Restore the user shortcut type.
        if (savedInstanceState != null && savedInstanceState.containsKey(EXTRA_SHORTCUT_TYPE)) {
            mUserShortcutTypeCache = savedInstanceState.getInt(EXTRA_SHORTCUT_TYPE,
                    UserShortcutType.DEFAULT);
        }
        initShortcutPreference();

        super.onViewCreated(view, savedInstanceState);

        final PreferenceScreen preferenceScreen = getPreferenceScreen();
        preferenceScreen.setOrderingAsAdded(false);
        final PreferenceCategory footerCategory = preferenceScreen.findPreference(
                CATEGORY_FOOTER_KEY);
        updateFooterTitle(footerCategory);
        footerCategory.setOrder(Integer.MAX_VALUE);
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        outState.putInt(EXTRA_SHORTCUT_TYPE, mUserShortcutTypeCache);
@@ -316,9 +336,6 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere
        mShortcutPreference.setKey(getShortcutPreferenceKey());
        mShortcutPreference.setTitle(R.string.accessibility_shortcut_title);
        mShortcutPreference.setOnClickListener(this);
        // Put the shortcutPreference before previewPreference.
        mShortcutPreference.setOrder(previewPreference.getOrder() - 1);
        preferenceScreen.addPreference(mShortcutPreference);
    }

    private void updateShortcutPreference() {
Loading