Make BT icon colorful
Add new method to get rainbow bt icon and also refactor AdaptiveHomepageIcon: 1. Rename 2. Add ConstantState Bug: 126425211 Test: RunSettingsRoboTests Change-Id: Idb8aaf253d0d9e2ab33d8852f093e6689ebadde4
This commit is contained in:
@@ -26,7 +26,6 @@ import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.widget.EntityHeaderController;
|
||||
import com.android.settingslib.bluetooth.BluetoothUtils;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
|
||||
import com.android.settingslib.bluetooth.LocalBluetoothManager;
|
||||
@@ -66,10 +65,8 @@ public class BluetoothDetailsHeaderController extends BluetoothDetailsController
|
||||
}
|
||||
|
||||
protected void setHeaderProperties() {
|
||||
final Pair<Drawable, String> pair = BluetoothUtils
|
||||
.getBtClassDrawableWithDescription(mContext, mCachedDevice,
|
||||
mContext.getResources().getFraction(R.fraction.bt_battery_scale_fraction, 1,
|
||||
1));
|
||||
final Pair<Drawable, String> pair = Utils.getBtRainbowDrawableWithDescription(mContext,
|
||||
mCachedDevice);
|
||||
String summaryText = mCachedDevice.getConnectionSummary();
|
||||
// If both the hearing aids are connected, two device status should be shown.
|
||||
// If Second Summary is unavailable, to set it to null.
|
||||
|
@@ -38,7 +38,6 @@ import androidx.preference.PreferenceViewHolder;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.widget.GearPreference;
|
||||
import com.android.settingslib.bluetooth.BluetoothUtils;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
|
||||
@@ -130,8 +129,8 @@ public final class BluetoothDevicePreference extends GearPreference implements
|
||||
// Null check is done at the framework
|
||||
setSummary(mCachedDevice.getConnectionSummary());
|
||||
|
||||
final Pair<Drawable, String> pair = BluetoothUtils
|
||||
.getBtClassDrawableWithDescription(getContext(), mCachedDevice);
|
||||
final Pair<Drawable, String> pair = Utils
|
||||
.getBtRainbowDrawableWithDescription(getContext(), mCachedDevice);
|
||||
if (pair.first != null) {
|
||||
setIcon(pair.first);
|
||||
contentDescription = pair.second;
|
||||
@@ -246,5 +245,4 @@ public final class BluetoothDevicePreference extends GearPreference implements
|
||||
R.string.bluetooth_pairing_error_message);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -21,8 +21,12 @@ import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothProfile;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
import android.util.Pair;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
@@ -30,8 +34,10 @@ import androidx.appcompat.app.AlertDialog;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.widget.AdaptiveIcon;
|
||||
import com.android.settingslib.bluetooth.BluetoothUtils;
|
||||
import com.android.settingslib.bluetooth.BluetoothUtils.ErrorListener;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||
import com.android.settingslib.bluetooth.LocalBluetoothManager;
|
||||
import com.android.settingslib.bluetooth.LocalBluetoothManager.BluetoothManagerCallback;
|
||||
|
||||
@@ -179,4 +185,25 @@ public final class Utils {
|
||||
return META_INT_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get colorful bluetooth icon with description
|
||||
*/
|
||||
public static Pair<Drawable, String> getBtRainbowDrawableWithDescription(Context context,
|
||||
CachedBluetoothDevice cachedDevice) {
|
||||
final Pair<Drawable, String> pair = BluetoothUtils.getBtClassDrawableWithDescription(
|
||||
context, cachedDevice);
|
||||
final Resources resources = context.getResources();
|
||||
final int[] iconFgColors = resources.getIntArray(R.array.bt_icon_fg_colors);
|
||||
final int[] iconBgColors = resources.getIntArray(R.array.bt_icon_bg_colors);
|
||||
|
||||
// get color index based on mac address
|
||||
final int index = Math.abs(cachedDevice.getAddress().hashCode()) % iconBgColors.length;
|
||||
pair.first.setColorFilter(iconFgColors[index], PorterDuff.Mode.SRC_ATOP);
|
||||
final Drawable adaptiveIcon = new AdaptiveIcon(context, pair.first);
|
||||
((AdaptiveIcon) adaptiveIcon).setBackgroundColor(iconBgColors[index]);
|
||||
|
||||
return new Pair<>(adaptiveIcon, pair.second);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user