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

Commit 584fa3e8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Reset HotwordDetectionConnection when VoiceInteractionService crashes"...

Merge "Reset HotwordDetectionConnection when VoiceInteractionService crashes" into sc-dev am: a687e13f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15269082

Change-Id: I4338b8db488e2aa35293bd1fbb7f5e225b7cb3ef
parents 7fd05db3 a687e13f
Loading
Loading
Loading
Loading
+24 −1
Original line number Original line Diff line number Diff line
@@ -126,6 +126,9 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
    final ServiceConnection mConnection = new ServiceConnection() {
    final ServiceConnection mConnection = new ServiceConnection() {
        @Override
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
        public void onServiceConnected(ComponentName name, IBinder service) {
            if (DEBUG) {
                Slog.d(TAG, "onServiceConnected to " + name + " for user(" + mUser + ")");
            }
            synchronized (mServiceStub) {
            synchronized (mServiceStub) {
                mService = IVoiceInteractionService.Stub.asInterface(service);
                mService = IVoiceInteractionService.Stub.asInterface(service);
                try {
                try {
@@ -137,7 +140,13 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne


        @Override
        @Override
        public void onServiceDisconnected(ComponentName name) {
        public void onServiceDisconnected(ComponentName name) {
            if (DEBUG) {
                Slog.d(TAG, "onServiceDisconnected to " + name);
            }
            synchronized (mServiceStub) {
                mService = null;
                mService = null;
                resetHotwordDetectionConnectionLocked();
            }
        }
        }
    };
    };


@@ -575,6 +584,20 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
        mHotwordDetectionConnection.forceRestart();
        mHotwordDetectionConnection.forceRestart();
    }
    }


    void resetHotwordDetectionConnectionLocked() {
        if (DEBUG) {
            Slog.d(TAG, "resetHotwordDetectionConnectionLocked");
        }
        if (mHotwordDetectionConnection == null) {
            if (DEBUG) {
                Slog.w(TAG, "reset, but no hotword detection connection");
            }
            return;
        }
        mHotwordDetectionConnection.cancelLocked();
        mHotwordDetectionConnection = null;
    }

    public void dumpLocked(FileDescriptor fd, PrintWriter pw, String[] args) {
    public void dumpLocked(FileDescriptor fd, PrintWriter pw, String[] args) {
        if (!mValid) {
        if (!mValid) {
            pw.print("  NOT VALID: ");
            pw.print("  NOT VALID: ");