[Output Switcher] Allow subtext and flags on System Route am: 3c9b30a749 am: a60acac8fd
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23853603 Change-Id: Ib42ed509fb47584741d66f20ea7b17c54314d296 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;
|
package com.android.settingslib.media;
|
||||||
|
|
||||||
|
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_TRANSFER;
|
||||||
|
|
||||||
import android.bluetooth.BluetoothClass;
|
import android.bluetooth.BluetoothClass;
|
||||||
import android.bluetooth.BluetoothDevice;
|
import android.bluetooth.BluetoothDevice;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -22,6 +24,7 @@ import android.graphics.drawable.Drawable;
|
|||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.media.MediaRoute2Info;
|
import android.media.MediaRoute2Info;
|
||||||
import android.media.MediaRouter2Manager;
|
import android.media.MediaRouter2Manager;
|
||||||
|
import android.media.RouteListingPreference;
|
||||||
|
|
||||||
import com.android.settingslib.R;
|
import com.android.settingslib.R;
|
||||||
import com.android.settingslib.bluetooth.BluetoothUtils;
|
import com.android.settingslib.bluetooth.BluetoothUtils;
|
||||||
@@ -39,7 +42,13 @@ public class BluetoothMediaDevice extends MediaDevice {
|
|||||||
|
|
||||||
BluetoothMediaDevice(Context context, CachedBluetoothDevice device,
|
BluetoothMediaDevice(Context context, CachedBluetoothDevice device,
|
||||||
MediaRouter2Manager routerManager, MediaRoute2Info info, String packageName) {
|
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;
|
mCachedDevice = device;
|
||||||
mAudioManager = context.getSystemService(AudioManager.class);
|
mAudioManager = context.getSystemService(AudioManager.class);
|
||||||
initDeviceRecord();
|
initDeviceRecord();
|
||||||
@@ -57,6 +66,12 @@ public class BluetoothMediaDevice extends MediaDevice {
|
|||||||
: mContext.getString(R.string.bluetooth_disconnected);
|
: 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
|
@Override
|
||||||
public Drawable getIcon() {
|
public Drawable getIcon() {
|
||||||
return BluetoothUtils.isAdvancedUntetheredDevice(mCachedDevice.getDevice())
|
return BluetoothUtils.isAdvancedUntetheredDevice(mCachedDevice.getDevice())
|
||||||
|
|||||||
@@ -568,8 +568,10 @@ public class InfoMediaManager extends MediaManager {
|
|||||||
case TYPE_HDMI:
|
case TYPE_HDMI:
|
||||||
case TYPE_WIRED_HEADSET:
|
case TYPE_WIRED_HEADSET:
|
||||||
case TYPE_WIRED_HEADPHONES:
|
case TYPE_WIRED_HEADPHONES:
|
||||||
mediaDevice =
|
mediaDevice = mPreferenceItemMap.containsKey(route.getId()) ? new PhoneMediaDevice(
|
||||||
new PhoneMediaDevice(mContext, mRouterManager, route, mPackageName);
|
mContext, mRouterManager, route, mPackageName,
|
||||||
|
mPreferenceItemMap.get(route.getId())) : new PhoneMediaDevice(mContext,
|
||||||
|
mRouterManager, route, mPackageName);
|
||||||
break;
|
break;
|
||||||
case TYPE_HEARING_AID:
|
case TYPE_HEARING_AID:
|
||||||
case TYPE_BLUETOOTH_A2DP:
|
case TYPE_BLUETOOTH_A2DP:
|
||||||
@@ -579,8 +581,11 @@ public class InfoMediaManager extends MediaManager {
|
|||||||
final CachedBluetoothDevice cachedDevice =
|
final CachedBluetoothDevice cachedDevice =
|
||||||
mBluetoothManager.getCachedDeviceManager().findDevice(device);
|
mBluetoothManager.getCachedDeviceManager().findDevice(device);
|
||||||
if (cachedDevice != null) {
|
if (cachedDevice != null) {
|
||||||
mediaDevice = new BluetoothMediaDevice(mContext, cachedDevice, mRouterManager,
|
mediaDevice = mPreferenceItemMap.containsKey(route.getId())
|
||||||
route, mPackageName);
|
? new BluetoothMediaDevice(mContext, cachedDevice, mRouterManager,
|
||||||
|
route, mPackageName, mPreferenceItemMap.get(route.getId()))
|
||||||
|
: new BluetoothMediaDevice(mContext, cachedDevice, mRouterManager,
|
||||||
|
route, mPackageName);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TYPE_REMOTE_AUDIO_VIDEO_RECEIVER:
|
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_HEADPHONES;
|
||||||
import static android.media.MediaRoute2Info.TYPE_WIRED_HEADSET;
|
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.content.Context;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.media.MediaRoute2Info;
|
import android.media.MediaRoute2Info;
|
||||||
import android.media.MediaRouter2Manager;
|
import android.media.MediaRouter2Manager;
|
||||||
|
import android.media.RouteListingPreference;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
@@ -51,7 +54,12 @@ public class PhoneMediaDevice extends MediaDevice {
|
|||||||
|
|
||||||
PhoneMediaDevice(Context context, MediaRouter2Manager routerManager, MediaRoute2Info info,
|
PhoneMediaDevice(Context context, MediaRouter2Manager routerManager, MediaRoute2Info info,
|
||||||
String packageName) {
|
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();
|
mDeviceIconUtil = new DeviceIconUtil();
|
||||||
initDeviceRecord();
|
initDeviceRecord();
|
||||||
}
|
}
|
||||||
@@ -85,6 +93,12 @@ public class PhoneMediaDevice extends MediaDevice {
|
|||||||
return name.toString();
|
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
|
@Override
|
||||||
public String getSummary() {
|
public String getSummary() {
|
||||||
return mSummary;
|
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_BUILTIN_SPEAKER;
|
||||||
import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER;
|
import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER;
|
||||||
import static android.media.MediaRoute2Info.TYPE_WIRED_HEADPHONES;
|
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;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
@@ -32,6 +35,7 @@ import android.content.Context;
|
|||||||
import android.media.MediaRoute2Info;
|
import android.media.MediaRoute2Info;
|
||||||
import android.media.MediaRouter2Manager;
|
import android.media.MediaRouter2Manager;
|
||||||
import android.media.NearbyDevice;
|
import android.media.NearbyDevice;
|
||||||
|
import android.media.RouteListingPreference;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
|
|
||||||
import com.android.settingslib.bluetooth.A2dpProfile;
|
import com.android.settingslib.bluetooth.A2dpProfile;
|
||||||
@@ -110,6 +114,8 @@ public class MediaDeviceTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private MediaRouter2Manager mMediaRouter2Manager;
|
private MediaRouter2Manager mMediaRouter2Manager;
|
||||||
|
|
||||||
|
private RouteListingPreference.Item mItem;
|
||||||
|
|
||||||
private BluetoothMediaDevice mBluetoothMediaDevice1;
|
private BluetoothMediaDevice mBluetoothMediaDevice1;
|
||||||
private BluetoothMediaDevice mBluetoothMediaDevice2;
|
private BluetoothMediaDevice mBluetoothMediaDevice2;
|
||||||
private BluetoothMediaDevice mBluetoothMediaDevice3;
|
private BluetoothMediaDevice mBluetoothMediaDevice3;
|
||||||
@@ -497,4 +503,21 @@ public class MediaDeviceTest {
|
|||||||
|
|
||||||
assertThat(mBluetoothMediaDevice1.getFeatures().size()).isEqualTo(0);
|
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