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

Commit fa47464c authored by Nicholas Ambur's avatar Nicholas Ambur Committed by Android (Google) Code Review
Browse files

Merge "lazy load enrollment application UID in VIMS" into rvc-dev

parents 49867265 c04b49fd
Loading
Loading
Loading
Loading
+1 −11
Original line number Original line Diff line number Diff line
@@ -28,7 +28,6 @@ import android.content.res.XmlResourceParser;
import android.text.TextUtils;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.ArraySet;
import android.util.AttributeSet;
import android.util.AttributeSet;
import android.util.Log;
import android.util.Slog;
import android.util.Slog;
import android.util.Xml;
import android.util.Xml;


@@ -231,15 +230,7 @@ public class KeyphraseEnrollmentInfo {
                    com.android.internal.R.styleable.VoiceEnrollmentApplication);
                    com.android.internal.R.styleable.VoiceEnrollmentApplication);
            keyphraseMetadata = getKeyphraseFromTypedArray(array, packageName, parseErrors);
            keyphraseMetadata = getKeyphraseFromTypedArray(array, packageName, parseErrors);
            array.recycle();
            array.recycle();
        } catch (XmlPullParserException e) {
        } catch (XmlPullParserException | PackageManager.NameNotFoundException | IOException e) {
            String error = "Error parsing keyphrase enrollment meta-data for " + packageName;
            parseErrors.add(error + ": " + e);
            Slog.w(TAG, error, e);
        } catch (IOException e) {
            String error = "Error parsing keyphrase enrollment meta-data for " + packageName;
            parseErrors.add(error + ": " + e);
            Slog.w(TAG, error, e);
        } catch (PackageManager.NameNotFoundException e) {
            String error = "Error parsing keyphrase enrollment meta-data for " + packageName;
            String error = "Error parsing keyphrase enrollment meta-data for " + packageName;
            parseErrors.add(error + ": " + e);
            parseErrors.add(error + ": " + e);
            Slog.w(TAG, error, e);
            Slog.w(TAG, error, e);
@@ -390,7 +381,6 @@ public class KeyphraseEnrollmentInfo {
     *         False if not.
     *         False if not.
     */
     */
    public boolean isUidSupportedEnrollmentApplication(int uid) {
    public boolean isUidSupportedEnrollmentApplication(int uid) {
        Log.d(TAG, "isUidSupportedEnrollmentApplication: " + toString());
        return mEnrollmentApplicationUids.contains(uid);
        return mEnrollmentApplicationUids.contains(uid);
    }
    }


+21 −4
Original line number Original line Diff line number Diff line
@@ -41,6 +41,7 @@ import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.database.ContentObserver;
import android.hardware.soundtrigger.IRecognitionStatusCallback;
import android.hardware.soundtrigger.IRecognitionStatusCallback;
import android.hardware.soundtrigger.KeyphraseEnrollmentInfo;
import android.hardware.soundtrigger.KeyphraseMetadata;
import android.hardware.soundtrigger.KeyphraseMetadata;
import android.hardware.soundtrigger.ModelParams;
import android.hardware.soundtrigger.ModelParams;
import android.hardware.soundtrigger.SoundTrigger;
import android.hardware.soundtrigger.SoundTrigger;
@@ -223,6 +224,7 @@ public class VoiceInteractionManagerService extends SystemService {
    class VoiceInteractionManagerServiceStub extends IVoiceInteractionManagerService.Stub {
    class VoiceInteractionManagerServiceStub extends IVoiceInteractionManagerService.Stub {


        VoiceInteractionManagerServiceImpl mImpl;
        VoiceInteractionManagerServiceImpl mImpl;
        KeyphraseEnrollmentInfo mEnrollmentApplicationInfo;


        private boolean mSafeMode;
        private boolean mSafeMode;
        private int mCurUser;
        private int mCurUser;
@@ -447,6 +449,15 @@ public class VoiceInteractionManagerService extends SystemService {
            }
            }
        }
        }


        private void getOrCreateEnrollmentApplicationInfo() {
            synchronized (this) {
                if (mEnrollmentApplicationInfo == null) {
                    mEnrollmentApplicationInfo = new KeyphraseEnrollmentInfo(
                            mContext.getPackageManager());
                }
            }
        }

        private void setCurrentUserLocked(@UserIdInt int userHandle) {
        private void setCurrentUserLocked(@UserIdInt int userHandle) {
            mCurUser = userHandle;
            mCurUser = userHandle;
            final UserInfo userInfo = mUserManagerInternal.getUserInfo(mCurUser);
            final UserInfo userInfo = mUserManagerInternal.getUserInfo(mCurUser);
@@ -1380,13 +1391,18 @@ public class VoiceInteractionManagerService extends SystemService {
                pw.println("  mCurUserUnlocked: " + mCurUserUnlocked);
                pw.println("  mCurUserUnlocked: " + mCurUserUnlocked);
                pw.println("  mCurUserSupported: " + mCurUserSupported);
                pw.println("  mCurUserSupported: " + mCurUserSupported);
                dumpSupportedUsers(pw, "  ");
                dumpSupportedUsers(pw, "  ");
                if (mEnrollmentApplicationInfo == null) {
                    pw.println("  (No enrollment application info)");
                } else {
                    pw.println("  " + mEnrollmentApplicationInfo.toString());
                }
                mDbHelper.dump(pw);
                mDbHelper.dump(pw);
                if (mImpl == null) {
                if (mImpl == null) {
                    pw.println("  (No active implementation)");
                    pw.println("  (No active implementation)");
                    return;
                } else {
                }
                    mImpl.dumpLocked(fd, pw, args);
                    mImpl.dumpLocked(fd, pw, args);
                }
                }
            }
            mSoundTriggerInternal.dump(fd, pw, args);
            mSoundTriggerInternal.dump(fd, pw, args);
        }
        }


@@ -1438,7 +1454,8 @@ public class VoiceInteractionManagerService extends SystemService {
        }
        }


        private boolean isCallerTrustedEnrollmentApplication() {
        private boolean isCallerTrustedEnrollmentApplication() {
            return mImpl.mEnrollmentApplicationInfo.isUidSupportedEnrollmentApplication(
            getOrCreateEnrollmentApplicationInfo();
            return mEnrollmentApplicationInfo.isUidSupportedEnrollmentApplication(
                            Binder.getCallingUid());
                            Binder.getCallingUid());
        }
        }


