Set accent color to COLOR_NOT_TINTED

Bug: 128570540
Test: Test: make -j42 RunSettingsRoboTests
Change-Id: I483542156bf6cd24ed7080fed45e9f8e4d87a079
diff --git a/src/com/android/settings/media/MediaOutputSlice.java b/src/com/android/settings/media/MediaOutputSlice.java
index e76bc88..53324e9 100644
--- a/src/com/android/settings/media/MediaOutputSlice.java
+++ b/src/com/android/settings/media/MediaOutputSlice.java
@@ -18,11 +18,11 @@
 
 import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_SLICE_URI;
 
-import android.annotation.ColorInt;
 import android.app.PendingIntent;
 import android.bluetooth.BluetoothAdapter;
 import android.content.Context;
 import android.content.Intent;
+import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.text.TextUtils;
 import android.util.Log;
@@ -82,10 +82,9 @@
         }
 
         final List<MediaDevice> devices = getMediaDevices();
-        @ColorInt final int color = Utils.getColorAccentDefaultColor(mContext);
 
         final MediaDevice connectedDevice = getWorker().getCurrentConnectedMediaDevice();
-        final ListBuilder listBuilder = buildActiveDeviceHeader(color, connectedDevice);
+        final ListBuilder listBuilder = buildActiveDeviceHeader(connectedDevice);
 
         for (MediaDevice device : devices) {
             if (!TextUtils.equals(connectedDevice.getId(), device.getId())) {
@@ -96,9 +95,9 @@
         return listBuilder.build();
     }
 
-    private ListBuilder buildActiveDeviceHeader(@ColorInt int color, MediaDevice device) {
+    private ListBuilder buildActiveDeviceHeader(MediaDevice device) {
         final String title = device.getName();
-        final IconCompat icon = IconCompat.createWithResource(mContext, device.getIcon());
+        final IconCompat icon = getDeviceIconCompat(device);
 
         final PendingIntent broadcastAction =
                 getBroadcastIntent(mContext, device.getId(), device.hashCode());
@@ -107,7 +106,7 @@
 
         final ListBuilder listBuilder = new ListBuilder(mContext, MEDIA_OUTPUT_SLICE_URI,
                 ListBuilder.INFINITY)
-                .setAccentColor(color)
+                .setAccentColor(COLOR_NOT_TINTED)
                 .addRow(new ListBuilder.RowBuilder()
                         .setTitleItem(icon, ListBuilder.ICON_IMAGE)
                         .setTitle(title)
@@ -117,6 +116,17 @@
         return listBuilder;
     }
 
+    private IconCompat getDeviceIconCompat(MediaDevice device) {
+        Drawable drawable = device.getIcon();
+        if (drawable == null) {
+            Log.d(TAG, "getDeviceIconCompat() device : " + device.getName() + ", drawable is null");
+            // Use default Bluetooth device icon to handle getIcon() is null case.
+            drawable = mContext.getDrawable(com.android.internal.R.drawable.ic_bt_headphones_a2dp);
+        }
+
+        return Utils.createIconWithDrawable(drawable);
+    }
+
     private MediaDeviceUpdateWorker getWorker() {
         if (mWorker == null) {
             mWorker = (MediaDeviceUpdateWorker) SliceBackgroundWorker.getInstance(getUri());
@@ -136,7 +146,8 @@
         final String title = device.getName();
         final PendingIntent broadcastAction =
                 getBroadcastIntent(mContext, device.getId(), device.hashCode());
-        final IconCompat deviceIcon = IconCompat.createWithResource(mContext, device.getIcon());
+        final IconCompat deviceIcon = getDeviceIconCompat(device);
+
         final ListBuilder.RowBuilder rowBuilder = new ListBuilder.RowBuilder()
                 .setTitleItem(deviceIcon, ListBuilder.ICON_IMAGE)
                 .setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
index d26a458..205f295 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
@@ -30,6 +30,7 @@
 import android.bluetooth.BluetoothAdapter;
 import android.content.Context;
 import android.content.Intent;
+import android.graphics.drawable.Drawable;
 
 import androidx.slice.Slice;
 import androidx.slice.SliceMetadata;
@@ -66,6 +67,8 @@
 
     @Mock
     private LocalMediaManager mLocalMediaManager;
+    @Mock
+    private Drawable mTestDrawable;
 
     private final List<MediaDevice> mDevices = new ArrayList<>();
 
@@ -105,7 +108,7 @@
         mDevices.clear();
         final MediaDevice device = mock(MediaDevice.class);
         when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
-        when(device.getIcon()).thenReturn(TEST_DEVICE_1_ICON);
+        when(device.getIcon()).thenReturn(mTestDrawable);
         when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
 
         final Slice mediaSlice = mMediaOutputSlice.getSlice();