summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorAhaan Ugale <augale@google.com>2021-03-22 13:35:47 -0700
committerAhaan Ugale <augale@google.com>2021-03-22 13:48:23 -0700
commit8151b18c52ddfc6bf5438032898b447e2123cebc (patch)
treeae35c3c929e043cf54714be1539262d312813a3f /core/java
parentabe60b3500b7b0574106cd5c6bf5bebfb47897be (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')
-rw-r--r--core/java/android/service/voice/AlwaysOnHotwordDetector.java29
-rw-r--r--core/java/android/service/voice/HotwordDetectionService.java9
-rw-r--r--core/java/android/service/voice/IDspHotwordDetectionCallback.aidl6
-rw-r--r--core/java/com/android/internal/app/IHotwordRecognitionStatusCallback.aidl9
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.