+0 −4
Original line number Original line Diff line number Diff line
@@ -36,7 +36,6 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.ServiceConnection;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager;
import android.hardware.soundtrigger.KeyphraseEnrollmentInfo;
import android.os.Bundle;
import android.os.Bundle;
import android.os.Handler;
import android.os.Handler;
import android.os.IBinder;
import android.os.IBinder;
@@ -79,7 +78,6 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
    final IActivityManager mAm;
    final IActivityManager mAm;
    final IActivityTaskManager mAtm;
    final IActivityTaskManager mAtm;
    final VoiceInteractionServiceInfo mInfo;
    final VoiceInteractionServiceInfo mInfo;
    final KeyphraseEnrollmentInfo mEnrollmentApplicationInfo;
    final ComponentName mSessionComponentName;
    final ComponentName mSessionComponentName;
    final IWindowManager mIWindowManager;
    final IWindowManager mIWindowManager;
    boolean mBound = false;
    boolean mBound = false;
@@ -135,7 +133,6 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
        mComponent = service;
        mComponent = service;
        mAm = ActivityManager.getService();
        mAm = ActivityManager.getService();
        mAtm = ActivityTaskManager.getService();
        mAtm = ActivityTaskManager.getService();
        mEnrollmentApplicationInfo = new KeyphraseEnrollmentInfo(context.getPackageManager());
        VoiceInteractionServiceInfo info;
        VoiceInteractionServiceInfo info;
        try {
        try {
            info = new VoiceInteractionServiceInfo(context.getPackageManager(), service, mUser);
            info = new VoiceInteractionServiceInfo(context.getPackageManager(), service, mUser);
@@ -406,7 +403,6 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
            pw.println("  Active session:");
            pw.println("  Active session:");
            mActiveSession.dump("    ", pw);
            mActiveSession.dump("    ", pw);
        }
        }
        pw.println("  " + mEnrollmentApplicationInfo.toString());
    }
    }


    void startLocked() {
    void startLocked() {