Merge "Fix pixel buds icon is empty in output switcher" into rvc-qpr-dev am: 31534b741c

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

Change-Id: Iac1a78ec85d20bf244053e556ebdb276dd6bda59
This commit is contained in:
TreeHugger Robot
2020-12-07 08:13:01 +00:00
committed by Automerger Merge Worker
2 changed files with 19 additions and 5 deletions

View File

@@ -18,6 +18,7 @@ package com.android.settingslib.media;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaRoute2Info;
import android.media.MediaRouter2Manager;
@@ -56,8 +57,9 @@ public class BluetoothMediaDevice extends MediaDevice {
@Override
public Drawable getIcon() {
final Drawable drawable = getIconWithoutBackground();
if (!isFastPairDevice()) {
final Drawable drawable =
BluetoothUtils.getBtDrawableWithDescription(mContext, mCachedDevice).first;
if (!(drawable instanceof BitmapDrawable)) {
setColorFilter(drawable);
}
return BluetoothUtils.buildAdvancedDrawable(mContext, drawable);
@@ -65,9 +67,7 @@ public class BluetoothMediaDevice extends MediaDevice {
@Override
public Drawable getIconWithoutBackground() {
return isFastPairDevice()
? BluetoothUtils.getBtDrawableWithDescription(mContext, mCachedDevice).first
: mContext.getDrawable(R.drawable.ic_headphone);
return BluetoothUtils.getBtClassDrawableWithDescription(mContext, mCachedDevice).first;
}
@Override

View File

@@ -24,6 +24,7 @@ import static org.mockito.Mockito.when;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -96,4 +97,17 @@ public class BluetoothMediaDeviceTest {
assertThat(mBluetoothMediaDevice.isFastPairDevice()).isFalse();
}
@Test
public void getIcon_isNotFastPairDevice_drawableTypeIsNotBitmapDrawable() {
final BluetoothDevice bluetoothDevice = mock(BluetoothDevice.class);
when(mDevice.getDevice()).thenReturn(bluetoothDevice);
final String value = "False";
final byte[] bytes = value.getBytes();
when(bluetoothDevice.getMetadata(BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET))
.thenReturn(bytes);
assertThat(mBluetoothMediaDevice.getIcon() instanceof BitmapDrawable).isFalse();
}
}