diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java index f782c6b2a6a..58d278704b2 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java @@ -85,6 +85,8 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll "persist.bluetooth.leaudio.toggle_visible"; private static final String BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY = "persist.bluetooth.leaudio.bypass_allow_list"; + private static final String LE_AUDIO_TOGGLE_VISIBLE_FOR_ASHA_PROPERTY = + "bluetooth.leaudio.toggle_visible_for_asha"; private Set mInvisibleProfiles = Collections.emptySet(); private final AtomicReference> mAdditionalInvisibleProfiles = @@ -378,6 +380,12 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll // Remove hearing aids toggle anyway since showing the toggle will confuse users if (hearingAidSupported) { result.remove(mManager.getProfileManager().getHearingAidProfile()); + if (leAudioSupported + && !SystemProperties.getBoolean(BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY, false) + && !SystemProperties.getBoolean( + LE_AUDIO_TOGGLE_VISIBLE_FOR_ASHA_PROPERTY, true)) { + result.remove(mManager.getProfileManager().getLeAudioProfile()); + } } if (leAudioSupported && !classicAudioSupported && !hearingAidSupported) { mIsLeAudioOnlyDevice = true; diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java index 2d007e1b134..a2ad063a464 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java @@ -29,6 +29,7 @@ import android.bluetooth.BluetoothClass; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothProfile; import android.content.Context; +import android.os.SystemProperties; import android.platform.test.flag.junit.CheckFlagsRule; import android.platform.test.flag.junit.DeviceFlagsValueProvider; import android.platform.test.flag.junit.SetFlagsRule; @@ -646,6 +647,7 @@ public class BluetoothDetailsProfilesControllerTest extends BluetoothDetailsCont List switches = getProfileSwitches(false); assertThat(switches.isEmpty()).isTrue(); } + @Test public void ashaHearingAidWithLeAudio_showLeAudioToggle() { setupDevice(makeDefaultDeviceConfig()); @@ -658,4 +660,16 @@ public class BluetoothDetailsProfilesControllerTest extends BluetoothDetailsCont assertThat(switches.getFirst().getTitle()).isEqualTo( mContext.getString(mLeAudioProfile.getNameResource(mDevice))); } + + @Test + public void ashaHearingAidWithLeAudio_hideLeAudioToggleFromSystemProperties() { + setupDevice(makeDefaultDeviceConfig()); + addHearingAidProfileToDevice(false); + addLeAudioProfileToDevice(true); + SystemProperties.set("bluetooth.leaudio.toggle_visible_for_asha", "false"); + showScreen(mController); + + List switches = getProfileSwitches(false); + assertThat(switches.isEmpty()).isTrue(); + } }