Apply new preference and controller for Bluetooth developer option
- Modify XML to apply new preferences and controllers - Remove old controller file - Move codec optional codec to the uppler layer Bug: 142227996 Test: make -j50 RunSettingsRoboTests Change-Id: Ia8fca4bc5b228592fdacad206e010bf0219282d4
This commit is contained in:
@@ -54,17 +54,8 @@
|
|||||||
<include
|
<include
|
||||||
android:id="@+id/bluetooth_audio_codec_ldac"
|
android:id="@+id/bluetooth_audio_codec_ldac"
|
||||||
layout="@layout/preference_widget_dialog_radiobutton"/>
|
layout="@layout/preference_widget_dialog_radiobutton"/>
|
||||||
|
|
||||||
<include
|
|
||||||
android:id="@+id/bluetooth_audio_codec_enable_optional"
|
|
||||||
layout="@layout/preference_widget_dialog_radiobutton"/>
|
|
||||||
|
|
||||||
<include
|
|
||||||
android:id="@+id/bluetooth_audio_codec_disable_optional"
|
|
||||||
layout="@layout/preference_widget_dialog_radiobutton"/>
|
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
|
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/bluetooth_audio_codec_help_info"
|
android:id="@+id/bluetooth_audio_codec_help_info"
|
||||||
layout="@layout/preference_widget_dialog_summary"/>
|
layout="@layout/preference_widget_dialog_summary"/>
|
||||||
|
@@ -288,40 +288,49 @@
|
|||||||
android:entries="@array/bluetooth_avrcp_versions"
|
android:entries="@array/bluetooth_avrcp_versions"
|
||||||
android:entryValues="@array/bluetooth_avrcp_version_values" />
|
android:entryValues="@array/bluetooth_avrcp_version_values" />
|
||||||
|
|
||||||
<ListPreference
|
<SwitchPreference
|
||||||
android:key="bluetooth_select_a2dp_codec"
|
android:key="bluetooth_hd_audio_settings"
|
||||||
|
android:title="@string/bluetooth_profile_a2dp_high_quality_unknown_codec"/>
|
||||||
|
|
||||||
|
<com.android.settings.development.bluetooth.BluetoothCodecDialogPreference
|
||||||
|
android:key="bluetooth_audio_codec_settings"
|
||||||
android:title="@string/bluetooth_select_a2dp_codec_type"
|
android:title="@string/bluetooth_select_a2dp_codec_type"
|
||||||
android:dialogTitle="@string/bluetooth_select_a2dp_codec_type_dialog_title"
|
android:dialogTitle="@string/bluetooth_select_a2dp_codec_type_dialog_title"
|
||||||
android:entries="@array/bluetooth_a2dp_codec_titles"
|
android:dialogLayout="@layout/bluetooth_audio_codec_dialog"
|
||||||
android:entryValues="@array/bluetooth_a2dp_codec_values" />
|
android:positiveButtonText=""
|
||||||
|
android:negativeButtonText="@string/dlg_ok"/>
|
||||||
|
|
||||||
<ListPreference
|
<com.android.settings.development.bluetooth.BluetoothSampleRateDialogPreference
|
||||||
android:key="bluetooth_select_a2dp_sample_rate"
|
android:key="bluetooth_sample_rate_settings"
|
||||||
android:title="@string/bluetooth_select_a2dp_codec_sample_rate"
|
android:title="@string/bluetooth_select_a2dp_codec_sample_rate"
|
||||||
android:dialogTitle="@string/bluetooth_select_a2dp_codec_sample_rate_dialog_title"
|
android:dialogTitle="@string/bluetooth_select_a2dp_codec_sample_rate_dialog_title"
|
||||||
android:entries="@array/bluetooth_a2dp_codec_sample_rate_titles"
|
android:dialogLayout="@layout/bluetooth_audio_sample_rate_dialog"
|
||||||
android:entryValues="@array/bluetooth_a2dp_codec_sample_rate_values" />
|
android:positiveButtonText=""
|
||||||
|
android:negativeButtonText="@string/dlg_ok"/>
|
||||||
|
|
||||||
<ListPreference
|
<com.android.settings.development.bluetooth.BluetoothBitPerSampleDialogPreference
|
||||||
android:key="bluetooth_select_a2dp_bits_per_sample"
|
android:key="bluetooth_bit_per_sample_settings"
|
||||||
android:title="@string/bluetooth_select_a2dp_codec_bits_per_sample"
|
android:title="@string/bluetooth_select_a2dp_codec_bits_per_sample"
|
||||||
android:dialogTitle="@string/bluetooth_select_a2dp_codec_bits_per_sample_dialog_title"
|
android:dialogTitle="@string/bluetooth_select_a2dp_codec_bits_per_sample_dialog_title"
|
||||||
android:entries="@array/bluetooth_a2dp_codec_bits_per_sample_titles"
|
android:dialogLayout="@layout/bluetooth_audio_bit_per_sample_dialog"
|
||||||
android:entryValues="@array/bluetooth_a2dp_codec_bits_per_sample_values" />
|
android:positiveButtonText=""
|
||||||
|
android:negativeButtonText="@string/dlg_ok"/>
|
||||||
|
|
||||||
<ListPreference
|
<com.android.settings.development.bluetooth.BluetoothChannelModeDialogPreference
|
||||||
android:key="bluetooth_select_a2dp_channel_mode"
|
android:key="bluetooth_channel_mode_settings"
|
||||||
android:title="@string/bluetooth_select_a2dp_codec_channel_mode"
|
android:title="@string/bluetooth_select_a2dp_codec_channel_mode"
|
||||||
android:dialogTitle="@string/bluetooth_select_a2dp_codec_channel_mode_dialog_title"
|
android:dialogTitle="@string/bluetooth_select_a2dp_codec_channel_mode_dialog_title"
|
||||||
android:entries="@array/bluetooth_a2dp_codec_channel_mode_titles"
|
android:dialogLayout="@layout/bluetooth_audio_channel_mode_dialog"
|
||||||
android:entryValues="@array/bluetooth_a2dp_codec_channel_mode_values" />
|
android:positiveButtonText=""
|
||||||
|
android:negativeButtonText="@string/dlg_ok"/>
|
||||||
|
|
||||||
<ListPreference
|
<com.android.settings.development.bluetooth.BluetoothQualityDialogPreference
|
||||||
android:key="bluetooth_select_a2dp_ldac_playback_quality"
|
android:key="bluetooth_a2dp_ldac_playback_quality"
|
||||||
android:title="@string/bluetooth_select_a2dp_codec_ldac_playback_quality"
|
android:title="@string/bluetooth_select_a2dp_codec_ldac_playback_quality"
|
||||||
android:dialogTitle="@string/bluetooth_select_a2dp_codec_ldac_playback_quality_dialog_title"
|
android:dialogTitle="@string/bluetooth_select_a2dp_codec_ldac_playback_quality_dialog_title"
|
||||||
android:entries="@array/bluetooth_a2dp_codec_ldac_playback_quality_titles"
|
android:dialogLayout="@layout/bluetooth_audio_quality_dialog"
|
||||||
android:entryValues="@array/bluetooth_a2dp_codec_ldac_playback_quality_values" />
|
android:positiveButtonText=""
|
||||||
|
android:negativeButtonText="@string/dlg_ok"/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:key="bluetooth_max_connected_audio_devices"
|
android:key="bluetooth_max_connected_audio_devices"
|
||||||
|
@@ -1,102 +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 BluetoothAudioBitsPerSamplePreferenceController extends
|
|
||||||
AbstractBluetoothA2dpPreferenceController {
|
|
||||||
|
|
||||||
private static final int DEFAULT_INDEX = 0;
|
|
||||||
private static final String BLUETOOTH_SELECT_A2DP_BITS_PER_SAMPLE_KEY =
|
|
||||||
"bluetooth_select_a2dp_bits_per_sample";
|
|
||||||
|
|
||||||
public BluetoothAudioBitsPerSamplePreferenceController(Context context, Lifecycle lifecycle,
|
|
||||||
BluetoothA2dpConfigStore store) {
|
|
||||||
super(context, lifecycle, store);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getPreferenceKey() {
|
|
||||||
return BLUETOOTH_SELECT_A2DP_BITS_PER_SAMPLE_KEY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String[] getListValues() {
|
|
||||||
return mContext.getResources().getStringArray(
|
|
||||||
R.array.bluetooth_a2dp_codec_bits_per_sample_values);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String[] getListSummaries() {
|
|
||||||
return mContext.getResources().getStringArray(
|
|
||||||
R.array.bluetooth_a2dp_codec_bits_per_sample_summaries);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getDefaultIndex() {
|
|
||||||
return DEFAULT_INDEX;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void writeConfigurationValues(Object newValue) {
|
|
||||||
final int index = mPreference.findIndexOfValue(newValue.toString());
|
|
||||||
int bitsPerSampleValue = BluetoothCodecConfig.BITS_PER_SAMPLE_NONE; // default
|
|
||||||
switch (index) {
|
|
||||||
case 0:
|
|
||||||
// Reset to default
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
bitsPerSampleValue = BluetoothCodecConfig.BITS_PER_SAMPLE_16;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
bitsPerSampleValue = BluetoothCodecConfig.BITS_PER_SAMPLE_24;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
bitsPerSampleValue = BluetoothCodecConfig.BITS_PER_SAMPLE_32;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
mBluetoothA2dpConfigStore.setBitsPerSample(bitsPerSampleValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getCurrentA2dpSettingIndex(BluetoothCodecConfig config) {
|
|
||||||
final int bitsPerSample = config.getBitsPerSample();
|
|
||||||
int index = DEFAULT_INDEX;
|
|
||||||
switch (bitsPerSample) {
|
|
||||||
case BluetoothCodecConfig.BITS_PER_SAMPLE_16:
|
|
||||||
index = 1;
|
|
||||||
break;
|
|
||||||
case BluetoothCodecConfig.BITS_PER_SAMPLE_24:
|
|
||||||
index = 2;
|
|
||||||
break;
|
|
||||||
case BluetoothCodecConfig.BITS_PER_SAMPLE_32:
|
|
||||||
index = 3;
|
|
||||||
break;
|
|
||||||
case BluetoothCodecConfig.BITS_PER_SAMPLE_NONE:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return index;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,96 +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 BluetoothAudioChannelModePreferenceController extends
|
|
||||||
AbstractBluetoothA2dpPreferenceController {
|
|
||||||
|
|
||||||
private static final int DEFAULT_INDEX = 0;
|
|
||||||
private static final String BLUETOOTH_SELECT_A2DP_CHANNEL_MODE_KEY =
|
|
||||||
"bluetooth_select_a2dp_channel_mode";
|
|
||||||
|
|
||||||
public BluetoothAudioChannelModePreferenceController(Context context, Lifecycle lifecycle,
|
|
||||||
BluetoothA2dpConfigStore store) {
|
|
||||||
super(context, lifecycle, store);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getPreferenceKey() {
|
|
||||||
return BLUETOOTH_SELECT_A2DP_CHANNEL_MODE_KEY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String[] getListValues() {
|
|
||||||
return mContext.getResources().getStringArray(
|
|
||||||
R.array.bluetooth_a2dp_codec_channel_mode_values);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String[] getListSummaries() {
|
|
||||||
return mContext.getResources().getStringArray(
|
|
||||||
R.array.bluetooth_a2dp_codec_channel_mode_summaries);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getDefaultIndex() {
|
|
||||||
return DEFAULT_INDEX;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void writeConfigurationValues(Object newValue) {
|
|
||||||
final int index = mPreference.findIndexOfValue(newValue.toString());
|
|
||||||
int channelModeValue = BluetoothCodecConfig.CHANNEL_MODE_NONE; // default
|
|
||||||
switch (index) {
|
|
||||||
case 0:
|
|
||||||
// Reset to default
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
channelModeValue = BluetoothCodecConfig.CHANNEL_MODE_MONO;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
channelModeValue = BluetoothCodecConfig.CHANNEL_MODE_STEREO;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
mBluetoothA2dpConfigStore.setChannelMode(channelModeValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getCurrentA2dpSettingIndex(BluetoothCodecConfig config) {
|
|
||||||
final int channelMode = config.getChannelMode();
|
|
||||||
int index = DEFAULT_INDEX;
|
|
||||||
switch (channelMode) {
|
|
||||||
case BluetoothCodecConfig.CHANNEL_MODE_MONO:
|
|
||||||
index = 1;
|
|
||||||
break;
|
|
||||||
case BluetoothCodecConfig.CHANNEL_MODE_STEREO:
|
|
||||||
index = 2;
|
|
||||||
break;
|
|
||||||
case BluetoothCodecConfig.CHANNEL_MODE_NONE:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return index;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,156 +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 BluetoothAudioCodecPreferenceController extends
|
|
||||||
AbstractBluetoothA2dpPreferenceController {
|
|
||||||
|
|
||||||
private static final int DEFAULT_INDEX = 0;
|
|
||||||
private static final String BLUETOOTH_SELECT_A2DP_CODEC_KEY = "bluetooth_select_a2dp_codec";
|
|
||||||
|
|
||||||
public BluetoothAudioCodecPreferenceController(Context context, Lifecycle lifecycle,
|
|
||||||
BluetoothA2dpConfigStore store) {
|
|
||||||
super(context, lifecycle, store);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getPreferenceKey() {
|
|
||||||
return BLUETOOTH_SELECT_A2DP_CODEC_KEY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String[] getListValues() {
|
|
||||||
return mContext.getResources().getStringArray(
|
|
||||||
R.array.bluetooth_a2dp_codec_values);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String[] getListSummaries() {
|
|
||||||
return mContext.getResources().getStringArray(
|
|
||||||
R.array.bluetooth_a2dp_codec_summaries);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getDefaultIndex() {
|
|
||||||
return DEFAULT_INDEX;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void writeConfigurationValues(Object newValue) {
|
|
||||||
final int index = mPreference.findIndexOfValue(newValue.toString());
|
|
||||||
int codecTypeValue = BluetoothCodecConfig.SAMPLE_RATE_NONE; // default
|
|
||||||
int codecPriorityValue = BluetoothCodecConfig.CODEC_PRIORITY_DEFAULT;
|
|
||||||
switch (index) {
|
|
||||||
case 0:
|
|
||||||
// Reset the priority of the current codec to default
|
|
||||||
final String oldValue = mPreference.getValue();
|
|
||||||
switch (mPreference.findIndexOfValue(oldValue)) {
|
|
||||||
case 0:
|
|
||||||
break; // No current codec
|
|
||||||
case 1:
|
|
||||||
codecTypeValue = BluetoothCodecConfig.SOURCE_CODEC_TYPE_SBC;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
codecTypeValue = BluetoothCodecConfig.SOURCE_CODEC_TYPE_AAC;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
codecTypeValue = BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX;
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
codecTypeValue = BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX_HD;
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
codecTypeValue = BluetoothCodecConfig.SOURCE_CODEC_TYPE_LDAC;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
codecTypeValue = BluetoothCodecConfig.SOURCE_CODEC_TYPE_SBC;
|
|
||||||
codecPriorityValue = BluetoothCodecConfig.CODEC_PRIORITY_HIGHEST;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
codecTypeValue = BluetoothCodecConfig.SOURCE_CODEC_TYPE_AAC;
|
|
||||||
codecPriorityValue = BluetoothCodecConfig.CODEC_PRIORITY_HIGHEST;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
codecTypeValue = BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX;
|
|
||||||
codecPriorityValue = BluetoothCodecConfig.CODEC_PRIORITY_HIGHEST;
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
codecTypeValue = BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX_HD;
|
|
||||||
codecPriorityValue = BluetoothCodecConfig.CODEC_PRIORITY_HIGHEST;
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
codecTypeValue = BluetoothCodecConfig.SOURCE_CODEC_TYPE_LDAC;
|
|
||||||
codecPriorityValue = BluetoothCodecConfig.CODEC_PRIORITY_HIGHEST;
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
synchronized (mBluetoothA2dpConfigStore) {
|
|
||||||
if (mBluetoothA2dp != null) {
|
|
||||||
mBluetoothA2dp.enableOptionalCodecs(null); // Use current active device
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
case 7:
|
|
||||||
synchronized (mBluetoothA2dpConfigStore) {
|
|
||||||
if (mBluetoothA2dp != null) {
|
|
||||||
mBluetoothA2dp.disableOptionalCodecs(null); // Use current active device
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
mBluetoothA2dpConfigStore.setCodecType(codecTypeValue);
|
|
||||||
mBluetoothA2dpConfigStore.setCodecPriority(codecPriorityValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getCurrentA2dpSettingIndex(BluetoothCodecConfig config) {
|
|
||||||
final int codecType = config.getCodecType();
|
|
||||||
int index = DEFAULT_INDEX;
|
|
||||||
switch (codecType) {
|
|
||||||
case BluetoothCodecConfig.SOURCE_CODEC_TYPE_SBC:
|
|
||||||
index = 1;
|
|
||||||
break;
|
|
||||||
case BluetoothCodecConfig.SOURCE_CODEC_TYPE_AAC:
|
|
||||||
index = 2;
|
|
||||||
break;
|
|
||||||
case BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX:
|
|
||||||
index = 3;
|
|
||||||
break;
|
|
||||||
case BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX_HD:
|
|
||||||
index = 4;
|
|
||||||
break;
|
|
||||||
case BluetoothCodecConfig.SOURCE_CODEC_TYPE_LDAC:
|
|
||||||
index = 5;
|
|
||||||
break;
|
|
||||||
case BluetoothCodecConfig.SOURCE_CODEC_TYPE_INVALID:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return index;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,100 +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 BluetoothAudioQualityPreferenceController extends
|
|
||||||
AbstractBluetoothA2dpPreferenceController {
|
|
||||||
|
|
||||||
private static final int DEFAULT_INDEX = 3;
|
|
||||||
private static final String BLUETOOTH_SELECT_A2DP_LDAC_PLAYBACK_QUALITY_KEY =
|
|
||||||
"bluetooth_select_a2dp_ldac_playback_quality";
|
|
||||||
|
|
||||||
public BluetoothAudioQualityPreferenceController(Context context, Lifecycle lifecycle,
|
|
||||||
BluetoothA2dpConfigStore store) {
|
|
||||||
super(context, lifecycle, store);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getPreferenceKey() {
|
|
||||||
return BLUETOOTH_SELECT_A2DP_LDAC_PLAYBACK_QUALITY_KEY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String[] getListValues() {
|
|
||||||
return mContext.getResources().getStringArray(
|
|
||||||
R.array.bluetooth_a2dp_codec_ldac_playback_quality_values);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String[] getListSummaries() {
|
|
||||||
return mContext.getResources().getStringArray(
|
|
||||||
R.array.bluetooth_a2dp_codec_ldac_playback_quality_summaries);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getDefaultIndex() {
|
|
||||||
return DEFAULT_INDEX;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void writeConfigurationValues(Object newValue) {
|
|
||||||
final int index = mPreference.findIndexOfValue(newValue.toString());
|
|
||||||
int codecSpecific1Value = 0; // default
|
|
||||||
switch (index) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
codecSpecific1Value = 1000 + index;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
mBluetoothA2dpConfigStore.setCodecSpecific1Value(codecSpecific1Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getCurrentA2dpSettingIndex(BluetoothCodecConfig config) {
|
|
||||||
// The actual values are 0, 1, 2 - those are extracted
|
|
||||||
// as mod-10 remainders of a larger value.
|
|
||||||
// The reason is because within BluetoothCodecConfig we cannot use
|
|
||||||
// a codec-specific value of zero.
|
|
||||||
int index = (int) config.getCodecSpecific1();
|
|
||||||
if (index > 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;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -44,6 +44,14 @@ import com.android.settings.Utils;
|
|||||||
import com.android.settings.dashboard.RestrictedDashboardFragment;
|
import com.android.settings.dashboard.RestrictedDashboardFragment;
|
||||||
import com.android.settings.development.autofill.AutofillLoggingLevelPreferenceController;
|
import com.android.settings.development.autofill.AutofillLoggingLevelPreferenceController;
|
||||||
import com.android.settings.development.autofill.AutofillResetOptionsPreferenceController;
|
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.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.widget.SwitchBar;
|
import com.android.settings.widget.SwitchBar;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
@@ -62,7 +70,8 @@ import java.util.List;
|
|||||||
public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFragment
|
public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFragment
|
||||||
implements SwitchBar.OnSwitchChangeListener, OemUnlockDialogHost, AdbDialogHost,
|
implements SwitchBar.OnSwitchChangeListener, OemUnlockDialogHost, AdbDialogHost,
|
||||||
AdbClearKeysDialogHost, LogPersistDialogHost,
|
AdbClearKeysDialogHost, LogPersistDialogHost,
|
||||||
BluetoothA2dpHwOffloadRebootDialog.OnA2dpHwDialogConfirmedListener {
|
BluetoothA2dpHwOffloadRebootDialog.OnA2dpHwDialogConfirmedListener,
|
||||||
|
AbstractBluetoothPreferenceController.Callback {
|
||||||
|
|
||||||
private static final String TAG = "DevSettingsDashboard";
|
private static final String TAG = "DevSettingsDashboard";
|
||||||
|
|
||||||
@@ -455,16 +464,6 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
|
|||||||
controllers.add(new BluetoothAbsoluteVolumePreferenceController(context));
|
controllers.add(new BluetoothAbsoluteVolumePreferenceController(context));
|
||||||
controllers.add(new BluetoothAvrcpVersionPreferenceController(context));
|
controllers.add(new BluetoothAvrcpVersionPreferenceController(context));
|
||||||
controllers.add(new BluetoothA2dpHwOffloadPreferenceController(context, fragment));
|
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 BluetoothMaxConnectedAudioDevicesPreferenceController(context));
|
||||||
controllers.add(new ShowTapsPreferenceController(context));
|
controllers.add(new ShowTapsPreferenceController(context));
|
||||||
controllers.add(new PointerLocationPreferenceController(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 DefaultLaunchPreferenceController(context, "inactive_apps"));
|
||||||
controllers.add(new AutofillLoggingLevelPreferenceController(context, lifecycle));
|
controllers.add(new AutofillLoggingLevelPreferenceController(context, lifecycle));
|
||||||
controllers.add(new AutofillResetOptionsPreferenceController(context));
|
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;
|
return controllers;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -519,6 +531,27 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
|
|||||||
return use(clazz);
|
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.
|
* For Search.
|
||||||
*/
|
*/
|
||||||
|
@@ -106,7 +106,7 @@ public class BluetoothQualityDialogPreferenceController extends
|
|||||||
@Override
|
@Override
|
||||||
public void onHDAudioEnabled(boolean enabled) {
|
public void onHDAudioEnabled(boolean enabled) {
|
||||||
mPreference.setEnabled(false);
|
mPreference.setEnabled(false);
|
||||||
};
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
int convertCfgToBtnIndex(int config) {
|
int convertCfgToBtnIndex(int config) {
|
||||||
|
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user