From ab5fedc6825223830ae7f82b5150df92ffc22b8b Mon Sep 17 00:00:00 2001 From: Bhalchandra Gajare Date: Mon, 29 Mar 2021 13:01:25 -0700 Subject: 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 --- core/api/system-current.txt | 2 +- media/java/android/media/AudioAttributes.java | 8 ++++++-- .../server/voiceinteraction/HotwordDetectionConnection.java | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 0772478e2be4..1a2422f5b593 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -5095,7 +5095,7 @@ package android.media { 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 7e729d8c371f..a031b4cfc911 100644 --- a/media/java/android/media/AudioAttributes.java +++ b/media/java/android/media/AudioAttributes.java @@ -870,8 +870,12 @@ public final class AudioAttributes implements Parcelable { */ @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 2d979ca0a36a..bcfb302356c1 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 @@ final class HotwordDetectionConnection { } try { AudioRecord audioRecord = new AudioRecord( - new AudioAttributes.Builder().setHotwordMode().build(), + new AudioAttributes.Builder().setHotwordModeEnabled(true).build(), audioFormat, getBufferSizeInBytes( audioFormat.getSampleRate(), -- cgit v1.2.3-59-g8ed1b