Loading packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java +6 −3 Original line number Diff line number Diff line Loading @@ -1222,19 +1222,22 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> */ public Pair<Drawable, String> getDrawableWithDescription() { Uri uri = BluetoothUtils.getUriMetaData(mDevice, BluetoothDevice.METADATA_MAIN_ICON); Pair<Drawable, String> pair = BluetoothUtils.getBtClassDrawableWithDescription( mContext, this); if (BluetoothUtils.isAdvancedDetailsHeader(mDevice) && uri != null) { BitmapDrawable drawable = mDrawableCache.get(uri.toString()); if (drawable != null) { Resources resources = mContext.getResources(); return new Pair<>(new AdaptiveOutlineDrawable( resources, drawable.getBitmap()), BluetoothUtils.getBtClassDrawableWithDescription(mContext, this).second); resources, drawable.getBitmap()), pair.second); } refresh(); } return BluetoothUtils.getBtRainbowDrawableWithDescription(mContext, this); return new Pair<>(BluetoothUtils.buildBtRainbowDrawable( mContext, pair.first, getAddress().hashCode()), pair.second); } void releaseLruCache() { Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -31,7 +31,9 @@ import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothProfile; import android.content.Context; import android.graphics.drawable.BitmapDrawable; import android.media.AudioManager; import android.util.LruCache; import com.android.settingslib.R; import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter; Loading Loading @@ -961,6 +963,10 @@ public class CachedBluetoothDeviceTest { @Test public void getDrawableWithDescription_isAdvancedDevice_returnAdvancedIcon() { LruCache lruCache = mock(LruCache.class); mCachedDevice.mDrawableCache = lruCache; BitmapDrawable drawable = mock(BitmapDrawable.class); when(lruCache.get("fake_uri")).thenReturn(drawable); when(mDevice.getMetadata(BluetoothDevice.METADATA_MAIN_ICON)) .thenReturn("fake_uri".getBytes()); when(mDevice.getMetadata(BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET)) Loading Loading
packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java +6 −3 Original line number Diff line number Diff line Loading @@ -1222,19 +1222,22 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> */ public Pair<Drawable, String> getDrawableWithDescription() { Uri uri = BluetoothUtils.getUriMetaData(mDevice, BluetoothDevice.METADATA_MAIN_ICON); Pair<Drawable, String> pair = BluetoothUtils.getBtClassDrawableWithDescription( mContext, this); if (BluetoothUtils.isAdvancedDetailsHeader(mDevice) && uri != null) { BitmapDrawable drawable = mDrawableCache.get(uri.toString()); if (drawable != null) { Resources resources = mContext.getResources(); return new Pair<>(new AdaptiveOutlineDrawable( resources, drawable.getBitmap()), BluetoothUtils.getBtClassDrawableWithDescription(mContext, this).second); resources, drawable.getBitmap()), pair.second); } refresh(); } return BluetoothUtils.getBtRainbowDrawableWithDescription(mContext, this); return new Pair<>(BluetoothUtils.buildBtRainbowDrawable( mContext, pair.first, getAddress().hashCode()), pair.second); } void releaseLruCache() { Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -31,7 +31,9 @@ import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothProfile; import android.content.Context; import android.graphics.drawable.BitmapDrawable; import android.media.AudioManager; import android.util.LruCache; import com.android.settingslib.R; import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter; Loading Loading @@ -961,6 +963,10 @@ public class CachedBluetoothDeviceTest { @Test public void getDrawableWithDescription_isAdvancedDevice_returnAdvancedIcon() { LruCache lruCache = mock(LruCache.class); mCachedDevice.mDrawableCache = lruCache; BitmapDrawable drawable = mock(BitmapDrawable.class); when(lruCache.get("fake_uri")).thenReturn(drawable); when(mDevice.getMetadata(BluetoothDevice.METADATA_MAIN_ICON)) .thenReturn("fake_uri".getBytes()); when(mDevice.getMetadata(BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET)) Loading