summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/service/voice/SoftwareHotwordDetector.java57
1 files changed, 56 insertions, 1 deletions
diff --git a/core/java/android/service/voice/SoftwareHotwordDetector.java b/core/java/android/service/voice/SoftwareHotwordDetector.java
index 87037f4def6a..47f2c6403757 100644
--- a/core/java/android/service/voice/SoftwareHotwordDetector.java
+++ b/core/java/android/service/voice/SoftwareHotwordDetector.java
@@ -22,6 +22,7 @@ import static com.android.internal.util.function.pooled.PooledLambda.obtainMessa
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
+import android.hardware.soundtrigger.SoundTrigger;
import android.media.AudioFormat;
import android.os.Handler;
import android.os.Looper;
@@ -31,6 +32,7 @@ import android.os.RemoteException;
import android.os.SharedMemory;
import android.util.Slog;
+import com.android.internal.app.IHotwordRecognitionStatusCallback;
import com.android.internal.app.IVoiceInteractionManagerService;
import java.io.PrintWriter;
@@ -64,7 +66,8 @@ class SoftwareHotwordDetector extends AbstractHotwordDetector {
mAudioFormat = audioFormat;
mCallback = callback;
mHandler = new Handler(Looper.getMainLooper());
- updateStateLocked(options, sharedMemory, null /* callback */);
+ updateStateLocked(options, sharedMemory,
+ new InitializationStateListener(mHandler, mCallback));
}
@RequiresPermission(RECORD_AUDIO)
@@ -133,6 +136,58 @@ class SoftwareHotwordDetector extends AbstractHotwordDetector {
}
}
+ private static class InitializationStateListener
+ extends IHotwordRecognitionStatusCallback.Stub {
+ private final Handler mHandler;
+ private final HotwordDetector.Callback mCallback;
+
+ InitializationStateListener(Handler handler, HotwordDetector.Callback callback) {
+ this.mHandler = handler;
+ this.mCallback = callback;
+ }
+
+ @Override
+ public void onKeyphraseDetected(SoundTrigger.KeyphraseRecognitionEvent recognitionEvent)
+ throws RemoteException {
+
+ }
+
+ @Override
+ public void onGenericSoundTriggerDetected(
+ SoundTrigger.GenericRecognitionEvent recognitionEvent) throws RemoteException {
+
+ }
+
+ @Override
+ public void onRejected(HotwordRejectedResult result) throws RemoteException {
+
+ }
+
+ @Override
+ public void onError(int status) throws RemoteException {
+
+ }
+
+ @Override
+ public void onRecognitionPaused() throws RemoteException {
+
+ }
+
+ @Override
+ public void onRecognitionResumed() throws RemoteException {
+
+ }
+
+ @Override
+ public void onStatusReported(int status) {
+ Slog.v(TAG, "onStatusReported" + (DEBUG ? "(" + status + ")" : ""));
+ mHandler.sendMessage(obtainMessage(
+ HotwordDetector.Callback::onHotwordDetectionServiceInitialized,
+ mCallback,
+ status));
+ }
+ }
+
/** @hide */
public void dump(String prefix, PrintWriter pw) {
// TODO: implement this