Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84ddae46 authored by Michał Narajowski's avatar Michał Narajowski Committed by Jack He
Browse files

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
parent 6aecb91b
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -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();

+1 −2
Original line number Diff line number Diff line
@@ -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() {