AudioAttributes: update setHotwordMode to setHotwordModeEnabled
Update setHotwordMode to setHotwordModeEnabled and set/clear the hotword
mode based on the boolean flag passed to setHotwordModeEnabled. This is
to meet the API requirements. Also update the references to this API.
BUG: 180419637
Test: Able to setHotwordModeEnabled from AGSA application. Confirmed
HAL receives the flag and audioSource correctly in open_input_stream.
Change-Id: Ia01e8b5f3edaeafc9617846efc247635005456a8
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 0772478..1a2422f 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -5095,7 +5095,7 @@
public static class AudioAttributes.Builder {
method public android.media.AudioAttributes.Builder addBundle(@NonNull android.os.Bundle);
method public android.media.AudioAttributes.Builder setCapturePreset(int);
- method @NonNull @RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_HOTWORD) public android.media.AudioAttributes.Builder setHotwordMode();
+ method @NonNull @RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_HOTWORD) public android.media.AudioAttributes.Builder setHotwordModeEnabled(boolean);
method public android.media.AudioAttributes.Builder setInternalCapturePreset(int);
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public android.media.AudioAttributes.Builder setSystemUsage(int);
}
diff --git a/media/java/android/media/AudioAttributes.java b/media/java/android/media/AudioAttributes.java
index 7e729d8..a031b4c 100644
--- a/media/java/android/media/AudioAttributes.java
+++ b/media/java/android/media/AudioAttributes.java
@@ -870,8 +870,12 @@
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_HOTWORD)
- public @NonNull Builder setHotwordMode() {
- mFlags |= FLAG_HW_HOTWORD;
+ public @NonNull Builder setHotwordModeEnabled(boolean enable) {
+ if (enable) {
+ mFlags |= FLAG_HW_HOTWORD;
+ } else {
+ mFlags &= ~FLAG_HW_HOTWORD;
+ }
return this;
}
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java
index 2d979ca..bcfb302 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java
@@ -434,7 +434,7 @@
}
try {
AudioRecord audioRecord = new AudioRecord(
- new AudioAttributes.Builder().setHotwordMode().build(),
+ new AudioAttributes.Builder().setHotwordModeEnabled(true).build(),
audioFormat,
getBufferSizeInBytes(
audioFormat.getSampleRate(),