diff options
| author | Ahaan Ugale <augale@google.com> | 2021-03-22 13:35:47 -0700 |
|---|---|---|
| committer | Ahaan Ugale <augale@google.com> | 2021-03-22 13:48:23 -0700 |
| commit | 8151b18c52ddfc6bf5438032898b447e2123cebc (patch) | |
| tree | ae35c3c929e043cf54714be1539262d312813a3f /core/java | |
| parent | abe60b3500b7b0574106cd5c6bf5bebfb47897be (diff) | |
Allow HotwordDetectionService to return HotwordRejectedResult.
This is simply passed through the system to the AlwaysOnHotwordDetector.
Bug: 182788844
Bug: 168305377
CTS-Coverage-Bug: 183425641
Test: builds
Change-Id: I2b7147b330051d870bfe970e9b5e16aaab52e9bc
Diffstat (limited to 'core/java')
4 files changed, 26 insertions, 27 deletions
diff --git a/core/java/android/service/voice/AlwaysOnHotwordDetector.java b/core/java/android/service/voice/AlwaysOnHotwordDetector.java index def13db41559..856df351dea5 100644 --- a/core/java/android/service/voice/AlwaysOnHotwordDetector.java +++ b/core/java/android/service/voice/AlwaysOnHotwordDetector.java @@ -239,18 +239,6 @@ public class AlwaysOnHotwordDetector { public @interface ModelParams {} /** - * Indicates that the given audio data is a false alert for {@link VoiceInteractionService}. - */ - public static final int HOTWORD_DETECTION_FALSE_ALERT = 0; - - /** @hide */ - @Retention(RetentionPolicy.SOURCE) - @IntDef(flag = true, prefix = { "HOTWORD_DETECTION_" }, value = { - HOTWORD_DETECTION_FALSE_ALERT, - }) - public @interface HotwordDetectionResult {} - - /** * Controls the sensitivity threshold adjustment factor for a given model. * Negative value corresponds to less sensitive model (high threshold) and * a positive value corresponds to a more sensitive model (low threshold). @@ -478,11 +466,14 @@ public class AlwaysOnHotwordDetector { public abstract void onRecognitionResumed(); /** - * Called when the validated result is invalid. + * Called when the {@link HotwordDetectionService second stage detection} did not detect the + * keyphrase. * - * @param reason The reason why the validated result is invalid. + * @param result Info about the second stage detection result, provided by the + * {@link HotwordDetectionService}. */ - public void onRejected(@HotwordDetectionResult int reason) {} + public void onRejected(@Nullable HotwordRejectedResult result) { + } } /** @@ -1069,13 +1060,13 @@ public class AlwaysOnHotwordDetector { } @Override - public void onRejected(int reason) { + public void onRejected(HotwordRejectedResult result) { if (DBG) { - Slog.d(TAG, "onRejected(" + reason + ")"); + Slog.d(TAG, "onRejected(" + result + ")"); } else { Slog.i(TAG, "onRejected"); } - Message.obtain(mHandler, MSG_HOTWORD_REJECTED, reason).sendToTarget(); + Message.obtain(mHandler, MSG_HOTWORD_REJECTED, result).sendToTarget(); } @Override @@ -1124,7 +1115,7 @@ public class AlwaysOnHotwordDetector { mExternalCallback.onRecognitionResumed(); break; case MSG_HOTWORD_REJECTED: - mExternalCallback.onRejected(msg.arg1); + mExternalCallback.onRejected((HotwordRejectedResult) msg.obj); break; default: super.handleMessage(msg); diff --git a/core/java/android/service/voice/HotwordDetectionService.java b/core/java/android/service/voice/HotwordDetectionService.java index fcef26f13dd0..764e8527cc84 100644 --- a/core/java/android/service/voice/HotwordDetectionService.java +++ b/core/java/android/service/voice/HotwordDetectionService.java @@ -180,11 +180,14 @@ public abstract class HotwordDetectionService extends Service { } /** - * Called when the detected result is invalid. + * Informs the {@link AlwaysOnHotwordDetector} that the keyphrase was not detected. + * + * @param result Info about the second stage detection result. This is provided to + * the {@link AlwaysOnHotwordDetector}. */ - public void onRejected() { + public void onRejected(@Nullable HotwordRejectedResult result) { try { - mRemoteCallback.onRejected(); + mRemoteCallback.onRejected(result); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/core/java/android/service/voice/IDspHotwordDetectionCallback.aidl b/core/java/android/service/voice/IDspHotwordDetectionCallback.aidl index bb95bb831dec..6f641e1cd1e7 100644 --- a/core/java/android/service/voice/IDspHotwordDetectionCallback.aidl +++ b/core/java/android/service/voice/IDspHotwordDetectionCallback.aidl @@ -16,6 +16,8 @@ package android.service.voice; +import android.service.voice.HotwordRejectedResult; + /** * Callback for returning the detected result from the HotwordDetectionService. * @@ -28,7 +30,7 @@ oneway interface IDspHotwordDetectionCallback { void onDetected(); /** - * Called when the detected result is invalid. + * Sends {@code result} to the HotwordDetector. */ - void onRejected(); + void onRejected(in HotwordRejectedResult result); } diff --git a/core/java/com/android/internal/app/IHotwordRecognitionStatusCallback.aidl b/core/java/com/android/internal/app/IHotwordRecognitionStatusCallback.aidl index 65bd8415475e..23314e7be622 100644 --- a/core/java/com/android/internal/app/IHotwordRecognitionStatusCallback.aidl +++ b/core/java/com/android/internal/app/IHotwordRecognitionStatusCallback.aidl @@ -17,6 +17,7 @@ package com.android.internal.app; import android.hardware.soundtrigger.SoundTrigger; +import android.service.voice.HotwordRejectedResult; /** * @hide @@ -41,11 +42,13 @@ oneway interface IHotwordRecognitionStatusCallback { void onGenericSoundTriggerDetected(in SoundTrigger.GenericRecognitionEvent recognitionEvent); /** - * Called when the validated result is invalid. + * Called when the {@link HotwordDetectionService second stage detection} did not detect the + * keyphrase. * - * @param reason The reason why the validated result is invalid. + * @param result Info about the second stage detection result, provided by the + * {@link HotwordDetectionService}. */ - void onRejected(int reason); + void onRejected(in HotwordRejectedResult result); /** * Called when the detection fails due to an error. |
