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

Commit 719e70c9 authored by Powei Feng's avatar Powei Feng
Browse files

Revert "Transition from Activity to Broadcast for TV Search"

This reverts commit 1331d261.

Reason for revert: b/36725187

Bug: 36725187
Test: manual testing of search on Fugu

Change-Id: I02e7abeee264ceada88f220f2eddb9f92ef397bc
parent b287e990
Loading
Loading
Loading
Loading
+3 −57
Original line number Original line Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.server.search;


import android.app.ActivityManager;
import android.app.ActivityManager;
import android.app.AppGlobals;
import android.app.AppGlobals;
import android.app.AppOpsManager;
import android.app.IActivityManager;
import android.app.IActivityManager;
import android.app.ISearchManager;
import android.app.ISearchManager;
import android.app.SearchManager;
import android.app.SearchManager;
@@ -29,7 +28,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.pm.IPackageManager;
import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager;
import android.content.pm.ParceledListSlice;
import android.content.pm.ResolveInfo;
import android.content.pm.ResolveInfo;
import android.database.ContentObserver;
import android.database.ContentObserver;
import android.os.Binder;
import android.os.Binder;
@@ -39,8 +37,6 @@ import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.UserManager;
import android.provider.Settings;
import android.provider.Settings;
import android.speech.RecognitionService;
import android.text.TextUtils;
import android.util.Log;
import android.util.Log;
import android.util.SparseArray;
import android.util.SparseArray;


@@ -276,52 +272,6 @@ public class SearchManagerService extends ISearchManager.Stub {
        }
        }
    }
    }


    private boolean isDefaultRecognizerPackage(String packageName) {
        ResolveInfo resolveInfo = mContext.getPackageManager().resolveService(
                new Intent(RecognitionService.SERVICE_INTERFACE),
                PackageManager.GET_META_DATA);
        if (resolveInfo == null || resolveInfo.serviceInfo == null) {
            Log.w(TAG, "Unable to resolve default voice recognition service.");
            return false;
        }
        if (!TextUtils.isEmpty(packageName) && TextUtils.equals(packageName,
                resolveInfo.serviceInfo.packageName)) {
            return true;
        }
        return false;
    }

    private ComponentName getLegacyAssistReceiverComponent(int userHandle) {
        try {
            userHandle = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
                    Binder.getCallingUid(), userHandle, true, false,
                    "getLegacyAssistReceiverComponent", null);
            IPackageManager pm = AppGlobals.getPackageManager();
            Intent assistIntent = new Intent(Intent.ACTION_ASSIST);
            ParceledListSlice<ResolveInfo> infoParceledList =
                    pm.queryIntentReceivers(assistIntent,
                            assistIntent.resolveTypeIfNeeded(mContext.getContentResolver()),
                            PackageManager.MATCH_DEFAULT_ONLY, userHandle);
            if (infoParceledList != null) {
                List<ResolveInfo> infoList = infoParceledList.getList();
                if (infoList != null && infoList.size() > 0) {
                    if (isDefaultRecognizerPackage(
                            infoList.get(0).activityInfo.applicationInfo.packageName)) {
                        return new ComponentName(
                                infoList.get(0).activityInfo.applicationInfo.packageName,
                                infoList.get(0).activityInfo.name);
                    }
                }
            }
        } catch (RemoteException re) {
            // Local call
            Log.e(TAG, "RemoteException in getLegacyAssistReceiverComponent: " + re);
        } catch (Exception e) {
            Log.e(TAG, "Exception in getLegacyAssistReceiverComponent: " + e);
        }
        return null;
    }

    private ComponentName getLegacyAssistComponent(int userHandle) {
    private ComponentName getLegacyAssistComponent(int userHandle) {
        try {
        try {
            userHandle = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
            userHandle = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
@@ -348,7 +298,7 @@ public class SearchManagerService extends ISearchManager.Stub {


    @Override
    @Override
    public boolean launchLegacyAssist(String hint, int userHandle, Bundle args) {
    public boolean launchLegacyAssist(String hint, int userHandle, Bundle args) {
        ComponentName comp = getLegacyAssistReceiverComponent(userHandle);
        ComponentName comp = getLegacyAssistComponent(userHandle);
        if (comp == null) {
        if (comp == null) {
            return false;
            return false;
        }
        }
@@ -356,13 +306,9 @@ public class SearchManagerService extends ISearchManager.Stub {
        try {
        try {
            Intent intent = new Intent(Intent.ACTION_ASSIST);
            Intent intent = new Intent(Intent.ACTION_ASSIST);
            intent.setComponent(comp);
            intent.setComponent(comp);
            if (args != null) {
                intent.putExtras(args);
            }
            IActivityManager am = ActivityManager.getService();
            IActivityManager am = ActivityManager.getService();
            return am.broadcastIntent(null, intent, null, null, 0, null, null, null,
            return am.launchAssistIntent(intent, ActivityManager.ASSIST_CONTEXT_BASIC, hint,
                    AppOpsManager.OP_NONE, null, false, false,
                    userHandle, args);
                    userHandle) == ActivityManager.BROADCAST_SUCCESS;
        } catch (RemoteException e) {
        } catch (RemoteException e) {
        } finally {
        } finally {
            Binder.restoreCallingIdentity(ident);
            Binder.restoreCallingIdentity(ident);