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

Commit 399f9b83 authored by Sujith Ramakrishnan's avatar Sujith Ramakrishnan Committed by android-build-merger
Browse files

Merge "Make ASSIST launch VIS and add a new keycode for TV (ALL_APPS)" into oc-mr1-dev

am: 224e2daf

Change-Id: I190f74604641a988cd8cb6e7067abaaf624eb1df
parents ec3e2bdc 224e2daf
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -804,8 +804,11 @@ public class KeyEvent extends InputEvent implements Parcelable {
    public static final int KEYCODE_SYSTEM_NAVIGATION_LEFT = 282;
    /** Key code constant: Consumed by the system for navigation right */
    public static final int KEYCODE_SYSTEM_NAVIGATION_RIGHT = 283;
    /** Key code constant: Show all apps
     * @hide */
    public static final int KEYCODE_ALL_APPS = 284;

    private static final int LAST_KEYCODE = KEYCODE_SYSTEM_NAVIGATION_RIGHT;
    private static final int LAST_KEYCODE = KEYCODE_ALL_APPS;

    // NOTE: If you add a new keycode here you must also add it to:
    //  isSystem()
+1 −0
Original line number Diff line number Diff line
@@ -1891,6 +1891,7 @@
        <enum name="KEYCODE_SYSTEM_NAVIGATION_DOWN" value="281" />
        <enum name="KEYCODE_SYSTEM_NAVIGATION_LEFT" value="282" />
        <enum name="KEYCODE_SYSTEM_NAVIGATION_RIGHT" value="283" />
        <enum name="KEYCODE_ALL_APPS" value="284" />
    </attr>

    <!-- ***************************************************************** -->
+17 −11
Original line number Diff line number Diff line
@@ -13231,7 +13231,6 @@ public class ActivityManagerService extends IActivityManager.Stub
                return;
            }
        }
        // We are now ready to launch the assist activity.
        IResultReceiver sendReceiver = null;
        Bundle sendBundle = null;
@@ -13261,18 +13260,25 @@ public class ActivityManagerService extends IActivityManager.Stub
            return;
        }
        long ident = Binder.clearCallingIdentity();
        final long ident = Binder.clearCallingIdentity();
        try {
            if (TextUtils.equals(pae.intent.getAction(),
                    android.service.voice.VoiceInteractionService.SERVICE_INTERFACE)) {
                pae.intent.putExtras(pae.extras);
                mContext.startServiceAsUser(pae.intent, new UserHandle(pae.userHandle));
            } else {
                pae.intent.replaceExtras(pae.extras);
                pae.intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                        | Intent.FLAG_ACTIVITY_SINGLE_TOP
                        | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                closeSystemDialogs("assist");
                try {
                    mContext.startActivityAsUser(pae.intent, new UserHandle(pae.userHandle));
                } catch (ActivityNotFoundException e) {
                    Slog.w(TAG, "No activity to handle assist action.", e);
                }
            }
        } finally {
            Binder.restoreCallingIdentity(ident);
        }
+23 −0
Original line number Diff line number Diff line
@@ -829,6 +829,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    private static final int MSG_ACCESSIBILITY_TV = 23;
    private static final int MSG_DISPATCH_BACK_KEY_TO_AUTOFILL = 24;
    private static final int MSG_SYSTEM_KEY_PRESS = 25;
    private static final int MSG_HANDLE_ALL_APPS = 26;

    private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS = 0;
    private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_NAVIGATION = 1;
@@ -921,6 +922,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                case MSG_SYSTEM_KEY_PRESS:
                    sendSystemKeyToStatusBar(msg.arg1);
                    break;
                case MSG_HANDLE_ALL_APPS:
                    launchAllAppsAction();
                    break;
            }
        }
    }
