diff options
3 files changed, 55 insertions, 11 deletions
diff --git a/packages/SettingsLib/res/drawable/ic_media_display_device.xml b/packages/SettingsLib/res/drawable/ic_media_display_device.xml index 78b4e2a23d45..54fec782c7d1 100644 --- a/packages/SettingsLib/res/drawable/ic_media_display_device.xml +++ b/packages/SettingsLib/res/drawable/ic_media_display_device.xml @@ -15,16 +15,12 @@ limitations under the License. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="14dp" - android:height="11dp" - android:viewportWidth="14" - android:viewportHeight="11" - android:tint="?android:attr/colorControlNormal"> + android:width="18dp" + android:height="18dp" + android:viewportWidth="18" + android:viewportHeight="18"> <path - android:pathData="M10,10v1H4v-1H1.5A1.5,1.5 0,0 1,0 8.5v-7A1.5,1.5 0, - 0 1,1.5 0h11A1.5,1.5 0,0 1,14 1.5v7a1.5,1.5 0,0 1,-1.5 1.5H10zM1.5, - 1a0.5,0.5 0,0 0,-0.5 0.5v7a0.5,0.5 0,0 0,0.5 0.5h11a0.5,0.5 0,0 0, - 0.5 -0.5v-7a0.5,0.5 0,0 0,-0.5 -0.5h-11z" - android:fillColor="#000000" + android:pathData="M12,14V15H6V14H3.5C3.1022,14 2.7206,13.842 2.4393,13.5607C2.158,13.2794 2,12.8978 2,12.5V5.5C2,5.1022 2.158,4.7206 2.4393,4.4393C2.7206,4.158 3.1022,4 3.5,4H14.5C14.8978,4 15.2794,4.158 15.5607,4.4393C15.842,4.7206 16,5.1022 16,5.5V12.5C16,12.8978 15.842,13.2794 15.5607,13.5607C15.2794,13.842 14.8978,14 14.5,14H12ZM3.5,5C3.3674,5 3.2402,5.0527 3.1465,5.1465C3.0527,5.2402 3,5.3674 3,5.5V12.5C3,12.6326 3.0527,12.7598 3.1465,12.8536C3.2402,12.9473 3.3674,13 3.5,13H14.5C14.6326,13 14.7598,12.9473 14.8536,12.8536C14.9473,12.7598 15,12.6326 15,12.5V5.5C15,5.3674 14.9473,5.2402 14.8536,5.1465C14.7598,5.0527 14.6326,5 14.5,5H3.5Z" + android:fillColor="#5F6368" android:fillType="evenOdd"/> </vector>
\ No newline at end of file diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java index ea71e52dc9c9..949b2456042c 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java @@ -15,6 +15,8 @@ */ package com.android.settingslib.media; +import static android.media.MediaRoute2Info.FEATURE_REMOTE_GROUP_PLAYBACK; +import static android.media.MediaRoute2Info.FEATURE_REMOTE_VIDEO_PLAYBACK; import static android.media.MediaRoute2Info.TYPE_GROUP; import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER; import static android.media.MediaRoute2Info.TYPE_REMOTE_TV; @@ -29,6 +31,8 @@ import androidx.annotation.VisibleForTesting; import com.android.settingslib.R; import com.android.settingslib.bluetooth.BluetoothUtils; +import java.util.List; + /** * InfoMediaDevice extends MediaDevice to represents wifi device. */ @@ -62,7 +66,7 @@ public class InfoMediaDevice extends MediaDevice { @Override public Drawable getIconWithoutBackground() { - return mContext.getDrawable(getDrawableResId()); + return mContext.getDrawable(getDrawableResIdByFeature()); } @VisibleForTesting @@ -83,6 +87,21 @@ public class InfoMediaDevice extends MediaDevice { return resId; } + @VisibleForTesting + int getDrawableResIdByFeature() { + int resId; + final List<String> features = mRouteInfo.getFeatures(); + if (features.contains(FEATURE_REMOTE_GROUP_PLAYBACK)) { + resId = R.drawable.ic_media_group_device; + } else if (features.contains(FEATURE_REMOTE_VIDEO_PLAYBACK)) { + resId = R.drawable.ic_media_display_device; + } else { + resId = R.drawable.ic_media_speaker_device; + } + + return resId; + } + @Override public String getId() { return MediaDeviceUtils.getId(mRouteInfo); diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java index 49b236a2188f..c45b7f333fa1 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java @@ -16,6 +16,9 @@ package com.android.settingslib.media; +import static android.media.MediaRoute2Info.FEATURE_REMOTE_AUDIO_PLAYBACK; +import static android.media.MediaRoute2Info.FEATURE_REMOTE_GROUP_PLAYBACK; +import static android.media.MediaRoute2Info.FEATURE_REMOTE_VIDEO_PLAYBACK; import static android.media.MediaRoute2Info.TYPE_GROUP; import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER; import static android.media.MediaRoute2Info.TYPE_REMOTE_TV; @@ -38,6 +41,8 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import java.util.ArrayList; + @RunWith(RobolectricTestRunner.class) public class InfoMediaDeviceTest { @@ -107,4 +112,28 @@ public class InfoMediaDeviceTest { assertThat(mInfoMediaDevice.getDrawableResId()).isEqualTo(R.drawable.ic_media_group_device); } + + @Test + public void getDrawableResIdByFeature_returnCorrectResId() { + final ArrayList<String> features = new ArrayList<>(); + features.add(FEATURE_REMOTE_VIDEO_PLAYBACK); + when(mRouteInfo.getFeatures()).thenReturn(features); + + assertThat(mInfoMediaDevice.getDrawableResIdByFeature()).isEqualTo( + R.drawable.ic_media_display_device); + + features.clear(); + features.add(FEATURE_REMOTE_AUDIO_PLAYBACK); + when(mRouteInfo.getFeatures()).thenReturn(features); + + assertThat(mInfoMediaDevice.getDrawableResIdByFeature()).isEqualTo( + R.drawable.ic_media_speaker_device); + + features.clear(); + features.add(FEATURE_REMOTE_GROUP_PLAYBACK); + when(mRouteInfo.getFeatures()).thenReturn(features); + + assertThat(mInfoMediaDevice.getDrawableResIdByFeature()).isEqualTo( + R.drawable.ic_media_group_device); + } } |