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

Commit 75c84f8e authored by tim peng's avatar tim peng Committed by Android (Google) Code Review
Browse files

Merge "No feedback when attempting to transfer to an unpowered BT device" into rvc-dev

parents eb11b511 85055801
Loading
Loading
Loading
Loading
+20 −10
Original line number Diff line number Diff line
@@ -197,6 +197,8 @@ public class MediaOutputSlice implements CustomSliceable {
                }
                listBuilder.addInputRange(builder);
            } else {
                Log.d(TAG, "addRow device = " + device.getName() + " MaxVolume = "
                        + device.getMaxVolume());
                final ListBuilder.RowBuilder builder = getMediaDeviceRow(device);
                // Check end item visibility
                if (device.getDeviceType() == MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE
@@ -266,16 +268,24 @@ public class MediaOutputSlice implements CustomSliceable {

        if (device.getDeviceType() == MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE
                && !device.isConnected()) {
            if (device.getState() == LocalMediaManager.MediaDeviceState.STATE_CONNECTING) {
                rowBuilder.setTitle(deviceName);
                rowBuilder.setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
                        ListBuilder.ICON_IMAGE, deviceName));
                rowBuilder.setSubtitle(mContext.getText(R.string.media_output_switching));
            } else {
                // Append status to title only for the disconnected Bluetooth device.
                final SpannableString spannableTitle = new SpannableString(
                        mContext.getString(R.string.media_output_disconnected_status, deviceName));
                spannableTitle.setSpan(new ForegroundColorSpan(
                    Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondary)),
                                Utils.getColorAttrDefaultColor(mContext,
                                        android.R.attr.textColorSecondary)),
                        deviceName.length(),
                        spannableTitle.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
                rowBuilder.setTitle(spannableTitle);
                rowBuilder.setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
                        ListBuilder.ICON_IMAGE, spannableTitle));
            }
        } else {
            rowBuilder.setTitle(deviceName);
            rowBuilder.setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
+37 −0
Original line number Diff line number Diff line
@@ -473,6 +473,43 @@ public class MediaOutputSliceTest {
                R.string.bluetooth_pairing_pref_title))).isEqualTo(-1);
    }

    @Test
    public void getSlice_disconnectedBtOnTransferring_containTransferringSubtitle() {
        final List<MediaDevice> mSelectedDevices = new ArrayList<>();
        final List<MediaDevice> mSelectableDevices = new ArrayList<>();
        mDevices.clear();
        final MediaDevice device = mock(MediaDevice.class);
        when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
        when(device.getIcon()).thenReturn(mTestDrawable);
        when(device.getMaxVolume()).thenReturn(100);
        when(device.isConnected()).thenReturn(true);
        when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE);
        when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
        final MediaDevice device2 = mock(MediaDevice.class);
        when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
        when(device2.getIcon()).thenReturn(mTestDrawable);
        when(device2.getMaxVolume()).thenReturn(100);
        when(device2.isConnected()).thenReturn(false);
        when(device2.getState()).thenReturn(LocalMediaManager.MediaDeviceState.STATE_CONNECTING);
        when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE);
        when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
        mSelectedDevices.add(device);
        mSelectableDevices.add(device2);
        when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
        mDevices.add(device);
        mDevices.add(device2);
        when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
        when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
        mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);

        final Slice mediaSlice = mMediaOutputSlice.getSlice();
        final String sliceInfo = SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM,
                null).toString();

        assertThat(TextUtils.indexOf(sliceInfo, mContext.getText(R.string.media_output_switching)))
                .isNotEqualTo(-1);
    }

    @Test
    public void onNotifyChange_foundMediaDevice_connect() {
        mDevices.clear();