Offer a way to hide LE Audio toggle for ASHA device

Flag: EXEMPT bugfix
Bug: 390070780
Test: atest BluetoothDetailsProfilesControllerTest
Test: manually check on real device
Change-Id: I078403f7071c1011acbedae2d1d0e55783cc0661
This commit is contained in:
Angela Wang
2025-01-15 04:36:00 +00:00
parent 03556af237
commit 71f4b0f8e3
2 changed files with 22 additions and 0 deletions

View File

@@ -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<String> mInvisibleProfiles = Collections.emptySet();
private final AtomicReference<Set<String>> 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;

View File

@@ -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<SwitchPreferenceCompat> 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<SwitchPreferenceCompat> switches = getProfileSwitches(false);
assertThat(switches.isEmpty()).isTrue();
}
}