diff options
author | Grace Jia <xiaotonj@google.com> | 2023-11-30 19:13:19 +0000 |
---|---|---|
committer | Yuyang Huang <yuyangh@google.com> | 2023-11-30 23:00:30 +0000 |
commit | 335297f476fe0bf5f3170bbac2aa9cf97e1a2e5e (patch) | |
tree | f99847ca265d9ece781940197644d05bd073d538 | |
parent | 885d79344d58a23c11b16db29140f410ba0a2ef6 (diff) | |
download | Telecomm-335297f476fe0bf5f3170bbac2aa9cf97e1a2e5e.tar.gz |
Revert "Fix audio switch of speaker -> BT LE or speaker -> HA issue."
This reverts commit 6e171ef44faf7153be1889a9d66b74aa8d1fb391.
Reason for revert: test
Test: BluetoothDeviceManagerTest
Change-Id: Ia416daeed288c3cfac74423651106f7544432960
3 files changed, 27 insertions, 33 deletions
diff --git a/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java b/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java index 9ae58b33d..a25394fbe 100644 --- a/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java +++ b/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java @@ -27,6 +27,7 @@ import android.bluetooth.BluetoothStatusCodes; import android.content.Context; import android.media.AudioManager; import android.media.AudioDeviceInfo; +import android.media.audio.common.AudioDevice; import android.os.Bundle; import android.telecom.Log; import android.util.ArraySet; @@ -40,13 +41,13 @@ import com.android.server.telecom.flags.FeatureFlags; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.concurrent.Executor; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Objects; import java.util.Set; -import java.util.concurrent.Executor; public class BluetoothDeviceManager { @@ -458,8 +459,8 @@ public class BluetoothDeviceManager { disconnectSco(); } else { disconnectSco(); - clearLeAudioOrSpeakerCommunicationDevice(); - clearHearingAidOrSpeakerCommunicationDevice(); + clearLeAudioCommunicationDevice(); + clearHearingAidCommunicationDevice(); } } @@ -479,9 +480,13 @@ public class BluetoothDeviceManager { return mHearingAidSetAsCommunicationDevice; } - public void clearLeAudioOrSpeakerCommunicationDevice() { + public void clearLeAudioCommunicationDevice() { Log.i(this, "clearLeAudioCommunicationDevice: mLeAudioSetAsCommunicationDevice = " + mLeAudioSetAsCommunicationDevice + " device = " + mLeAudioDevice); + if (!mLeAudioSetAsCommunicationDevice) { + return; + } + mLeAudioSetAsCommunicationDevice = false; if (mLeAudioDevice != null) { mBluetoothRouteManager.onAudioLost(mLeAudioDevice); mLeAudioDevice = null; @@ -493,22 +498,20 @@ public class BluetoothDeviceManager { } AudioDeviceInfo audioDeviceInfo = mAudioManager.getCommunicationDevice(); - if (audioDeviceInfo != null) { - if (audioDeviceInfo.getType() == AudioDeviceInfo.TYPE_BLE_HEADSET) { - Log.i(this, "clearLeAudioCommunicationDevice: clearing le audio"); - mBluetoothRouteManager.onAudioLost(audioDeviceInfo.getAddress()); - mAudioManager.clearCommunicationDevice(); - } else if (audioDeviceInfo.getType() == AudioDeviceInfo.TYPE_BUILTIN_SPEAKER) { - Log.i(this, "clearLeAudioCommunicationDevice: clearing speaker"); - mAudioManager.clearCommunicationDevice(); - } + if (audioDeviceInfo != null && audioDeviceInfo.getType() + == AudioDeviceInfo.TYPE_BLE_HEADSET) { + mBluetoothRouteManager.onAudioLost(audioDeviceInfo.getAddress()); + mAudioManager.clearCommunicationDevice(); } - mLeAudioSetAsCommunicationDevice = false; } - public void clearHearingAidOrSpeakerCommunicationDevice() { + public void clearHearingAidCommunicationDevice() { Log.i(this, "clearHearingAidCommunicationDevice: mHearingAidSetAsCommunicationDevice = " + mHearingAidSetAsCommunicationDevice); + if (!mHearingAidSetAsCommunicationDevice) { + return; + } + mHearingAidSetAsCommunicationDevice = false; if (mHearingAidDevice != null) { mBluetoothRouteManager.onAudioLost(mHearingAidDevice); mHearingAidDevice = null; @@ -520,17 +523,10 @@ public class BluetoothDeviceManager { } AudioDeviceInfo audioDeviceInfo = mAudioManager.getCommunicationDevice(); - if (audioDeviceInfo != null) { - if (audioDeviceInfo.getType() == AudioDeviceInfo.TYPE_HEARING_AID) { - Log.i(this, "clearHearingAidCommunicationDevice: clearing hearing aid"); - mBluetoothRouteManager.onAudioLost(audioDeviceInfo.getAddress()); - mAudioManager.clearCommunicationDevice(); - } else if (audioDeviceInfo.getType() == AudioDeviceInfo.TYPE_BUILTIN_SPEAKER) { - Log.i(this, "clearHearingAidCommunicationDevice: clearing speaker"); - mAudioManager.clearCommunicationDevice(); - } + if (audioDeviceInfo != null && audioDeviceInfo.getType() + == AudioDeviceInfo.TYPE_HEARING_AID) { + mAudioManager.clearCommunicationDevice(); } - mHearingAidSetAsCommunicationDevice = false; } public boolean setLeAudioCommunicationDevice() { @@ -567,7 +563,7 @@ public class BluetoothDeviceManager { } // clear hearing aid communication device if set - clearHearingAidOrSpeakerCommunicationDevice(); + clearHearingAidCommunicationDevice(); // Turn BLE_OUT_HEADSET ON. boolean result = mAudioManager.setCommunicationDevice(bleHeadset); @@ -616,7 +612,7 @@ public class BluetoothDeviceManager { } // clear LE audio communication device if set - clearLeAudioOrSpeakerCommunicationDevice(); + clearLeAudioCommunicationDevice(); // Turn hearing aid ON. boolean result = mAudioManager.setCommunicationDevice(hearingAid); diff --git a/src/com/android/server/telecom/bluetooth/BluetoothRouteManager.java b/src/com/android/server/telecom/bluetooth/BluetoothRouteManager.java index ceabd669a..56f461af3 100644 --- a/src/com/android/server/telecom/bluetooth/BluetoothRouteManager.java +++ b/src/com/android/server/telecom/bluetooth/BluetoothRouteManager.java @@ -640,7 +640,7 @@ public class BluetoothRouteManager extends StateMachine { mCommunicationDeviceTracker.clearCommunicationDevice( AudioDeviceInfo.TYPE_BLE_HEADSET); } else { - mDeviceManager.clearLeAudioOrSpeakerCommunicationDevice(); + mDeviceManager.clearLeAudioCommunicationDevice(); } } } else if (deviceType == BluetoothDeviceManager.DEVICE_TYPE_HEARING_AID) { @@ -650,7 +650,7 @@ public class BluetoothRouteManager extends StateMachine { mCommunicationDeviceTracker.clearCommunicationDevice( AudioDeviceInfo.TYPE_HEARING_AID); } else { - mDeviceManager.clearHearingAidOrSpeakerCommunicationDevice(); + mDeviceManager.clearHearingAidCommunicationDevice(); } } } else if (deviceType == BluetoothDeviceManager.DEVICE_TYPE_HEADSET) { diff --git a/tests/src/com/android/server/telecom/tests/BluetoothDeviceManagerTest.java b/tests/src/com/android/server/telecom/tests/BluetoothDeviceManagerTest.java index 977cef9b8..0116d2df0 100644 --- a/tests/src/com/android/server/telecom/tests/BluetoothDeviceManagerTest.java +++ b/tests/src/com/android/server/telecom/tests/BluetoothDeviceManagerTest.java @@ -425,7 +425,6 @@ public class BluetoothDeviceManagerTest extends TelecomTestCase { List<AudioDeviceInfo> devices = new ArrayList<>(); devices.add(mockAudioDeviceInfo); - when(mockAudioManager.getCommunicationDevice()).thenReturn(mSpeakerInfo); when(mockAudioManager.getAvailableCommunicationDevices()) .thenReturn(devices); when(mockAudioManager.setCommunicationDevice(eq(mockAudioDeviceInfo))) @@ -461,7 +460,6 @@ public class BluetoothDeviceManagerTest extends TelecomTestCase { List<AudioDeviceInfo> devices = new ArrayList<>(); devices.add(mockAudioDeviceInfo); - when(mockAudioManager.getCommunicationDevice()).thenReturn(mSpeakerInfo); when(mockAudioManager.getAvailableCommunicationDevices()) .thenReturn(devices); when(mockAudioManager.setCommunicationDevice(mockAudioDeviceInfo)) @@ -786,10 +784,10 @@ public class BluetoothDeviceManagerTest extends TelecomTestCase { assertFalse(mCommunicationDeviceTracker.isAudioDeviceSetForType(device_type)); } else { if (device_type == AudioDeviceInfo.TYPE_BLE_HEADSET) { - mBluetoothDeviceManager.clearLeAudioOrSpeakerCommunicationDevice(); + mBluetoothDeviceManager.clearLeAudioCommunicationDevice(); assertFalse(mBluetoothDeviceManager.isLeAudioCommunicationDevice()); } else { - mBluetoothDeviceManager.clearHearingAidOrSpeakerCommunicationDevice(); + mBluetoothDeviceManager.clearHearingAidCommunicationDevice(); assertFalse(mBluetoothDeviceManager.isHearingAidSetAsCommunicationDevice()); } } |