Merge "Unable to show correct device icon in Output Switcher" into rvc-dev am: fb87c72c66

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12055443

Change-Id: I5b05ea2b37ad09c6fbb01af366cfe2cd2f90c89d
This commit is contained in:
TreeHugger Robot
2020-07-03 04:23:08 +00:00
committed by Automerger Merge Worker
3 changed files with 55 additions and 11 deletions

View File

@@ -15,16 +15,12 @@
limitations under the License. limitations under the License.
--> -->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="14dp" android:width="18dp"
android:height="11dp" android:height="18dp"
android:viewportWidth="14" android:viewportWidth="18"
android:viewportHeight="11" android:viewportHeight="18">
android:tint="?android:attr/colorControlNormal">
<path <path
android:pathData="M10,10v1H4v-1H1.5A1.5,1.5 0,0 1,0 8.5v-7A1.5,1.5 0, 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"
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, android:fillColor="#5F6368"
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:fillType="evenOdd"/> android:fillType="evenOdd"/>
</vector> </vector>

View File

@@ -15,6 +15,8 @@
*/ */
package com.android.settingslib.media; 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_GROUP;
import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER; import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER;
import static android.media.MediaRoute2Info.TYPE_REMOTE_TV; 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.R;
import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.BluetoothUtils;
import java.util.List;
/** /**
* InfoMediaDevice extends MediaDevice to represents wifi device. * InfoMediaDevice extends MediaDevice to represents wifi device.
*/ */
@@ -62,7 +66,7 @@ public class InfoMediaDevice extends MediaDevice {
@Override @Override
public Drawable getIconWithoutBackground() { public Drawable getIconWithoutBackground() {
return mContext.getDrawable(getDrawableResId()); return mContext.getDrawable(getDrawableResIdByFeature());
} }
@VisibleForTesting @VisibleForTesting
@@ -83,6 +87,21 @@ public class InfoMediaDevice extends MediaDevice {
return resId; 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 @Override
public String getId() { public String getId() {
return MediaDeviceUtils.getId(mRouteInfo); return MediaDeviceUtils.getId(mRouteInfo);

View File

@@ -16,6 +16,9 @@
package com.android.settingslib.media; 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_GROUP;
import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER; import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER;
import static android.media.MediaRoute2Info.TYPE_REMOTE_TV; import static android.media.MediaRoute2Info.TYPE_REMOTE_TV;
@@ -38,6 +41,8 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
import java.util.ArrayList;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class InfoMediaDeviceTest { public class InfoMediaDeviceTest {
@@ -107,4 +112,28 @@ public class InfoMediaDeviceTest {
assertThat(mInfoMediaDevice.getDrawableResId()).isEqualTo(R.drawable.ic_media_group_device); 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);
}
} }