Merge "Remove A2dp offload disabled and LE audio offload enabled combination"

This commit is contained in:
Treehugger Robot
2022-10-05 16:04:05 +00:00
committed by Gerrit Code Review
4 changed files with 51 additions and 20 deletions

View File

@@ -102,7 +102,7 @@ public class BluetoothA2dpHwOffloadPreferenceController extends DeveloperOptions
final boolean offloadDisabled = final boolean offloadDisabled =
SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false); SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(!offloadDisabled)); SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(!offloadDisabled));
if (offloadDisabled) { if (!offloadDisabled) {
SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY,
Boolean.toString(!offloadDisabled)); Boolean.toString(!offloadDisabled));
} }

View File

@@ -16,7 +16,8 @@
package com.android.settings.development; 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; import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothManager; import android.bluetooth.BluetoothManager;
@@ -79,11 +80,11 @@ public class BluetoothLeAudioHwOffloadPreferenceController
final boolean leAudioEnabled = final boolean leAudioEnabled =
(mBluetoothAdapter.isLeAudioSupported() == BluetoothStatusCodes.FEATURE_SUPPORTED); (mBluetoothAdapter.isLeAudioSupported() == BluetoothStatusCodes.FEATURE_SUPPORTED);
final boolean leAudioOffloadSupported =
final boolean offloadSupported = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false) final boolean a2dpOffloadDisabled =
&& SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false); SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
if (leAudioEnabled && offloadSupported) { if (leAudioEnabled && leAudioOffloadSupported && !a2dpOffloadDisabled) {
final boolean offloadDisabled = final boolean offloadDisabled =
SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, true); SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, true);
((SwitchPreference) mPreference).setChecked(offloadDisabled); ((SwitchPreference) mPreference).setChecked(offloadDisabled);
@@ -102,10 +103,11 @@ public class BluetoothLeAudioHwOffloadPreferenceController
final boolean leAudioEnabled = final boolean leAudioEnabled =
(mBluetoothAdapter.isLeAudioSupported() == BluetoothStatusCodes.FEATURE_SUPPORTED); (mBluetoothAdapter.isLeAudioSupported() == BluetoothStatusCodes.FEATURE_SUPPORTED);
final boolean offloadSupported = final boolean leAudioOffloadSupported =
SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false) SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
&& SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false); final boolean a2dpOffloadDisabled =
if (leAudioEnabled && offloadSupported) { SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
if (leAudioEnabled && leAudioOffloadSupported && !a2dpOffloadDisabled) {
((SwitchPreference) mPreference).setChecked(true); ((SwitchPreference) mPreference).setChecked(true);
SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, "true"); SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, "true");
} else { } else {
@@ -118,7 +120,7 @@ public class BluetoothLeAudioHwOffloadPreferenceController
*/ */
public boolean isDefaultValue() { public boolean isDefaultValue() {
final boolean offloadSupported = final boolean offloadSupported =
SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false) !SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false)
&& SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false); && SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
final boolean offloadDisabled = final boolean offloadDisabled =
SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false); SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false);
@@ -133,11 +135,11 @@ public class BluetoothLeAudioHwOffloadPreferenceController
return; return;
} }
final boolean offloadDisabled = final boolean leaudioOffloadDisabled =
SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY,
false); false);
SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY,
Boolean.toString(!offloadDisabled)); Boolean.toString(!leaudioOffloadDisabled));
} }
/** /**

View File

@@ -65,18 +65,18 @@ public class BluetoothA2dpHwOffloadPreferenceControllerTest {
@Test @Test
public void onA2dpHwDialogConfirmedAsA2dpOffloadDisabled_shouldChangeProperty() { public void onA2dpHwDialogConfirmedAsA2dpOffloadDisabled_shouldChangeProperty() {
SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(false)); SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
mController.mChanged = true; mController.mChanged = true;
mController.onRebootDialogConfirmed(); mController.onRebootDialogConfirmed();
final boolean mode = SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false); final boolean mode = SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
assertThat(mode).isTrue(); assertThat(mode).isFalse();
} }
@Test @Test
public void onA2dpHwDialogConfirmedAsA2dpOffloadEnabled_shouldChangeProperty() { public void onA2dpHwDialogConfirmedAsA2dpOffloadEnabled_shouldChangeProperty() {
SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true)); SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(false));
SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true)); SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(false));
mController.mChanged = true; mController.mChanged = true;
@@ -84,8 +84,8 @@ public class BluetoothA2dpHwOffloadPreferenceControllerTest {
final boolean a2dpMode = SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, true); final boolean a2dpMode = SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, true);
final boolean leAudioMode = SystemProperties final boolean leAudioMode = SystemProperties
.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, true); .getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, true);
assertThat(a2dpMode).isFalse(); assertThat(a2dpMode).isTrue();
assertThat(leAudioMode).isFalse(); assertThat(leAudioMode).isTrue();
} }
@Test @Test

View File

@@ -16,14 +16,21 @@
package com.android.settings.development; package com.android.settings.development;
import static android.bluetooth.BluetoothStatusCodes.FEATURE_SUPPORTED;
import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController
.A2DP_OFFLOAD_DISABLED_PROPERTY;
import static com.android.settings.development.BluetoothLeAudioHwOffloadPreferenceController import static com.android.settings.development.BluetoothLeAudioHwOffloadPreferenceController
.LE_AUDIO_OFFLOAD_DISABLED_PROPERTY; .LE_AUDIO_OFFLOAD_DISABLED_PROPERTY;
import static com.android.settings.development.BluetoothLeAudioHwOffloadPreferenceController
.LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.bluetooth.BluetoothAdapter;
import android.content.Context; import android.content.Context;
import android.os.SystemProperties; import android.os.SystemProperties;
@@ -45,6 +52,8 @@ public class BluetoothLeAudioHwOffloadPreferenceControllerTest {
private PreferenceScreen mPreferenceScreen; private PreferenceScreen mPreferenceScreen;
@Mock @Mock
private DevelopmentSettingsDashboardFragment mFragment; private DevelopmentSettingsDashboardFragment mFragment;
@Mock
private BluetoothAdapter mBluetoothAdapter;
private Context mContext; private Context mContext;
private SwitchPreference mPreference; private SwitchPreference mPreference;
@@ -59,6 +68,9 @@ public class BluetoothLeAudioHwOffloadPreferenceControllerTest {
when(mPreferenceScreen.findPreference(mController.getPreferenceKey())) when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
.thenReturn(mPreference); .thenReturn(mPreference);
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);
mController.mBluetoothAdapter = mBluetoothAdapter;
when(mBluetoothAdapter.isLeAudioSupported())
.thenReturn(FEATURE_SUPPORTED);
} }
@Test @Test
@@ -91,4 +103,21 @@ public class BluetoothLeAudioHwOffloadPreferenceControllerTest {
final boolean mode = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false); final boolean mode = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false);
assertThat(mode).isFalse(); assertThat(mode).isFalse();
} }
@Test
public void asA2dpOffloadDisabled_shouldNotSwitchLeAudioOffloadStatus() {
SystemProperties.set(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, Boolean.toString(true));
SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(false));
mController.updateState(null);
boolean leAueioDisabled =
SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false);
assertThat(leAueioDisabled).isFalse();
SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
mController.updateState(null);
leAueioDisabled = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false);
assertThat(leAueioDisabled).isTrue();
}
} }