From ef136b446bd5e6522efc4e8911477bcc99ea37e4 Mon Sep 17 00:00:00 2001 From: chelseahao Date: Tue, 14 Jan 2025 18:11:14 +0800 Subject: Pass in `isOngoingCall` to avoid calling `AudioManager.getMode` for better performance Test: atest Bug: b/363193254 Flag: EXEMPT bug fix Change-Id: Ifd631cd888ab3db1d51798cc152c5e38dcc3575c --- .../settingslib/bluetooth/BluetoothUtils.java | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) (limited to 'packages/SettingsLib/src') diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java index a00484ac28ab..522a436b0732 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java @@ -555,22 +555,17 @@ public class BluetoothUtils { * connected 2) is Hearing Aid or LE Audio OR 3) connected profile matches currentAudioProfile * * @param cachedDevice the CachedBluetoothDevice - * @param audioManager audio manager to get the current audio profile + * @param isOngoingCall get the current audio profile based on if in phone call * @return if the device is AvailableMediaBluetoothDevice */ @WorkerThread public static boolean isAvailableMediaBluetoothDevice( - CachedBluetoothDevice cachedDevice, AudioManager audioManager) { - int audioMode = audioManager.getMode(); + CachedBluetoothDevice cachedDevice, boolean isOngoingCall) { int currentAudioProfile; - if (audioMode == AudioManager.MODE_RINGTONE - || audioMode == AudioManager.MODE_IN_CALL - || audioMode == AudioManager.MODE_IN_COMMUNICATION) { - // in phone call + if (isOngoingCall) { currentAudioProfile = BluetoothProfile.HEADSET; } else { - // without phone call currentAudioProfile = BluetoothProfile.A2DP; } @@ -859,22 +854,17 @@ public class BluetoothUtils { * currentAudioProfile * * @param cachedDevice the CachedBluetoothDevice - * @param audioManager audio manager to get the current audio profile + * @param isOngoingCall get the current audio profile based on if in phone call * @return if the device is AvailableMediaBluetoothDevice */ @WorkerThread public static boolean isConnectedBluetoothDevice( - CachedBluetoothDevice cachedDevice, AudioManager audioManager) { - int audioMode = audioManager.getMode(); + CachedBluetoothDevice cachedDevice, boolean isOngoingCall) { int currentAudioProfile; - if (audioMode == AudioManager.MODE_RINGTONE - || audioMode == AudioManager.MODE_IN_CALL - || audioMode == AudioManager.MODE_IN_COMMUNICATION) { - // in phone call + if (isOngoingCall) { currentAudioProfile = BluetoothProfile.HEADSET; } else { - // without phone call currentAudioProfile = BluetoothProfile.A2DP; } -- cgit v1.2.3-59-g8ed1b