@@ -1801,6 +1805,17 @@ public class PhoneWindowManager implements WindowManagerPolicy {

    private void launchAllAppsAction() {
        Intent intent = new Intent(Intent.ACTION_ALL_APPS);
        if (mHasFeatureLeanback) {
            final PackageManager pm = mContext.getPackageManager();
            Intent intentLauncher = new Intent(Intent.ACTION_MAIN);
            intentLauncher.addCategory(Intent.CATEGORY_HOME);
            ResolveInfo resolveInfo = pm.resolveActivityAsUser(intentLauncher,
                    PackageManager.MATCH_SYSTEM_ONLY,
                    mCurrentUserId);
            if (resolveInfo != null) {
                intent.setPackage(resolveInfo.activityInfo.packageName);
            }
        }
        startActivityAsUser(intent, UserHandle.CURRENT);
    }

@@ -3620,6 +3635,14 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            return -1;
        } else if (mHasFeatureLeanback && interceptAccessibilityGestureTv(keyCode, down)) {
            return -1;
        } else if (keyCode == KeyEvent.KEYCODE_ALL_APPS) {
            if (!down) {
                mHandler.removeMessages(MSG_HANDLE_ALL_APPS);
                Message msg = mHandler.obtainMessage(MSG_HANDLE_ALL_APPS);
                msg.setAsynchronous(true);
                msg.sendToTarget();
            }
            return -1;
        }

        // Toggle Caps Lock on META-ALT.
+22 −16
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.server.search;

import android.app.ActivityManager;
import android.app.AppGlobals;
import android.app.IActivityManager;
import android.app.ISearchManager;
import android.app.SearchManager;
@@ -26,7 +25,6 @@ import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.database.ContentObserver;
@@ -37,6 +35,7 @@ import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.service.voice.VoiceInteractionService;
import android.util.Log;
import android.util.SparseArray;

@@ -272,24 +271,25 @@ public class SearchManagerService extends ISearchManager.Stub {
        }
    }

    // Check and return VIS component
    private ComponentName getLegacyAssistComponent(int userHandle) {
        try {
            userHandle = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
                    Binder.getCallingUid(), userHandle, true, false, "getLegacyAssistComponent", null);
            IPackageManager pm = AppGlobals.getPackageManager();
            Intent assistIntent = new Intent(Intent.ACTION_ASSIST);
            ResolveInfo info =
                    pm.resolveIntent(assistIntent,
                            assistIntent.resolveTypeIfNeeded(mContext.getContentResolver()),
                            PackageManager.MATCH_DEFAULT_ONLY, userHandle);
            if (info != null) {
                    Binder.getCallingUid(), userHandle, true, false, "getLegacyAssistComponent",
                    null);
            PackageManager pm = mContext.getPackageManager();
            Intent intentAssistProbe = new Intent(VoiceInteractionService.SERVICE_INTERFACE);
            List<ResolveInfo> infoListVis = pm.queryIntentServicesAsUser(intentAssistProbe,
                    PackageManager.MATCH_SYSTEM_ONLY, userHandle);
            if (infoListVis == null || infoListVis.isEmpty()) {
                return null;
            } else {
                ResolveInfo rInfo = infoListVis.get(0);
                return new ComponentName(
                        info.activityInfo.applicationInfo.packageName,
                        info.activityInfo.name);
                        rInfo.serviceInfo.applicationInfo.packageName,
                        rInfo.serviceInfo.name);

            }
        } catch (RemoteException re) {
            // Local call
            Log.e(TAG, "RemoteException in getLegacyAssistComponent: " + re);
        } catch (Exception e) {
            Log.e(TAG, "Exception in getLegacyAssistComponent: " + e);
        }
@@ -304,9 +304,15 @@ public class SearchManagerService extends ISearchManager.Stub {
        }
        long ident = Binder.clearCallingIdentity();
        try {
            Intent intent = new Intent(Intent.ACTION_ASSIST);
            Intent intent = new Intent(VoiceInteractionService.SERVICE_INTERFACE);
            intent.setComponent(comp);

            IActivityManager am = ActivityManager.getService();
            if (args != null) {
                args.putInt(Intent.EXTRA_KEY_EVENT, android.view.KeyEvent.KEYCODE_ASSIST);
            }
            intent.putExtras(args);

            return am.launchAssistIntent(intent, ActivityManager.ASSIST_CONTEXT_BASIC, hint,
                    userHandle, args);
        } catch (RemoteException e) {