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
(cherry picked from commit 7ea873b0dc)
This commit is contained in:
committed by
Jakub Tyszkowski
parent
6a2f4e2ab5
commit
7ceaa5ce07
@@ -1365,7 +1365,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: {
|
||||
|
||||
@@ -1161,6 +1161,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) {
|
||||
|
||||
@@ -424,7 +424,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");
|
||||
@@ -441,8 +442,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