Loading src/com/android/settings/media/MediaOutputSlice.java +20 −10 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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, Loading tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java +37 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading
src/com/android/settings/media/MediaOutputSlice.java +20 −10 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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, Loading
tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java +37 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading