Merge "Disable the Bt categorization list when audio type is known" into main
This commit is contained in:
@@ -23,6 +23,7 @@ import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_HEARING_AID;
|
|||||||
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_OTHER;
|
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_OTHER;
|
||||||
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER;
|
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER;
|
||||||
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN;
|
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN;
|
||||||
|
import static android.media.audio.Flags.automaticBtDeviceType;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
@@ -106,9 +107,15 @@ public class BluetoothDetailsAudioDeviceTypeController extends BluetoothDetailsC
|
|||||||
final int index = pref.findIndexOfValue(value);
|
final int index = pref.findIndexOfValue(value);
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
pref.setSummary(pref.getEntries()[index]);
|
pref.setSummary(pref.getEntries()[index]);
|
||||||
mAudioManager.setBluetoothAudioDeviceCategory(mCachedDevice.getAddress(),
|
if (automaticBtDeviceType()) {
|
||||||
mCachedDevice.getDevice().getType() == DEVICE_TYPE_LE,
|
mAudioManager.setBluetoothAudioDeviceCategory(
|
||||||
Integer.parseInt(value));
|
mCachedDevice.getAddress(), Integer.parseInt(value));
|
||||||
|
} else {
|
||||||
|
mAudioManager.setBluetoothAudioDeviceCategory_legacy(
|
||||||
|
mCachedDevice.getAddress(),
|
||||||
|
mCachedDevice.getDevice().getType() == DEVICE_TYPE_LE,
|
||||||
|
Integer.parseInt(value));
|
||||||
|
}
|
||||||
mCachedDevice.onAudioDeviceCategoryChanged();
|
mCachedDevice.onAudioDeviceCategoryChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -163,9 +170,15 @@ public class BluetoothDetailsAudioDeviceTypeController extends BluetoothDetailsC
|
|||||||
Integer.toString(AUDIO_DEVICE_CATEGORY_OTHER),
|
Integer.toString(AUDIO_DEVICE_CATEGORY_OTHER),
|
||||||
});
|
});
|
||||||
|
|
||||||
@AudioDeviceCategory final int deviceCategory =
|
@AudioDeviceCategory int deviceCategory;
|
||||||
mAudioManager.getBluetoothAudioDeviceCategory(mCachedDevice.getAddress(),
|
if (automaticBtDeviceType()) {
|
||||||
mCachedDevice.getDevice().getType() == DEVICE_TYPE_LE);
|
deviceCategory = mAudioManager.getBluetoothAudioDeviceCategory(
|
||||||
|
mCachedDevice.getAddress());
|
||||||
|
} else {
|
||||||
|
deviceCategory = mAudioManager.getBluetoothAudioDeviceCategory_legacy(
|
||||||
|
mCachedDevice.getAddress(),
|
||||||
|
mCachedDevice.getDevice().getType() == DEVICE_TYPE_LE);
|
||||||
|
}
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.v(TAG, "getBluetoothAudioDeviceCategory() device: "
|
Log.v(TAG, "getBluetoothAudioDeviceCategory() device: "
|
||||||
+ mCachedDevice.getDevice().getAnonymizedAddress()
|
+ mCachedDevice.getDevice().getAnonymizedAddress()
|
||||||
@@ -173,6 +186,12 @@ public class BluetoothDetailsAudioDeviceTypeController extends BluetoothDetailsC
|
|||||||
}
|
}
|
||||||
mAudioDeviceTypePreference.setValue(Integer.toString(deviceCategory));
|
mAudioDeviceTypePreference.setValue(Integer.toString(deviceCategory));
|
||||||
|
|
||||||
|
if (automaticBtDeviceType()) {
|
||||||
|
if (mAudioManager.isBluetoothAudioDeviceCategoryFixed(mCachedDevice.getAddress())) {
|
||||||
|
mAudioDeviceTypePreference.setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mAudioDeviceTypePreference.setSummary(mAudioDeviceTypePreference.getEntry());
|
mAudioDeviceTypePreference.setSummary(mAudioDeviceTypePreference.getEntry());
|
||||||
mAudioDeviceTypePreference.setOnPreferenceChangeListener(this);
|
mAudioDeviceTypePreference.setOnPreferenceChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package com.android.settings.bluetooth;
|
|||||||
|
|
||||||
import static android.bluetooth.BluetoothDevice.DEVICE_TYPE_LE;
|
import static android.bluetooth.BluetoothDevice.DEVICE_TYPE_LE;
|
||||||
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER;
|
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER;
|
||||||
|
import static android.media.audio.Flags.automaticBtDeviceType;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
@@ -97,8 +98,12 @@ public class BluetoothDetailsAudioDeviceTypeControllerTest extends
|
|||||||
@Test
|
@Test
|
||||||
public void createAudioDeviceTypePreference_btDeviceIsCategorized_checkSelection() {
|
public void createAudioDeviceTypePreference_btDeviceIsCategorized_checkSelection() {
|
||||||
int deviceType = AUDIO_DEVICE_CATEGORY_SPEAKER;
|
int deviceType = AUDIO_DEVICE_CATEGORY_SPEAKER;
|
||||||
when(mAudioManager.getBluetoothAudioDeviceCategory(MAC_ADDRESS, /*isBle=*/true)).thenReturn(
|
if (automaticBtDeviceType()) {
|
||||||
deviceType);
|
when(mAudioManager.getBluetoothAudioDeviceCategory(MAC_ADDRESS)).thenReturn(deviceType);
|
||||||
|
} else {
|
||||||
|
when(mAudioManager.getBluetoothAudioDeviceCategory_legacy(MAC_ADDRESS, /*isBle=*/
|
||||||
|
true)).thenReturn(deviceType);
|
||||||
|
}
|
||||||
|
|
||||||
mController.createAudioDeviceTypePreference(mContext);
|
mController.createAudioDeviceTypePreference(mContext);
|
||||||
mAudioDeviceTypePref = mController.getAudioDeviceTypePreference();
|
mAudioDeviceTypePref = mController.getAudioDeviceTypePreference();
|
||||||
@@ -113,7 +118,12 @@ public class BluetoothDetailsAudioDeviceTypeControllerTest extends
|
|||||||
|
|
||||||
mController.onPreferenceChange(mAudioDeviceTypePref, Integer.toString(deviceType));
|
mController.onPreferenceChange(mAudioDeviceTypePref, Integer.toString(deviceType));
|
||||||
|
|
||||||
verify(mAudioManager).setBluetoothAudioDeviceCategory(eq(MAC_ADDRESS), eq(true),
|
if (automaticBtDeviceType()) {
|
||||||
eq(AUDIO_DEVICE_CATEGORY_SPEAKER));
|
verify(mAudioManager).setBluetoothAudioDeviceCategory(eq(MAC_ADDRESS),
|
||||||
|
eq(AUDIO_DEVICE_CATEGORY_SPEAKER));
|
||||||
|
} else {
|
||||||
|
verify(mAudioManager).setBluetoothAudioDeviceCategory_legacy(eq(MAC_ADDRESS), eq(true),
|
||||||
|
eq(AUDIO_DEVICE_CATEGORY_SPEAKER));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user