diff --git a/res/layout/bluetooth_audio_codec_dialog.xml b/res/layout/bluetooth_audio_codec_dialog.xml index 9a6b768bb8f..96364270558 100644 --- a/res/layout/bluetooth_audio_codec_dialog.xml +++ b/res/layout/bluetooth_audio_codec_dialog.xml @@ -54,17 +54,8 @@ - - - - - diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml index ece9822a80f..2607c09126a 100644 --- a/res/xml/development_settings.xml +++ b/res/xml/development_settings.xml @@ -288,40 +288,49 @@ android:entries="@array/bluetooth_avrcp_versions" android:entryValues="@array/bluetooth_avrcp_version_values" /> - + + + android:dialogLayout="@layout/bluetooth_audio_codec_dialog" + android:positiveButtonText="" + android:negativeButtonText="@string/dlg_ok"/> - + android:dialogLayout="@layout/bluetooth_audio_sample_rate_dialog" + android:positiveButtonText="" + android:negativeButtonText="@string/dlg_ok"/> - + android:dialogLayout="@layout/bluetooth_audio_bit_per_sample_dialog" + android:positiveButtonText="" + android:negativeButtonText="@string/dlg_ok"/> - + android:dialogLayout="@layout/bluetooth_audio_channel_mode_dialog" + android:positiveButtonText="" + android:negativeButtonText="@string/dlg_ok"/> - + android:dialogLayout="@layout/bluetooth_audio_quality_dialog" + android:positiveButtonText="" + android:negativeButtonText="@string/dlg_ok"/> 0) { - index %= 10; - } else { - index = DEFAULT_INDEX; - } - switch (index) { - case 0: - case 1: - case 2: - case 3: - break; - default: - index = DEFAULT_INDEX; - break; - } - return index; - } -} diff --git a/src/com/android/settings/development/BluetoothAudioSampleRatePreferenceController.java b/src/com/android/settings/development/BluetoothAudioSampleRatePreferenceController.java deleted file mode 100644 index 35b449e6b2b..00000000000 --- a/src/com/android/settings/development/BluetoothAudioSampleRatePreferenceController.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.development; - -import android.bluetooth.BluetoothCodecConfig; -import android.content.Context; - -import com.android.settings.R; -import com.android.settingslib.core.lifecycle.Lifecycle; - -public class BluetoothAudioSampleRatePreferenceController extends - AbstractBluetoothA2dpPreferenceController { - - private static final int DEFAULT_INDEX = 0; - private static final String BLUETOOTH_SELECT_A2DP_SAMPLE_RATE_KEY = - "bluetooth_select_a2dp_sample_rate"; - - public BluetoothAudioSampleRatePreferenceController(Context context, Lifecycle lifecycle, - BluetoothA2dpConfigStore store) { - super(context, lifecycle, store); - } - - @Override - public String getPreferenceKey() { - return BLUETOOTH_SELECT_A2DP_SAMPLE_RATE_KEY; - } - - @Override - protected String[] getListValues() { - return mContext.getResources().getStringArray( - R.array.bluetooth_a2dp_codec_sample_rate_values); - } - - @Override - protected String[] getListSummaries() { - return mContext.getResources().getStringArray( - R.array.bluetooth_a2dp_codec_sample_rate_summaries); - } - - @Override - protected int getDefaultIndex() { - return DEFAULT_INDEX; - } - - @Override - protected void writeConfigurationValues(Object newValue) { - final int index = mPreference.findIndexOfValue(newValue.toString()); - int sampleRateValue = BluetoothCodecConfig.SAMPLE_RATE_NONE; // default - switch (index) { - case 0: - sampleRateValue = BluetoothCodecConfig.SAMPLE_RATE_NONE; - break; - case 1: - sampleRateValue = BluetoothCodecConfig.SAMPLE_RATE_44100; - break; - case 2: - sampleRateValue = BluetoothCodecConfig.SAMPLE_RATE_48000; - break; - case 3: - sampleRateValue = BluetoothCodecConfig.SAMPLE_RATE_88200; - break; - case 4: - sampleRateValue = BluetoothCodecConfig.SAMPLE_RATE_96000; - break; - default: - break; - } - mBluetoothA2dpConfigStore.setSampleRate(sampleRateValue); - } - - @Override - protected int getCurrentA2dpSettingIndex(BluetoothCodecConfig config) { - final int sampleRate = config.getSampleRate(); - int index = DEFAULT_INDEX; - switch (sampleRate) { - case BluetoothCodecConfig.SAMPLE_RATE_44100: - index = 1; - break; - case BluetoothCodecConfig.SAMPLE_RATE_48000: - index = 2; - break; - case BluetoothCodecConfig.SAMPLE_RATE_88200: - index = 3; - break; - case BluetoothCodecConfig.SAMPLE_RATE_96000: - index = 4; - break; - case BluetoothCodecConfig.SAMPLE_RATE_176400: - case BluetoothCodecConfig.SAMPLE_RATE_192000: - case BluetoothCodecConfig.SAMPLE_RATE_NONE: - default: - break; - } - return index; - } -} diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java index 7fc898bf452..8f1db0f97c2 100644 --- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java +++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java @@ -44,6 +44,14 @@ import com.android.settings.Utils; import com.android.settings.dashboard.RestrictedDashboardFragment; import com.android.settings.development.autofill.AutofillLoggingLevelPreferenceController; import com.android.settings.development.autofill.AutofillResetOptionsPreferenceController; +import com.android.settings.development.bluetooth.AbstractBluetoothDialogPreferenceController; +import com.android.settings.development.bluetooth.AbstractBluetoothPreferenceController; +import com.android.settings.development.bluetooth.BluetoothBitPerSampleDialogPreferenceController; +import com.android.settings.development.bluetooth.BluetoothChannelModeDialogPreferenceController; +import com.android.settings.development.bluetooth.BluetoothCodecDialogPreferenceController; +import com.android.settings.development.bluetooth.BluetoothHDAudioPreferenceController; +import com.android.settings.development.bluetooth.BluetoothQualityDialogPreferenceController; +import com.android.settings.development.bluetooth.BluetoothSampleRateDialogPreferenceController; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.widget.SwitchBar; import com.android.settingslib.core.AbstractPreferenceController; @@ -62,7 +70,8 @@ import java.util.List; public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFragment implements SwitchBar.OnSwitchChangeListener, OemUnlockDialogHost, AdbDialogHost, AdbClearKeysDialogHost, LogPersistDialogHost, - BluetoothA2dpHwOffloadRebootDialog.OnA2dpHwDialogConfirmedListener { + BluetoothA2dpHwOffloadRebootDialog.OnA2dpHwDialogConfirmedListener, + AbstractBluetoothPreferenceController.Callback { private static final String TAG = "DevSettingsDashboard"; @@ -455,16 +464,6 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra controllers.add(new BluetoothAbsoluteVolumePreferenceController(context)); controllers.add(new BluetoothAvrcpVersionPreferenceController(context)); controllers.add(new BluetoothA2dpHwOffloadPreferenceController(context, fragment)); - controllers.add(new BluetoothAudioCodecPreferenceController(context, lifecycle, - bluetoothA2dpConfigStore)); - controllers.add(new BluetoothAudioSampleRatePreferenceController(context, lifecycle, - bluetoothA2dpConfigStore)); - controllers.add(new BluetoothAudioBitsPerSamplePreferenceController(context, lifecycle, - bluetoothA2dpConfigStore)); - controllers.add(new BluetoothAudioChannelModePreferenceController(context, lifecycle, - bluetoothA2dpConfigStore)); - controllers.add(new BluetoothAudioQualityPreferenceController(context, lifecycle, - bluetoothA2dpConfigStore)); controllers.add(new BluetoothMaxConnectedAudioDevicesPreferenceController(context)); controllers.add(new ShowTapsPreferenceController(context)); controllers.add(new PointerLocationPreferenceController(context)); @@ -511,6 +510,19 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra controllers.add(new DefaultLaunchPreferenceController(context, "inactive_apps")); controllers.add(new AutofillLoggingLevelPreferenceController(context, lifecycle)); controllers.add(new AutofillResetOptionsPreferenceController(context)); + controllers.add(new BluetoothCodecDialogPreferenceController(context, lifecycle, + bluetoothA2dpConfigStore, fragment)); + controllers.add(new BluetoothSampleRateDialogPreferenceController(context, lifecycle, + bluetoothA2dpConfigStore)); + controllers.add(new BluetoothBitPerSampleDialogPreferenceController(context, lifecycle, + bluetoothA2dpConfigStore)); + controllers.add(new BluetoothQualityDialogPreferenceController(context, lifecycle, + bluetoothA2dpConfigStore)); + controllers.add(new BluetoothChannelModeDialogPreferenceController(context, lifecycle, + bluetoothA2dpConfigStore)); + controllers.add(new BluetoothHDAudioPreferenceController(context, lifecycle, + bluetoothA2dpConfigStore, fragment)); + return controllers; } @@ -519,6 +531,27 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra return use(clazz); } + @Override + public void onBluetoothCodecChanged() { + for (AbstractPreferenceController controller : mPreferenceControllers) { + if (controller instanceof AbstractBluetoothDialogPreferenceController + && !(controller instanceof BluetoothCodecDialogPreferenceController)) { + ((AbstractBluetoothDialogPreferenceController) controller) + .onBluetoothCodecUpdated(); + } + } + } + + @Override + public void onBluetoothHDAudioEnabled(boolean enabled) { + for (AbstractPreferenceController controller : mPreferenceControllers) { + if (controller instanceof AbstractBluetoothDialogPreferenceController) { + ((AbstractBluetoothDialogPreferenceController) controller).onHDAudioEnabled( + enabled); + } + } + } + /** * For Search. */ diff --git a/src/com/android/settings/development/bluetooth/BluetoothQualityDialogPreferenceController.java b/src/com/android/settings/development/bluetooth/BluetoothQualityDialogPreferenceController.java index b97ca442164..4ac389bf6ce 100644 --- a/src/com/android/settings/development/bluetooth/BluetoothQualityDialogPreferenceController.java +++ b/src/com/android/settings/development/bluetooth/BluetoothQualityDialogPreferenceController.java @@ -106,7 +106,7 @@ public class BluetoothQualityDialogPreferenceController extends @Override public void onHDAudioEnabled(boolean enabled) { mPreference.setEnabled(false); - }; + } @VisibleForTesting int convertCfgToBtnIndex(int config) { diff --git a/tests/robotests/src/com/android/settings/development/BluetoothAudioBitsPerSamplePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothAudioBitsPerSamplePreferenceControllerTest.java deleted file mode 100644 index 8c5cfd04fda..00000000000 --- a/tests/robotests/src/com/android/settings/development/BluetoothAudioBitsPerSamplePreferenceControllerTest.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.development; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.bluetooth.BluetoothCodecConfig; -import android.content.Context; - -import androidx.lifecycle.LifecycleOwner; -import androidx.preference.ListPreference; -import androidx.preference.PreferenceScreen; - -import com.android.settingslib.core.lifecycle.Lifecycle; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; - -@RunWith(RobolectricTestRunner.class) -public class BluetoothAudioBitsPerSamplePreferenceControllerTest { - - @Mock - private BluetoothCodecConfig mBluetoothCodecConfig; - @Mock - private ListPreference mPreference; - @Mock - private PreferenceScreen mScreen; - @Mock - private BluetoothA2dpConfigStore mBluetoothA2dpConfigStore; - - /** - * 0: Use System Selection (Default) - * 1: 16 bits/sample - * 2: 24 bits/sample - * 3: 32 bits/sample - */ - private String[] mListValues; - private Context mContext; - private BluetoothAudioBitsPerSamplePreferenceController mController; - private LifecycleOwner mLifecycleOwner; - private Lifecycle mLifecycle; - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; - mLifecycleOwner = () -> mLifecycle; - mLifecycle = new Lifecycle(mLifecycleOwner); - mController = spy(new BluetoothAudioBitsPerSamplePreferenceController(mContext, - mLifecycle, mBluetoothA2dpConfigStore)); - mListValues = mController.getListValues(); - when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); - mController.displayPreference(mScreen); - } - - @Test - public void writeConfigurationValues_option2_shouldWriteOption2ToSharedStore() { - when(mPreference.findIndexOfValue(mListValues[2])).thenReturn(2); - mController.writeConfigurationValues(mListValues[2]); - - verify(mBluetoothA2dpConfigStore).setBitsPerSample(BluetoothCodecConfig.BITS_PER_SAMPLE_24); - } - - @Test - public void writeConfigurationValues_default_shouldSetDefault() { - when(mPreference.findIndexOfValue(mListValues[0])).thenReturn(0); - mController.writeConfigurationValues(mListValues[0]); - - verify(mBluetoothA2dpConfigStore).setBitsPerSample( - BluetoothCodecConfig.BITS_PER_SAMPLE_NONE); - } - - @Test - public void getCurrentA2dpSettingIndex_option2_shouldReturnSecondIndex() { - when(mBluetoothCodecConfig.getBitsPerSample()).thenReturn( - BluetoothCodecConfig.BITS_PER_SAMPLE_24); - - final int index = mController.getCurrentA2dpSettingIndex(mBluetoothCodecConfig); - - assertThat(index).isEqualTo(2); - } - - @Test - public void getCurrentA2dpSettingIndex_unknownOption_shouldReturnDefault() { - when(mBluetoothCodecConfig.getCodecType()).thenReturn(1381391835); - - final int index = mController.getCurrentA2dpSettingIndex(mBluetoothCodecConfig); - - assertThat(index).isEqualTo(0); - } -} diff --git a/tests/robotests/src/com/android/settings/development/BluetoothAudioChannelModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothAudioChannelModePreferenceControllerTest.java deleted file mode 100644 index d9a26711115..00000000000 --- a/tests/robotests/src/com/android/settings/development/BluetoothAudioChannelModePreferenceControllerTest.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.development; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.bluetooth.BluetoothCodecConfig; -import android.content.Context; - -import androidx.lifecycle.LifecycleOwner; -import androidx.preference.ListPreference; -import androidx.preference.PreferenceScreen; - -import com.android.settingslib.core.lifecycle.Lifecycle; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; - -@RunWith(RobolectricTestRunner.class) -public class BluetoothAudioChannelModePreferenceControllerTest { - - @Mock - private BluetoothCodecConfig mBluetoothCodecConfig; - @Mock - private ListPreference mPreference; - @Mock - private PreferenceScreen mScreen; - @Mock - private BluetoothA2dpConfigStore mBluetoothA2dpConfigStore; - - /** - * 0: Use System Selection (Default) - * 1: Mono - * 2: Stereo - */ - private String[] mListValues; - private Context mContext; - private BluetoothAudioChannelModePreferenceController mController; - private LifecycleOwner mLifecycleOwner; - private Lifecycle mLifecycle; - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; - mLifecycleOwner = () -> mLifecycle; - mLifecycle = new Lifecycle(mLifecycleOwner); - mController = spy(new BluetoothAudioChannelModePreferenceController(mContext, - mLifecycle, mBluetoothA2dpConfigStore)); - mListValues = mController.getListValues(); - when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); - mController.displayPreference(mScreen); - } - - @Test - public void writeConfigurationValues_option2_shouldWriteOption2ToSharedStore() { - when(mPreference.findIndexOfValue(mListValues[2])).thenReturn(2); - mController.writeConfigurationValues(mListValues[2]); - - verify(mBluetoothA2dpConfigStore).setChannelMode(BluetoothCodecConfig.CHANNEL_MODE_STEREO); - } - - @Test - public void writeConfigurationValues_default_shouldSetDefault() { - when(mPreference.findIndexOfValue(mListValues[0])).thenReturn(0); - mController.writeConfigurationValues(mListValues[0]); - - verify(mBluetoothA2dpConfigStore).setChannelMode(BluetoothCodecConfig.CHANNEL_MODE_NONE); - } - - @Test - public void getCurrentA2dpSettingIndex_option2_shouldReturnSecondIndex() { - when(mBluetoothCodecConfig.getChannelMode()) - .thenReturn(BluetoothCodecConfig.CHANNEL_MODE_STEREO); - - final int index = mController.getCurrentA2dpSettingIndex(mBluetoothCodecConfig); - - assertThat(index).isEqualTo(2); - } - - @Test - public void getCurrentA2dpSettingIndex_unknownOption_shouldReturnDefault() { - when(mBluetoothCodecConfig.getCodecType()).thenReturn(1381391835); - - final int index = mController.getCurrentA2dpSettingIndex(mBluetoothCodecConfig); - - assertThat(index).isEqualTo(0); - } -} diff --git a/tests/robotests/src/com/android/settings/development/BluetoothAudioCodecPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothAudioCodecPreferenceControllerTest.java deleted file mode 100644 index 7be8a8879e7..00000000000 --- a/tests/robotests/src/com/android/settings/development/BluetoothAudioCodecPreferenceControllerTest.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.development; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.bluetooth.BluetoothCodecConfig; -import android.content.Context; - -import androidx.lifecycle.LifecycleOwner; -import androidx.preference.ListPreference; -import androidx.preference.PreferenceScreen; - -import com.android.settingslib.core.lifecycle.Lifecycle; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; - -@RunWith(RobolectricTestRunner.class) -public class BluetoothAudioCodecPreferenceControllerTest { - - @Mock - private BluetoothCodecConfig mBluetoothCodecConfig; - @Mock - private ListPreference mPreference; - @Mock - private PreferenceScreen mScreen; - @Mock - private BluetoothA2dpConfigStore mBluetoothA2dpConfigStore; - - /** - * 0: Use System Selection (Default) - * 1: SBC - * 2: AAC - * 3: Qualcomm aptX audio - * 4: Qualcomm aptX HD audio - * 5: LDAC - * 6: Enable Optional Codecs - * 7: Disable Optional Codecs - */ - private String[] mListValues; - private Context mContext; - private BluetoothAudioCodecPreferenceController mController; - private LifecycleOwner mLifecycleOwner; - private Lifecycle mLifecycle; - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; - mLifecycleOwner = () -> mLifecycle; - mLifecycle = new Lifecycle(mLifecycleOwner); - mController = spy(new BluetoothAudioCodecPreferenceController(mContext, mLifecycle, - mBluetoothA2dpConfigStore)); - mListValues = mController.getListValues(); - when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); - mController.displayPreference(mScreen); - } - - @Test - public void writeConfigurationValues_option2_shouldWriteOption2ToSharedStore() { - when(mPreference.findIndexOfValue(mListValues[2])).thenReturn(2); - mController.writeConfigurationValues(mListValues[2]); - - verify(mBluetoothA2dpConfigStore).setCodecType(BluetoothCodecConfig.SOURCE_CODEC_TYPE_AAC); - verify(mBluetoothA2dpConfigStore).setCodecPriority( - BluetoothCodecConfig.CODEC_PRIORITY_HIGHEST); - } - - @Test - public void writeConfigurationValues_default_shouldSetDefaultPriority() { - when(mPreference.findIndexOfValue(mListValues[0])).thenReturn(0); - mController.writeConfigurationValues(mListValues[0]); - - verify(mBluetoothA2dpConfigStore).setCodecPriority( - BluetoothCodecConfig.CODEC_PRIORITY_DEFAULT); - } - - @Test - public void getCurrentA2dpSettingIndex_option2_shouldReturnSecondIndex() { - when(mBluetoothCodecConfig.getCodecType()).thenReturn( - BluetoothCodecConfig.SOURCE_CODEC_TYPE_AAC); - - final int index = mController.getCurrentA2dpSettingIndex(mBluetoothCodecConfig); - - assertThat(index).isEqualTo(2); - } - - @Test - public void getCurrentA2dpSettingIndex_unknownOption_shouldReturnDefault() { - when(mBluetoothCodecConfig.getCodecType()).thenReturn(1381391835); - - final int index = mController.getCurrentA2dpSettingIndex(mBluetoothCodecConfig); - - assertThat(index).isEqualTo(0); - } -} diff --git a/tests/robotests/src/com/android/settings/development/BluetoothAudioQualityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothAudioQualityPreferenceControllerTest.java deleted file mode 100644 index 93d92fdc508..00000000000 --- a/tests/robotests/src/com/android/settings/development/BluetoothAudioQualityPreferenceControllerTest.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.development; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.bluetooth.BluetoothCodecConfig; -import android.content.Context; - -import androidx.lifecycle.LifecycleOwner; -import androidx.preference.ListPreference; -import androidx.preference.PreferenceScreen; - -import com.android.settingslib.core.lifecycle.Lifecycle; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; - -@RunWith(RobolectricTestRunner.class) -public class BluetoothAudioQualityPreferenceControllerTest { - - @Mock - private BluetoothCodecConfig mBluetoothCodecConfig; - @Mock - private ListPreference mPreference; - @Mock - private PreferenceScreen mScreen; - @Mock - private BluetoothA2dpConfigStore mBluetoothA2dpConfigStore; - - /** - * 0: Optimized for Audio Quality (990kbps/909kbps) - * 1: Balanced Audio And Connection Quality (660kbps/606kbps) - * 2: Stereo - */ - private String[] mListValues; - private Context mContext; - private BluetoothAudioQualityPreferenceController mController; - private LifecycleOwner mLifecycleOwner; - private Lifecycle mLifecycle; - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; - mLifecycleOwner = () -> mLifecycle; - mLifecycle = new Lifecycle(mLifecycleOwner); - mController = spy(new BluetoothAudioQualityPreferenceController(mContext, - mLifecycle, mBluetoothA2dpConfigStore)); - mListValues = mController.getListValues(); - when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); - mController.displayPreference(mScreen); - } - - @Test - public void writeConfigurationValues_option3_shouldWrite1003ToSharedStore() { - when(mPreference.findIndexOfValue(mListValues[3])).thenReturn(3); - mController.writeConfigurationValues(mListValues[3]); - - verify(mBluetoothA2dpConfigStore).setCodecSpecific1Value(1003); - } - - @Test - public void writeConfigurationValues_default_shouldSetDefault() { - when(mPreference.findIndexOfValue(mListValues[0])).thenReturn(0); - mController.writeConfigurationValues(mListValues[0]); - - verify(mBluetoothA2dpConfigStore).setCodecSpecific1Value(1000); - } - - @Test - public void getCurrentA2dpSettingIndex_option2_shouldReturnSecondIndex() { - when(mBluetoothCodecConfig.getCodecSpecific1()).thenReturn(Long.valueOf(2)); - - final int index = mController.getCurrentA2dpSettingIndex(mBluetoothCodecConfig); - - assertThat(index).isEqualTo(2); - } - - @Test - public void getCurrentA2dpSettingIndex_unknownOption_shouldReturnDefault() { - when(mBluetoothCodecConfig.getCodecType()).thenReturn(1381391835); - - final int index = mController.getCurrentA2dpSettingIndex(mBluetoothCodecConfig); - - assertThat(index).isEqualTo(3); - } -} diff --git a/tests/robotests/src/com/android/settings/development/BluetoothAudioSampleRatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothAudioSampleRatePreferenceControllerTest.java deleted file mode 100644 index 3b469c5fdb1..00000000000 --- a/tests/robotests/src/com/android/settings/development/BluetoothAudioSampleRatePreferenceControllerTest.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.development; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.bluetooth.BluetoothCodecConfig; -import android.content.Context; - -import androidx.lifecycle.LifecycleOwner; -import androidx.preference.ListPreference; -import androidx.preference.PreferenceScreen; - -import com.android.settingslib.core.lifecycle.Lifecycle; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; - -@RunWith(RobolectricTestRunner.class) -public class BluetoothAudioSampleRatePreferenceControllerTest { - - @Mock - private BluetoothCodecConfig mBluetoothCodecConfig; - @Mock - private ListPreference mPreference; - @Mock - private PreferenceScreen mScreen; - @Mock - private BluetoothA2dpConfigStore mBluetoothA2dpConfigStore; - - /** - * 0: Use System Selection (Default) - * 1: 44.1 kHz - * 2: 48.0 kHz - * 3: 88.2 kHz - * 4: 96.0 kHz - */ - private String[] mListValues; - private LifecycleOwner mLifecycleOwner; - private Lifecycle mLifecycle; - private Context mContext; - private BluetoothAudioSampleRatePreferenceController mController; - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; - mLifecycleOwner = () -> mLifecycle; - mLifecycle = new Lifecycle(mLifecycleOwner); - mController = spy(new BluetoothAudioSampleRatePreferenceController(mContext, mLifecycle, - mBluetoothA2dpConfigStore)); - mListValues = mController.getListValues(); - when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); - mController.displayPreference(mScreen); - } - - @Test - public void writeConfigurationValues_option2_shouldWriteOption2ToSharedStore() { - when(mPreference.findIndexOfValue(mListValues[2])).thenReturn(2); - mController.writeConfigurationValues(mListValues[2]); - - verify(mBluetoothA2dpConfigStore).setSampleRate(BluetoothCodecConfig.SAMPLE_RATE_48000); - } - - @Test - public void getCurrentA2dpSettingIndex_option2_shouldReturnSecondIndex() { - when(mBluetoothCodecConfig.getSampleRate()).thenReturn( - BluetoothCodecConfig.SAMPLE_RATE_48000); - - final int index = mController.getCurrentA2dpSettingIndex(mBluetoothCodecConfig); - - assertThat(index).isEqualTo(2); - } - - @Test - public void getCurrentA2dpSettingIndex_unknownOption_shouldReturnDefault() { - when(mBluetoothCodecConfig.getSampleRate()).thenReturn(1381391835); - - final int index = mController.getCurrentA2dpSettingIndex(mBluetoothCodecConfig); - - assertThat(index).isEqualTo(0); - } -}