From 3d1093eefba3df093c6c42ee63842b16a3eae442 Mon Sep 17 00:00:00 2001 From: Nicholas Ambur Date: Sun, 6 Mar 2022 22:57:40 -0800 Subject: [PATCH] expand test API for DSP kephrase trigger Expands the existing test API to include the KeyphraseExtra information in the fake DSP trigger event. Test: atest CtsVoiceInteractionTestCases Test: atest CtsVoiceInteractionHostTestCases Bug: 193232191 Change-Id: I3392cb37afaed6f67fb2f3b22edcbe7c869d1eba (cherry picked from commit 46c4ba27d18e19b947ab7e2f2f53466ae4634764) --- core/api/test-current.txt | 2 +- .../java/android/service/voice/AlwaysOnHotwordDetector.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 2e8bed32665cb..cd8c434ad82e3 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -2429,7 +2429,7 @@ package android.service.quicksettings { package android.service.voice { public class AlwaysOnHotwordDetector implements android.service.voice.HotwordDetector { - method @RequiresPermission(allOf={android.Manifest.permission.RECORD_AUDIO, android.Manifest.permission.CAPTURE_AUDIO_HOTWORD}) public void triggerHardwareRecognitionEventForTest(int, int, boolean, int, int, int, boolean, @NonNull android.media.AudioFormat, @Nullable byte[]); + method @RequiresPermission(allOf={android.Manifest.permission.RECORD_AUDIO, android.Manifest.permission.CAPTURE_AUDIO_HOTWORD}) public void triggerHardwareRecognitionEventForTest(int, int, boolean, int, int, int, boolean, @NonNull android.media.AudioFormat, @Nullable byte[], @NonNull java.util.List); } public static final class AlwaysOnHotwordDetector.EventPayload.Builder { diff --git a/core/java/android/service/voice/AlwaysOnHotwordDetector.java b/core/java/android/service/voice/AlwaysOnHotwordDetector.java index bec5d1be57fd1..bc42da6b4c976 100644 --- a/core/java/android/service/voice/AlwaysOnHotwordDetector.java +++ b/core/java/android/service/voice/AlwaysOnHotwordDetector.java @@ -851,7 +851,8 @@ public class AlwaysOnHotwordDetector extends AbstractHotwordDetector { @RequiresPermission(allOf = {RECORD_AUDIO, CAPTURE_AUDIO_HOTWORD}) public void triggerHardwareRecognitionEventForTest(int status, int soundModelHandle, boolean captureAvailable, int captureSession, int captureDelayMs, int capturePreambleMs, - boolean triggerInData, @NonNull AudioFormat captureFormat, @Nullable byte[] data) { + boolean triggerInData, @NonNull AudioFormat captureFormat, @Nullable byte[] data, + @NonNull List keyphraseRecognitionExtras) { Log.d(TAG, "triggerHardwareRecognitionEventForTest()"); synchronized (mLock) { if (mAvailability == STATE_INVALID || mAvailability == STATE_ERROR) { @@ -862,7 +863,8 @@ public class AlwaysOnHotwordDetector extends AbstractHotwordDetector { mModelManagementService.triggerHardwareRecognitionEventForTest( new KeyphraseRecognitionEvent(status, soundModelHandle, captureAvailable, captureSession, captureDelayMs, capturePreambleMs, triggerInData, - captureFormat, data, null /* keyphraseExtras */), + captureFormat, data, keyphraseRecognitionExtras.toArray( + new KeyphraseRecognitionExtra[0])), mInternalCallback); } catch (RemoteException e) { throw e.rethrowFromSystemServer();