AudioService: conditional logging of hearing aid volume
To avoid confusion when reading audio dumpsys, do not log hearing aid volume changes when a DEVICE_OUT_HEARING_AID is not connected. Bug: 236983951 Test: adb shell dumpsys audio | grep HEARING_AID Merged-In: I36f39e88e11f4e8ed644b54bfb15308f08a3d698 Change-Id: I36f39e88e11f4e8ed644b54bfb15308f08a3d698
This commit is contained in:
committed by
Jakub Pawłowski
parent
a4d60be743
commit
7ea873b0dc
@@ -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: {
|
||||
|
||||
@@ -1159,6 +1159,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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user