summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/settings/development/AbstractBluetoothA2dpPreferenceController.java26
-rw-r--r--src/com/android/settings/development/BluetoothA2dpLock.java25
-rw-r--r--src/com/android/settings/development/BluetoothAudioBitsPerSamplePreferenceController.java102
-rw-r--r--src/com/android/settings/development/BluetoothAudioChannelModePreferenceController.java96
-rw-r--r--src/com/android/settings/development/BluetoothAudioCodecPreferenceController.java156
-rw-r--r--src/com/android/settings/development/BluetoothAudioQualityPreferenceController.java100
-rw-r--r--src/com/android/settings/development/BluetoothAudioSampleRatePreferenceController.java15
-rw-r--r--src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java28
8 files changed, 502 insertions, 46 deletions
diff --git a/src/com/android/settings/development/AbstractBluetoothA2dpPreferenceController.java b/src/com/android/settings/development/AbstractBluetoothA2dpPreferenceController.java
index bb03df1f7b..e4e6493886 100644
--- a/src/com/android/settings/development/AbstractBluetoothA2dpPreferenceController.java
+++ b/src/com/android/settings/development/AbstractBluetoothA2dpPreferenceController.java
@@ -40,17 +40,15 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
static final int STREAMING_LABEL_ID = R.string.bluetooth_select_a2dp_codec_streaming_label;
protected final BluetoothA2dpConfigStore mBluetoothA2dpConfigStore;
- protected final Object mBluetoothA2dpLock;
protected BluetoothA2dp mBluetoothA2dp;
+ protected ListPreference mPreference;
private final String[] mListValues;
private final String[] mListSummaries;
- private ListPreference mPreference;
public AbstractBluetoothA2dpPreferenceController(Context context, Lifecycle lifecycle,
- Object bluetoothA2dpLock, BluetoothA2dpConfigStore store) {
+ BluetoothA2dpConfigStore store) {
super(context);
- mBluetoothA2dpLock = bluetoothA2dpLock;
mBluetoothA2dpConfigStore = store;
mListValues = getListValues();
mListSummaries = getListSummaries();
@@ -80,7 +78,7 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
writeConfigurationValues(newValue);
final BluetoothCodecConfig codecConfig = mBluetoothA2dpConfigStore.createCodecConfig();
- synchronized (mBluetoothA2dpLock) {
+ synchronized (mBluetoothA2dpConfigStore) {
if (mBluetoothA2dp != null) {
setCodecConfigPreference(codecConfig);
}
@@ -106,7 +104,7 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
}
BluetoothCodecConfig codecConfig;
- synchronized (mBluetoothA2dpLock) {
+ synchronized (mBluetoothA2dpConfigStore) {
codecConfig = getCodecConfig();
}
@@ -168,7 +166,7 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
protected abstract String[] getListSummaries();
/**
- * Updates the new value to the {@link BluetoothA2dpConfigStore}.
+ * Updates the new value to the {@link BluetoothA2dpConfigStore} and the {@link BluetoothA2dp}.
*
* @param newValue the new setting value
*/
@@ -197,18 +195,4 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
return mBluetoothA2dp.getCodecStatus().getCodecConfig();
}
-
- @VisibleForTesting
- BluetoothCodecConfig createCodecConfig(int codecTypeValue, int codecPriorityValue,
- int sampleRateValue, int bitsPerSampleValue,
- int channelModeValue, long codecSpecific1Value,
- long codecSpecific2Value, long codecSpecific3Value,
- long codecSpecific4Value) {
- return new BluetoothCodecConfig(codecTypeValue, codecPriorityValue,
- sampleRateValue, bitsPerSampleValue,
- channelModeValue, codecSpecific1Value,
- codecSpecific2Value, codecSpecific3Value,
- codecSpecific4Value);
- }
-
}
diff --git a/src/com/android/settings/development/BluetoothA2dpLock.java b/src/com/android/settings/development/BluetoothA2dpLock.java
new file mode 100644
index 0000000000..70586658c3
--- /dev/null
+++ b/src/com/android/settings/development/BluetoothA2dpLock.java
@@ -0,0 +1,25 @@
+/*
+ * 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.BluetoothA2dp;
+
+/**
+ * Utility class to provide synchronization locks for {@link BluetoothA2dp}
+ */
+public class BluetoothA2dpLock {
+}
diff --git a/src/com/android/settings/development/BluetoothAudioBitsPerSamplePreferenceController.java b/src/com/android/settings/development/BluetoothAudioBitsPerSamplePreferenceController.java
new file mode 100644
index 0000000000..f237ac1cfe
--- /dev/null
+++ b/src/com/android/settings/development/BluetoothAudioBitsPerSamplePreferenceController.java
@@ -0,0 +1,102 @@
+/*
+ * 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;
+ }
+}
diff --git a/src/com/android/settings/development/BluetoothAudioChannelModePreferenceController.java b/src/com/android/settings/development/BluetoothAudioChannelModePreferenceController.java
new file mode 100644
index 0000000000..a58c675516
--- /dev/null
+++ b/src/com/android/settings/development/BluetoothAudioChannelModePreferenceController.java
@@ -0,0 +1,96 @@
+/*
+ * 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;
+ }
+}
diff --git a/src/com/android/settings/development/BluetoothAudioCodecPreferenceController.java b/src/com/android/settings/development/BluetoothAudioCodecPreferenceController.java
new file mode 100644
index 0000000000..2163a7092c
--- /dev/null
+++ b/src/com/android/settings/development/BluetoothAudioCodecPreferenceController.java
@@ -0,0 +1,156 @@
+/*
+ * 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();
+ }
+ }
+ return;
+ case 7:
+ synchronized (mBluetoothA2dpConfigStore) {
+ if (mBluetoothA2dp != null) {
+ mBluetoothA2dp.disableOptionalCodecs();
+ }
+ }
+ 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;
+ }
+}
diff --git a/src/com/android/settings/development/BluetoothAudioQualityPreferenceController.java b/src/com/android/settings/development/BluetoothAudioQualityPreferenceController.java
new file mode 100644
index 0000000000..7adf8e6b5a
--- /dev/null
+++ b/src/com/android/settings/development/BluetoothAudioQualityPreferenceController.java
@@ -0,0 +1,100 @@
+/*
+ * 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;
+ }
+}
diff --git a/src/com/android/settings/development/BluetoothAudioSampleRatePreferenceController.java b/src/com/android/settings/development/BluetoothAudioSampleRatePreferenceController.java
index 5d84de8f94..35b449e6b2 100644
--- a/src/com/android/settings/development/BluetoothAudioSampleRatePreferenceController.java
+++ b/src/com/android/settings/development/BluetoothAudioSampleRatePreferenceController.java
@@ -18,8 +18,6 @@ package com.android.settings.development;
import android.bluetooth.BluetoothCodecConfig;
import android.content.Context;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -31,11 +29,9 @@ public class BluetoothAudioSampleRatePreferenceController extends
private static final String BLUETOOTH_SELECT_A2DP_SAMPLE_RATE_KEY =
"bluetooth_select_a2dp_sample_rate";
- private ListPreference mPreference;
-
public BluetoothAudioSampleRatePreferenceController(Context context, Lifecycle lifecycle,
- Object bluetoothA2dpLock, BluetoothA2dpConfigStore store) {
- super(context, lifecycle, bluetoothA2dpLock, store);
+ BluetoothA2dpConfigStore store) {
+ super(context, lifecycle, store);
}
@Override
@@ -44,13 +40,6 @@ public class BluetoothAudioSampleRatePreferenceController extends
}
@Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
-
- mPreference = (ListPreference) screen.findPreference(getPreferenceKey());
- }
-
- @Override
protected String[] getListValues() {
return mContext.getResources().getStringArray(
R.array.bluetooth_a2dp_codec_sample_rate_values);
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index e425fd2cea..c80416b323 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -60,7 +60,8 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
private static final String TAG = "DevSettingsDashboard";
- private final Object mBluetoothA2dpLock = new Object();
+ private final BluetoothA2dpConfigStore mBluetoothA2dpConfigStore =
+ new BluetoothA2dpConfigStore();
private boolean mIsAvailable = true;
private SwitchBar mSwitchBar;
@@ -104,7 +105,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
@Override
public void onServiceConnected(int profile,
BluetoothProfile proxy) {
- synchronized (mBluetoothA2dpLock) {
+ synchronized (mBluetoothA2dpConfigStore) {
mBluetoothA2dp = (BluetoothA2dp) proxy;
}
for (AbstractPreferenceController controller : mPreferenceControllers) {
@@ -117,7 +118,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
@Override
public void onServiceDisconnected(int profile) {
- synchronized (mBluetoothA2dpLock) {
+ synchronized (mBluetoothA2dpConfigStore) {
mBluetoothA2dp = null;
}
for (AbstractPreferenceController controller : mPreferenceControllers) {
@@ -295,7 +296,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
@Override
protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
mPreferenceControllers = buildPreferenceControllers(context, getActivity(), getLifecycle(),
- this /* devOptionsDashboardFragment */, mBluetoothA2dpLock,
+ this /* devOptionsDashboardFragment */,
new BluetoothA2dpConfigStore());
return mPreferenceControllers;
}
@@ -349,7 +350,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Activity activity, Lifecycle lifecycle, DevelopmentSettingsDashboardFragment fragment,
- Object bluetoothA2dpLock, BluetoothA2dpConfigStore bluetoothA2dpConfigStore) {
+ BluetoothA2dpConfigStore bluetoothA2dpConfigStore) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new BugReportPreferenceControllerV2(context));
controllers.add(new LocalBackupPasswordPreferenceController(context));
@@ -391,13 +392,16 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
controllers.add(new BluetoothAbsoluteVolumePreferenceController(context));
controllers.add(new BluetoothInbandRingingPreferenceController(context));
controllers.add(new BluetoothAvrcpVersionPreferenceController(context));
- //controllers.add(new BluetoothAudioCodecPreferenceController(context, lifecycle,
- // bluetoothA2dpLock, bluetoothA2dpConfigStore));
+ controllers.add(new BluetoothAudioCodecPreferenceController(context, lifecycle,
+ bluetoothA2dpConfigStore));
controllers.add(new BluetoothAudioSampleRatePreferenceController(context, lifecycle,
- bluetoothA2dpLock, bluetoothA2dpConfigStore));
- // bluetooth audio bits per sample
- // bluetooth audio channel mode
- // bluetooth audio ldac codec: playback quality
+ 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 ShowTapsPreferenceController(context));
controllers.add(new PointerLocationPreferenceController(context));
controllers.add(new ShowSurfaceUpdatesPreferenceController(context));
@@ -463,7 +467,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
context) {
return buildPreferenceControllers(context, null /* activity */,
null /* lifecycle */, null /* devOptionsDashboardFragment */,
- null /* bluetoothA2dpLock */, null /* bluetoothA2dpConfigStore */);
+ null /* bluetoothA2dpConfigStore */);
}
};
}