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

Commit 603ea83b authored by Ahaan Ugale's avatar Ahaan Ugale
Browse files

Hotword: Propagate the DSP DetectedResult.

Fix: 190572818
Test: atest CtsVoiceInteractionTestCases
Change-Id: I8a109f6540cf8c342b827464ccc2beabd99d1b9c
parent 0c1b382a
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -354,6 +354,13 @@ public class AlwaysOnHotwordDetector extends AbstractHotwordDetector {
                    null);
        }

        EventPayload(boolean triggerAvailable, boolean captureAvailable,
                AudioFormat audioFormat, int captureSession, byte[] data,
                HotwordDetectedResult hotwordDetectedResult) {
            this(triggerAvailable, captureAvailable, audioFormat, captureSession, data,
                    hotwordDetectedResult, null);
        }

        EventPayload(AudioFormat audioFormat, HotwordDetectedResult hotwordDetectedResult) {
            this(false, false, audioFormat, -1, null, hotwordDetectedResult, null);
        }
@@ -1149,7 +1156,8 @@ public class AlwaysOnHotwordDetector extends AbstractHotwordDetector {
        }

        @Override
        public void onKeyphraseDetected(KeyphraseRecognitionEvent event) {
        public void onKeyphraseDetected(
                KeyphraseRecognitionEvent event, HotwordDetectedResult result) {
            if (DBG) {
                Slog.d(TAG, "onDetected(" + event + ")");
            } else {
@@ -1157,7 +1165,7 @@ public class AlwaysOnHotwordDetector extends AbstractHotwordDetector {
            }
            Message.obtain(mHandler, MSG_HOTWORD_DETECTED,
                    new EventPayload(event.triggerInData, event.captureAvailable,
                            event.captureFormat, event.captureSession, event.data))
                            event.captureFormat, event.captureSession, event.data, result))
                    .sendToTarget();
        }
        @Override
+3 −2
Original line number Diff line number Diff line
@@ -147,8 +147,9 @@ class SoftwareHotwordDetector extends AbstractHotwordDetector {
        }

        @Override
        public void onKeyphraseDetected(SoundTrigger.KeyphraseRecognitionEvent recognitionEvent)
                throws RemoteException {
        public void onKeyphraseDetected(
                SoundTrigger.KeyphraseRecognitionEvent recognitionEvent,
                HotwordDetectedResult result) {

        }

+5 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.internal.app;

import android.hardware.soundtrigger.SoundTrigger;
import android.service.voice.HotwordDetectedResult;
import android.service.voice.HotwordRejectedResult;

/**
@@ -29,8 +30,11 @@ oneway interface IHotwordRecognitionStatusCallback {
     * @param recognitionEvent Object containing data relating to the
     *                         keyphrase recognition event such as keyphrase
     *                         extras.
     * @param result Successful detection result payload.
     */
    void onKeyphraseDetected(in SoundTrigger.KeyphraseRecognitionEvent recognitionEvent);
    void onKeyphraseDetected(
            in SoundTrigger.KeyphraseRecognitionEvent recognitionEvent,
            in HotwordDetectedResult result);

   /**
     * Called when a generic sound trigger event is witnessed.
+3 −4
Original line number Diff line number Diff line
@@ -318,7 +318,7 @@ final class HotwordDetectionConnection {
                if (DEBUG) {
                    Slog.d(TAG, "onDetected");
                }
                externalCallback.onKeyphraseDetected(recognitionEvent);
                externalCallback.onKeyphraseDetected(recognitionEvent, result);
            }

            @Override
@@ -351,8 +351,7 @@ final class HotwordDetectionConnection {
                if (DEBUG) {
                    Slog.d(TAG, "onDetected");
                }
                // TODO: Propagate the HotwordDetectedResult.
                externalCallback.onKeyphraseDetected(recognitionEvent);
                externalCallback.onKeyphraseDetected(recognitionEvent, result);
            }

            @Override
@@ -396,7 +395,7 @@ final class HotwordDetectionConnection {
                mHotwordDetectionConnection.detectFromDspSource(
                        recognitionEvent, mExternalCallback);
            } else {
                mExternalCallback.onKeyphraseDetected(recognitionEvent);
                mExternalCallback.onKeyphraseDetected(recognitionEvent, null);
            }
        }