bt: Use group id to select color for icon
This reduces icon color flickering when disconnecting one of the devices from a device group. Normally we use device address to pick a color but in case we have a group id we should use it instead, so that the color does not change when one of the devices disconnects. Bug: 269067986 Test: manual Tag: #feature Change-Id: If72187d050e8ea531b8f2c39e22f3faf1ec14f7b Merged-In: If72187d050e8ea531b8f2c39e22f3faf1ec14f7b
This commit is contained in:
committed by
Jack He
parent
6aecb91bd1
commit
84ddae46ef
@@ -6,6 +6,7 @@ import android.annotation.SuppressLint;
|
||||
import android.bluetooth.BluetoothClass;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothProfile;
|
||||
import android.bluetooth.BluetoothCsipSetCoordinator;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
@@ -174,14 +175,21 @@ public class BluetoothUtils {
|
||||
resources, ((BitmapDrawable) pair.first).getBitmap()), pair.second);
|
||||
}
|
||||
|
||||
int hashCode;
|
||||
if ((cachedDevice.getGroupId() != BluetoothCsipSetCoordinator.GROUP_ID_INVALID)) {
|
||||
hashCode = new Integer(cachedDevice.getGroupId()).hashCode();
|
||||
} else {
|
||||
hashCode = cachedDevice.getAddress().hashCode();
|
||||
}
|
||||
|
||||
return new Pair<>(buildBtRainbowDrawable(context,
|
||||
pair.first, cachedDevice.getAddress().hashCode()), pair.second);
|
||||
pair.first, hashCode), pair.second);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build Bluetooth device icon with rainbow
|
||||
*/
|
||||
public static Drawable buildBtRainbowDrawable(Context context, Drawable drawable,
|
||||
private static Drawable buildBtRainbowDrawable(Context context, Drawable drawable,
|
||||
int hashCode) {
|
||||
final Resources resources = context.getResources();
|
||||
|
||||
|
||||
@@ -1548,8 +1548,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
|
||||
refresh();
|
||||
}
|
||||
|
||||
return new Pair<>(BluetoothUtils.buildBtRainbowDrawable(
|
||||
mContext, pair.first, getAddress().hashCode()), pair.second);
|
||||
return BluetoothUtils.getBtRainbowDrawableWithDescription(mContext, this);
|
||||
}
|
||||
|
||||
void releaseLruCache() {
|
||||
|
||||
Reference in New Issue
Block a user