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

Commit 0589ab0a authored by Peter_Liang's avatar Peter_Liang Committed by Phil Weaver
Browse files

Rollback chooser menu to version Q behavior for accessibility button (2/n).

Allow separate Activities to handle the multiple-target case for the hardware and software shortcuts. Migrate from an extra to an explicit class so the Intent dispatch will launch the correct Activity for the particular shortcut.

Bug: 151294664
Test: manual test
Change-Id: I54bb1d3ab91e2757c465e8763786d0234f6d4ea8
parent b8bf55c8
Loading
Loading
Loading
Loading
+3 −12
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ public final class AccessibilityManager {
     * Activity action: Launch UI to manage which accessibility service or feature is assigned
     * to the navigation bar Accessibility button.
     * <p>
     * Input: {@link #EXTRA_SHORTCUT_TYPE} is the shortcut type.
     * Input: Nothing.
     * </p>
     * <p>
     * Output: Nothing.
@@ -137,16 +137,7 @@ public final class AccessibilityManager {
            "com.android.internal.intent.action.CHOOSE_ACCESSIBILITY_BUTTON";

    /**
     * Used as an int extra field in {@link #ACTION_CHOOSE_ACCESSIBILITY_BUTTON} intent to specify
     * the shortcut type.
     *
     * @hide
     */
    public static final String EXTRA_SHORTCUT_TYPE =
            "com.android.internal.intent.extra.SHORTCUT_TYPE";

    /**
     * Used as an int value for {@link #EXTRA_SHORTCUT_TYPE} to represent the accessibility button
     * Used as an int value for accessibility chooser activity to represent the accessibility button
     * shortcut type.
     *
     * @hide
@@ -154,7 +145,7 @@ public final class AccessibilityManager {
    public static final int ACCESSIBILITY_BUTTON = 0;

    /**
     * Used as an int value for {@link #EXTRA_SHORTCUT_TYPE} to represent hardware key shortcut,
     * Used as an int value for accessibility chooser activity to represent hardware key shortcut,
     * such as volume key button.
     *
     * @hide
+5 −0
Original line number Diff line number Diff line
@@ -27,6 +27,11 @@ import java.lang.annotation.RetentionPolicy;
public final class ShortcutConstants {
    private ShortcutConstants() {}

    /**
     * Package name of the accessibility chooser and used for {@link android.content.Intent}.
     */
    public static final String CHOOSER_PACKAGE_NAME = "android";

    public static final char SERVICES_SEPARATOR = ':';

    /**
+1 −9
Original line number Diff line number Diff line
@@ -18,10 +18,8 @@ package com.android.internal.accessibility.dialog;

import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;

import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getTargets;
import static com.android.internal.util.Preconditions.checkArgument;

import android.annotation.Nullable;
import android.app.Activity;
@@ -50,12 +48,6 @@ public class AccessibilityButtonChooserActivity extends Activity {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.accessibility_button_chooser);

        final int shortcutType = getIntent().getIntExtra(AccessibilityManager.EXTRA_SHORTCUT_TYPE,
                /* unexpectedShortcutType */ -1);
        final boolean existInShortcutType = (shortcutType == ACCESSIBILITY_BUTTON)
                || (shortcutType == ACCESSIBILITY_SHORTCUT_KEY);
        checkArgument(existInShortcutType, "Unexpected shortcut type: " + shortcutType);

        final ResolverDrawerLayout rdl = findViewById(R.id.contentPanel);
        if (rdl != null) {
            rdl.setOnDismissedListener(this::finish);
@@ -89,7 +81,7 @@ public class AccessibilityButtonChooserActivity extends Activity {
            prompt.setVisibility(View.VISIBLE);
        }

        mTargets.addAll(getTargets(this, shortcutType));
        mTargets.addAll(getTargets(this, ACCESSIBILITY_BUTTON));

        final GridView gridview = findViewById(R.id.accessibility_button_chooser_grid);
        gridview.setAdapter(new ButtonTargetAdapter(mTargets));
+1 −9
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import static com.android.internal.accessibility.common.ShortcutConstants.Shortc
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.createEnableDialogContentView;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getInstalledTargets;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getTargets;
import static com.android.internal.util.Preconditions.checkArgument;

import android.annotation.Nullable;
import android.app.Activity;
@@ -33,7 +32,6 @@ import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.accessibility.AccessibilityManager;
import android.widget.AdapterView;

import com.android.internal.R;
@@ -47,7 +45,7 @@ import java.util.List;
 */
public class AccessibilityShortcutChooserActivity extends Activity {
    @ShortcutType
    private int mShortcutType;
    private final int mShortcutType = ACCESSIBILITY_SHORTCUT_KEY;
    private final List<AccessibilityTarget> mTargets = new ArrayList<>();
    private AlertDialog mMenuDialog;
    private AlertDialog mPermissionDialog;
@@ -62,12 +60,6 @@ public class AccessibilityShortcutChooserActivity extends Activity {
            requestWindowFeature(Window.FEATURE_NO_TITLE);
        }

        mShortcutType = getIntent().getIntExtra(AccessibilityManager.EXTRA_SHORTCUT_TYPE,
                /* unexpectedShortcutType */ -1);
        final boolean existInShortcutType = (mShortcutType == ACCESSIBILITY_BUTTON)
                || (mShortcutType == ACCESSIBILITY_SHORTCUT_KEY);
        checkArgument(existInShortcutType, "Unexpected shortcut type: " + mShortcutType);

        mTargets.addAll(getTargets(this, mShortcutType));

        final String selectDialogTitle =
+1 −0
Original line number Diff line number Diff line
@@ -5073,6 +5073,7 @@
                  android:process=":ui"
                  android:visibleToInstantApps="true">
            <intent-filter>
                <action android:name="com.android.internal.intent.action.CHOOSE_ACCESSIBILITY_BUTTON" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
Loading