summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jean-Michel Trivi <jmtrivi@google.com> 2022-09-23 15:10:06 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-09-23 15:10:06 +0000
commit6ce7fb05df07c376ede4b3bdb853133d0656c83e (patch)
tree44d91e957cbb0ae440d5b48c46c94052de8e5c96
parent5c123fb129a53f0929da100ae02155236abf3579 (diff)
parentae629d62b25c4b8aa00e3451ca380f55c46917f7 (diff)
Merge "AudioService: conditional logging of hearing aid volume" am: 65e05f9cc5 am: ae629d62b2
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2228977 Change-Id: I78fbdd60cdedca640f92b3a5385b3e9faa6aef6f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/audio/AudioDeviceBroker.java3
-rw-r--r--services/core/java/com/android/server/audio/AudioDeviceInventory.java16
-rw-r--r--services/core/java/com/android/server/audio/BtHelper.java10
3 files changed, 25 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/audio/AudioDeviceBroker.java b/services/core/java/com/android/server/audio/AudioDeviceBroker.java
index 82fe6c6654da..eba9c7a5f14e 100644
--- a/services/core/java/com/android/server/audio/AudioDeviceBroker.java
+++ b/services/core/java/com/android/server/audio/AudioDeviceBroker.java
@@ -1323,7 +1323,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
break;
case MSG_II_SET_HEARING_AID_VOLUME:
synchronized (mDeviceStateLock) {
- mBtHelper.setHearingAidVolume(msg.arg1, msg.arg2);
+ mBtHelper.setHearingAidVolume(msg.arg1, msg.arg2,
+ mDeviceInventory.isHearingAidConnected());
}
break;
case MSG_II_SET_LE_AUDIO_OUT_VOLUME: {
diff --git a/services/core/java/com/android/server/audio/AudioDeviceInventory.java b/services/core/java/com/android/server/audio/AudioDeviceInventory.java
index 54b2d56aa2af..c1f496905dba 100644
--- a/services/core/java/com/android/server/audio/AudioDeviceInventory.java
+++ b/services/core/java/com/android/server/audio/AudioDeviceInventory.java
@@ -1160,6 +1160,22 @@ public class AudioDeviceInventory {
.record();
}
+ /**
+ * Returns whether a device of type DEVICE_OUT_HEARING_AID is connected.
+ * Visibility by APM plays no role
+ * @return true if a DEVICE_OUT_HEARING_AID is connected, false otherwise.
+ */
+ boolean isHearingAidConnected() {
+ synchronized (mDevicesLock) {
+ for (DeviceInfo di : mConnectedDevices.values()) {
+ if (di.mDeviceType == AudioSystem.DEVICE_OUT_HEARING_AID) {
+ return true;
+ }
+ }
+ return false;
+ }
+ }
+
@GuardedBy("mDevicesLock")
private void makeLeAudioDeviceAvailable(String address, String name, int streamType,
int volumeIndex, int device, String eventSource) {
diff --git a/services/core/java/com/android/server/audio/BtHelper.java b/services/core/java/com/android/server/audio/BtHelper.java
index 0fc7036c1586..59eaf44a77e3 100644
--- a/services/core/java/com/android/server/audio/BtHelper.java
+++ b/services/core/java/com/android/server/audio/BtHelper.java
@@ -422,7 +422,8 @@ public class BtHelper {
mLeAudio.setVolume(volume);
}
- /*package*/ synchronized void setHearingAidVolume(int index, int streamType) {
+ /*package*/ synchronized void setHearingAidVolume(int index, int streamType,
+ boolean isHeadAidConnected) {
if (mHearingAid == null) {
if (AudioService.DEBUG_VOL) {
Log.i(TAG, "setHearingAidVolume: null mHearingAid");
@@ -439,8 +440,11 @@ public class BtHelper {
Log.i(TAG, "setHearingAidVolume: calling mHearingAid.setVolume idx="
+ index + " gain=" + gainDB);
}
- AudioService.sVolumeLogger.log(new AudioServiceEvents.VolumeEvent(
- AudioServiceEvents.VolumeEvent.VOL_SET_HEARING_AID_VOL, index, gainDB));
+ // do not log when hearing aid is not connected to avoid confusion when reading dumpsys
+ if (isHeadAidConnected) {
+ AudioService.sVolumeLogger.log(new AudioServiceEvents.VolumeEvent(
+ AudioServiceEvents.VolumeEvent.VOL_SET_HEARING_AID_VOL, index, gainDB));
+ }
mHearingAid.setVolume(gainDB);
}