Merge "AudioService: conditional logging of hearing aid volume"

This commit is contained in:
TreeHugger Robot
2022-07-11 07:55:54 +00:00
committed by Android (Google) Code Review
3 changed files with 25 additions and 4 deletions

View File

@@ -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: {

View File

@@ -1158,6 +1158,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 device,
String eventSource) {

View File

@@ -423,7 +423,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");
@@ -440,8 +441,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);
}