diff --git a/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java index 1890fbd9818..dfa808f644d 100644 --- a/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java +++ b/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java @@ -16,6 +16,7 @@ package com.android.settings.development; +import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController.A2DP_OFFLOAD_SUPPORTED_PROPERTY; import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController.A2DP_OFFLOAD_DISABLED_PROPERTY; import android.bluetooth.BluetoothAdapter; @@ -105,13 +106,14 @@ public class BluetoothLeAudioHwOffloadPreferenceController (mBluetoothAdapter.isLeAudioSupported() == BluetoothStatusCodes.FEATURE_SUPPORTED); final boolean leAudioOffloadSupported = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false); - final boolean a2dpOffloadDisabled = - SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false); - if (leAudioEnabled && leAudioOffloadSupported && !a2dpOffloadDisabled) { - ((TwoStatePreference) mPreference).setChecked(true); - SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, "true"); - } else { + final boolean a2dpOffloadSupported = + SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false); + + if(!leAudioEnabled || !leAudioOffloadSupported || !a2dpOffloadSupported) { mPreference.setEnabled(false); + } else { + ((TwoStatePreference) mPreference).setChecked(false); + SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, "false"); } } diff --git a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceControllerTest.java index aa05f628f7f..c2a4d033080 100644 --- a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceControllerTest.java @@ -20,6 +20,8 @@ import static android.bluetooth.BluetoothStatusCodes.FEATURE_SUPPORTED; import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController .A2DP_OFFLOAD_DISABLED_PROPERTY; +import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController + .A2DP_OFFLOAD_SUPPORTED_PROPERTY; import static com.android.settings.development.BluetoothLeAudioHwOffloadPreferenceController .LE_AUDIO_OFFLOAD_DISABLED_PROPERTY; import static com.android.settings.development.BluetoothLeAudioHwOffloadPreferenceController @@ -120,4 +122,17 @@ public class BluetoothLeAudioHwOffloadPreferenceControllerTest { leAueioDisabled = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false); assertThat(leAueioDisabled).isTrue(); } + + @Test + public void asDisableDeveloperOption_ResetLEOffloadBasedOnA2dpLeAudioOffloadSupported() { + SystemProperties.set(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, Boolean.toString(true)); + SystemProperties.set(A2DP_OFFLOAD_SUPPORTED_PROPERTY, Boolean.toString(true)); + + SystemProperties.set( + LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true)); + mController.onDeveloperOptionsSwitchDisabled(); + boolean leAueioDisabled = + SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false); + assertThat(leAueioDisabled).isFalse(); + } }