diff options
| author | 2024-11-06 16:10:27 +0800 | |
|---|---|---|
| committer | 2024-11-12 09:33:06 +0000 | |
| commit | 6d23239e30031d2c563d46b99687035df19bc4b9 (patch) | |
| tree | 0350c88489c5866d5bca8e1e82a49c9126c66cef | |
| parent | 3ea041fc25480d09b5db4af6006c6ddf16f50019 (diff) | |
Add utils to enable audio sharing hysteresis mode fix when preview is on.
Test: atest
Bug: 368401233
Flag: com.android.settingslib.flags.audio_sharing_developer_option
Change-Id: I077147dfd60ec52408ac6a048c78447fca074566
2 files changed, 44 insertions, 0 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java index a87b8153b858..4eea4ba02198 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java @@ -1,6 +1,7 @@ package com.android.settingslib.bluetooth; import static com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast.UNKNOWN_VALUE_PLACEHOLDER; +import static com.android.settingslib.flags.Flags.audioSharingHysteresisModeFix; import static com.android.settingslib.widget.AdaptiveOutlineDrawable.ICON_TYPE_ADVANCED; import android.annotation.SuppressLint; @@ -651,6 +652,13 @@ public class BluetoothUtils { context.getContentResolver())); } + /** Returns if the le audio sharing hysteresis mode fix is available. */ + @WorkerThread + public static boolean isAudioSharingHysteresisModeFixAvailable(@Nullable Context context) { + return (audioSharingHysteresisModeFix() && Flags.enableLeAudioSharing()) + || (context != null && isAudioSharingPreviewEnabled(context.getContentResolver())); + } + /** Returns if the le audio sharing is enabled. */ public static boolean isAudioSharingEnabled() { BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java index 6d481dbe64e9..fa5d54283a17 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java @@ -1256,4 +1256,40 @@ public class BluetoothUtilsTest { assertThat(BluetoothUtils.isAudioSharingUIAvailable(mContext)).isTrue(); } + + @Test + public void isAudioSharingHysteresisModeFixAvailable_mainAndPreviewFlagOff_returnsFalse() { + mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); + mSetFlagsRule.enableFlags(Flags.FLAG_AUDIO_SHARING_HYSTERESIS_MODE_FIX); + mSetFlagsRule.disableFlags(Flags.FLAG_AUDIO_SHARING_DEVELOPER_OPTION); + + assertThat(BluetoothUtils.isAudioSharingHysteresisModeFixAvailable(mContext)).isFalse(); + } + + @Test + public void isAudioSharingHysteresisModeFixAvailable_hysteresisFixFlagOff_returnsFalse() { + mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); + mSetFlagsRule.disableFlags(Flags.FLAG_AUDIO_SHARING_HYSTERESIS_MODE_FIX); + mSetFlagsRule.disableFlags(Flags.FLAG_AUDIO_SHARING_DEVELOPER_OPTION); + + assertThat(BluetoothUtils.isAudioSharingHysteresisModeFixAvailable(mContext)).isFalse(); + } + + @Test + public void isAudioSharingHysteresisModeFixAvailable_previewFlagOn_returnsTrue() { + mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); + mSetFlagsRule.disableFlags(Flags.FLAG_AUDIO_SHARING_HYSTERESIS_MODE_FIX); + mSetFlagsRule.enableFlags(Flags.FLAG_AUDIO_SHARING_DEVELOPER_OPTION); + + assertThat(BluetoothUtils.isAudioSharingHysteresisModeFixAvailable(mContext)).isTrue(); + } + + @Test + public void isAudioSharingHysteresisModeFixAvailable_mainAndPreviewFlagOn_returnsTrue() { + mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); + mSetFlagsRule.enableFlags(Flags.FLAG_AUDIO_SHARING_HYSTERESIS_MODE_FIX); + mSetFlagsRule.disableFlags(Flags.FLAG_AUDIO_SHARING_DEVELOPER_OPTION); + + assertThat(BluetoothUtils.isAudioSharingHysteresisModeFixAvailable(mContext)).isTrue(); + } } |