Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ed3142a authored by shaoweishen's avatar shaoweishen Committed by Automerger Merge Worker
Browse files

[Output Switcher] Allow subtext and flags on System Route am: 3c9b30a7 am: a60acac8

parents e4501a08 a60acac8
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -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())
+9 −4
Original line number Diff line number Diff line
@@ -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,7 +581,10 @@ public class InfoMediaManager extends MediaManager {
                final CachedBluetoothDevice cachedDevice =
                        mBluetoothManager.getCachedDeviceManager().findDevice(device);
                if (cachedDevice != null) {
                    mediaDevice = new BluetoothMediaDevice(mContext, cachedDevice, mRouterManager,
                    mediaDevice = mPreferenceItemMap.containsKey(route.getId())
                            ? new BluetoothMediaDevice(mContext, cachedDevice, mRouterManager,
                            route, mPackageName, mPreferenceItemMap.get(route.getId()))
                            : new BluetoothMediaDevice(mContext, cachedDevice, mRouterManager,
                                    route, mPackageName);
                }
                break;
+15 −1
Original line number Diff line number Diff line
@@ -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;
+23 −0
Original line number Diff line number Diff line
@@ -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);
    }
}