Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7443e2df authored by Alice Kuo's avatar Alice Kuo
Browse files

Avoid update the le audio mode as bluetooth turn off

1. Fix the wrong "disable" setting as bluetooth state is off
2. disable the switcher as bluetooth state is disabled

Bug: 336448875
Test: atest
Change-Id: I34d9f6aef11712cad16ff105c5859a694f1fe9c9
parent 211afbea
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -96,17 +96,17 @@ public class BluetoothLeAudioModePreferenceController
            return;
        }

        String currentValue;
        if (mBluetoothAdapter.isLeAudioBroadcastSourceSupported()
                == BluetoothStatusCodes.FEATURE_SUPPORTED) {
            SystemProperties.set(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, "broadcast");
            currentValue = "broadcast";
        } else if (mBluetoothAdapter.isLeAudioSupported()
                == BluetoothStatusCodes.FEATURE_SUPPORTED) {
            SystemProperties.set(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, "unicast");
            currentValue = "unicast";
        } else {
            SystemProperties.set(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, "disabled");
            currentValue = "disabled";
        }

        final String currentValue = SystemProperties.get(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY);
        int index = 0;
        for (int i = 0; i < mListValues.length; i++) {
            if (TextUtils.equals(currentValue, mListValues[i])) {
@@ -118,6 +118,11 @@ public class BluetoothLeAudioModePreferenceController
        final ListPreference listPreference = (ListPreference) preference;
        listPreference.setValue(mListValues[index]);
        listPreference.setSummary(mListSummaries[index]);

        if (!mBluetoothAdapter.isEnabled()) {
            listPreference.setEnabled(false);
            return;
        }
    }

    /**
+12 −0
Original line number Diff line number Diff line
@@ -105,4 +105,16 @@ public class BluetoothLeAudioModePreferenceControllerTest {
        assertThat(SystemProperties.get(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, mListValues[0])
                        .equals(mController.mNewMode)).isFalse();
    }

    @Test
    public void onBluetoothTurnOff_shouldNotChangeLeAudioMode() {
        SystemProperties.set(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, mListValues[1]);
        when(mBluetoothAdapter.isEnabled())
                .thenReturn(false);

        mController.updateState(mPreference);
        final String mode = SystemProperties
                .get(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, mListValues[0]);
        assertThat(mode.equals(mListValues[1])).isTrue();
    }
}