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

Commit 8ab940ab authored by Michael Wright's avatar Michael Wright
Browse files

Add extra to ASSIST intent to indicate potential input type

This lets Now and other assistance apps know to start up expecting a
specific type of input (e.g.  keyboard).

Bug: 16355810
Change-Id: I158e416ef8310a01cb22b19fd5b6850d2429e266
parent 3e9a1343
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -7831,6 +7831,7 @@ package android.content {
    field public static final java.lang.String EXTRA_ALLOW_MULTIPLE = "android.intent.extra.ALLOW_MULTIPLE";
    field public static final java.lang.String EXTRA_ALLOW_MULTIPLE = "android.intent.extra.ALLOW_MULTIPLE";
    field public static final deprecated java.lang.String EXTRA_ALLOW_REPLACE = "android.intent.extra.ALLOW_REPLACE";
    field public static final deprecated java.lang.String EXTRA_ALLOW_REPLACE = "android.intent.extra.ALLOW_REPLACE";
    field public static final java.lang.String EXTRA_ASSIST_CONTEXT = "android.intent.extra.ASSIST_CONTEXT";
    field public static final java.lang.String EXTRA_ASSIST_CONTEXT = "android.intent.extra.ASSIST_CONTEXT";
    field public static final java.lang.String EXTRA_ASSIST_INPUT_HINT_KEYBOARD = "android.intent.extra.ASSIST_INPUT_HINT_KEYBOARD";
    field public static final java.lang.String EXTRA_ASSIST_PACKAGE = "android.intent.extra.ASSIST_PACKAGE";
    field public static final java.lang.String EXTRA_ASSIST_PACKAGE = "android.intent.extra.ASSIST_PACKAGE";
    field public static final java.lang.String EXTRA_BCC = "android.intent.extra.BCC";
    field public static final java.lang.String EXTRA_BCC = "android.intent.extra.BCC";
    field public static final java.lang.String EXTRA_BUG_REPORT = "android.intent.extra.BUG_REPORT";
    field public static final java.lang.String EXTRA_BUG_REPORT = "android.intent.extra.BUG_REPORT";
+7 −0
Original line number Original line Diff line number Diff line
@@ -1212,6 +1212,13 @@ public class Intent implements Parcelable, Cloneable {
    public static final String EXTRA_ASSIST_CONTEXT
    public static final String EXTRA_ASSIST_CONTEXT
            = "android.intent.extra.ASSIST_CONTEXT";
            = "android.intent.extra.ASSIST_CONTEXT";


    /**
     * An optional field on {@link #ACTION_ASSIST} suggesting that the user will likely use a
     * keyboard as the primary input device for assistance.
     */
    public static final String EXTRA_ASSIST_INPUT_HINT_KEYBOARD =
            "android.intent.extra.ASSIST_INPUT_HINT_KEYBOARD";

    /**
    /**
     * Activity Action: List all available applications
     * Activity Action: List all available applications
     * <p>Input: Nothing.
     * <p>Input: Nothing.
+8 −1
Original line number Original line Diff line number Diff line
@@ -2400,7 +2400,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            if (down) {
            if (down) {
                mPendingMetaAction = true;
                mPendingMetaAction = true;
            } else if (mPendingMetaAction) {
            } else if (mPendingMetaAction) {
                launchAssistAction();
                launchAssistAction(Intent.EXTRA_ASSIST_INPUT_HINT_KEYBOARD);
            }
            }
            return -1;
            return -1;
        }
        }
@@ -2620,10 +2620,17 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    }
    }


    private void launchAssistAction() {
    private void launchAssistAction() {
        launchAssistAction(null);
    }

    private void launchAssistAction(String hint) {
        sendCloseSystemWindows(SYSTEM_DIALOG_REASON_ASSIST);
        sendCloseSystemWindows(SYSTEM_DIALOG_REASON_ASSIST);
        Intent intent = ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE))
        Intent intent = ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE))
                .getAssistIntent(mContext, true, UserHandle.USER_CURRENT);
                .getAssistIntent(mContext, true, UserHandle.USER_CURRENT);
        if (intent != null) {
        if (intent != null) {
            if (hint != null) {
                intent.putExtra(hint, true);
            }
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_SINGLE_TOP
                    | Intent.FLAG_ACTIVITY_SINGLE_TOP
                    | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    | Intent.FLAG_ACTIVITY_CLEAR_TOP);