[Output Switcher] Allow subtext and flags on System Route am: 3c9b30a749
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23853603 Change-Id: Iba05fe96317ff7953ffd6b773abcb987287ec5e1 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package com.android.settingslib.media;
|
||||
|
||||
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_TRANSFER;
|
||||
|
||||
import android.bluetooth.BluetoothClass;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.content.Context;
|
||||
@@ -22,6 +24,7 @@ import android.graphics.drawable.Drawable;
|
||||
import android.media.AudioManager;
|
||||
import android.media.MediaRoute2Info;
|
||||
import android.media.MediaRouter2Manager;
|
||||
import android.media.RouteListingPreference;
|
||||
|
||||
import com.android.settingslib.R;
|
||||
import com.android.settingslib.bluetooth.BluetoothUtils;
|
||||
@@ -39,7 +42,13 @@ public class BluetoothMediaDevice extends MediaDevice {
|
||||
|
||||
BluetoothMediaDevice(Context context, CachedBluetoothDevice device,
|
||||
MediaRouter2Manager routerManager, MediaRoute2Info info, String packageName) {
|
||||
super(context, routerManager, info, packageName, null);
|
||||
this(context, device, routerManager, info, packageName, null);
|
||||
}
|
||||
|
||||
BluetoothMediaDevice(Context context, CachedBluetoothDevice device,
|
||||
MediaRouter2Manager routerManager, MediaRoute2Info info, String packageName,
|
||||
RouteListingPreference.Item item) {
|
||||
super(context, routerManager, info, packageName, item);
|
||||
mCachedDevice = device;
|
||||
mAudioManager = context.getSystemService(AudioManager.class);
|
||||
initDeviceRecord();
|
||||
@@ -57,6 +66,12 @@ public class BluetoothMediaDevice extends MediaDevice {
|
||||
: mContext.getString(R.string.bluetooth_disconnected);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSelectionBehavior() {
|
||||
// We don't allow apps to override the selection behavior of system routes.
|
||||
return SELECTION_BEHAVIOR_TRANSFER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Drawable getIcon() {
|
||||
return BluetoothUtils.isAdvancedUntetheredDevice(mCachedDevice.getDevice())
|
||||
|
||||
@@ -568,8 +568,10 @@ public class InfoMediaManager extends MediaManager {
|
||||
case TYPE_HDMI:
|
||||
case TYPE_WIRED_HEADSET:
|
||||
case TYPE_WIRED_HEADPHONES:
|
||||
mediaDevice =
|
||||
new PhoneMediaDevice(mContext, mRouterManager, route, mPackageName);
|
||||
mediaDevice = mPreferenceItemMap.containsKey(route.getId()) ? new PhoneMediaDevice(
|
||||
mContext, mRouterManager, route, mPackageName,
|
||||
mPreferenceItemMap.get(route.getId())) : new PhoneMediaDevice(mContext,
|
||||
mRouterManager, route, mPackageName);
|
||||
break;
|
||||
case TYPE_HEARING_AID:
|
||||
case TYPE_BLUETOOTH_A2DP:
|
||||
@@ -579,8 +581,11 @@ public class InfoMediaManager extends MediaManager {
|
||||
final CachedBluetoothDevice cachedDevice =
|
||||
mBluetoothManager.getCachedDeviceManager().findDevice(device);
|
||||
if (cachedDevice != null) {
|
||||
mediaDevice = new BluetoothMediaDevice(mContext, cachedDevice, mRouterManager,
|
||||
route, mPackageName);
|
||||
mediaDevice = mPreferenceItemMap.containsKey(route.getId())
|
||||
? new BluetoothMediaDevice(mContext, cachedDevice, mRouterManager,
|
||||
route, mPackageName, mPreferenceItemMap.get(route.getId()))
|
||||
: new BluetoothMediaDevice(mContext, cachedDevice, mRouterManager,
|
||||
route, mPackageName);
|
||||
}
|
||||
break;
|
||||
case TYPE_REMOTE_AUDIO_VIDEO_RECEIVER:
|
||||
|
||||
@@ -24,10 +24,13 @@ import static android.media.MediaRoute2Info.TYPE_USB_HEADSET;
|
||||
import static android.media.MediaRoute2Info.TYPE_WIRED_HEADPHONES;
|
||||
import static android.media.MediaRoute2Info.TYPE_WIRED_HEADSET;
|
||||
|
||||
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_TRANSFER;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.media.MediaRoute2Info;
|
||||
import android.media.MediaRouter2Manager;
|
||||
import android.media.RouteListingPreference;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
@@ -51,7 +54,12 @@ public class PhoneMediaDevice extends MediaDevice {
|
||||
|
||||
PhoneMediaDevice(Context context, MediaRouter2Manager routerManager, MediaRoute2Info info,
|
||||
String packageName) {
|
||||
super(context, routerManager, info, packageName, null);
|
||||
this(context, routerManager, info, packageName, null);
|
||||
}
|
||||
|
||||
PhoneMediaDevice(Context context, MediaRouter2Manager routerManager, MediaRoute2Info info,
|
||||
String packageName, RouteListingPreference.Item item) {
|
||||
super(context, routerManager, info, packageName, item);
|
||||
mDeviceIconUtil = new DeviceIconUtil();
|
||||
initDeviceRecord();
|
||||
}
|
||||
@@ -85,6 +93,12 @@ public class PhoneMediaDevice extends MediaDevice {
|
||||
return name.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSelectionBehavior() {
|
||||
// We don't allow apps to override the selection behavior of system routes.
|
||||
return SELECTION_BEHAVIOR_TRANSFER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSummary() {
|
||||
return mSummary;
|
||||
|
||||
@@ -19,6 +19,9 @@ import static android.media.MediaRoute2Info.TYPE_BLUETOOTH_A2DP;
|
||||
import static android.media.MediaRoute2Info.TYPE_BUILTIN_SPEAKER;
|
||||
import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER;
|
||||
import static android.media.MediaRoute2Info.TYPE_WIRED_HEADPHONES;
|
||||
import static android.media.RouteListingPreference.Item.SELECTION_BEHAVIOR_GO_TO_APP;
|
||||
|
||||
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_TRANSFER;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
@@ -32,6 +35,7 @@ import android.content.Context;
|
||||
import android.media.MediaRoute2Info;
|
||||
import android.media.MediaRouter2Manager;
|
||||
import android.media.NearbyDevice;
|
||||
import android.media.RouteListingPreference;
|
||||
import android.os.Parcel;
|
||||
|
||||
import com.android.settingslib.bluetooth.A2dpProfile;
|
||||
@@ -110,6 +114,8 @@ public class MediaDeviceTest {
|
||||
@Mock
|
||||
private MediaRouter2Manager mMediaRouter2Manager;
|
||||
|
||||
private RouteListingPreference.Item mItem;
|
||||
|
||||
private BluetoothMediaDevice mBluetoothMediaDevice1;
|
||||
private BluetoothMediaDevice mBluetoothMediaDevice2;
|
||||
private BluetoothMediaDevice mBluetoothMediaDevice3;
|
||||
@@ -497,4 +503,21 @@ public class MediaDeviceTest {
|
||||
|
||||
assertThat(mBluetoothMediaDevice1.getFeatures().size()).isEqualTo(0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSelectionBehavior_setItemWithSelectionBehaviorOnSystemRoute_returnTransfer() {
|
||||
mItem = new RouteListingPreference.Item.Builder(DEVICE_ADDRESS_1)
|
||||
.setSelectionBehavior(SELECTION_BEHAVIOR_GO_TO_APP)
|
||||
.build();
|
||||
mBluetoothMediaDevice1 = new BluetoothMediaDevice(mContext, mCachedDevice1,
|
||||
mMediaRouter2Manager, null /* MediaRoute2Info */, TEST_PACKAGE_NAME, mItem);
|
||||
mPhoneMediaDevice =
|
||||
new PhoneMediaDevice(mContext, mMediaRouter2Manager, mPhoneRouteInfo,
|
||||
TEST_PACKAGE_NAME, mItem);
|
||||
|
||||
assertThat(mBluetoothMediaDevice1.getSelectionBehavior()).isEqualTo(
|
||||
SELECTION_BEHAVIOR_TRANSFER);
|
||||
assertThat(mPhoneMediaDevice.getSelectionBehavior()).isEqualTo(
|
||||
SELECTION_BEHAVIOR_TRANSFER);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user