Fix battery color tint issue.
Added test to verify fix.
Bug: 128354921
Test: m RunSettingsRoboTests
Change-Id: I24cbb966e549eec783912e4e118c00425b971ad0
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java
index 55bb9b2..0867a01 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java
@@ -16,14 +16,13 @@
package com.android.settings.fuelgauge.batterytip.tips;
-import android.annotation.Nullable;
import android.content.Context;
import android.content.res.ColorStateList;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.SparseIntArray;
+import android.view.View;
-import androidx.annotation.ColorInt;
import androidx.annotation.IdRes;
import androidx.annotation.IntDef;
import androidx.annotation.VisibleForTesting;
@@ -154,15 +153,15 @@
preference.setTitle(getTitle(context));
preference.setSummary(getSummary(context));
preference.setIcon(getIconId());
- ColorStateList tint = getIconTint();
- if (tint != null) {
- preference.getIcon().setTintList(tint);
+ @IdRes int iconTintColorId = getIconTintColorId();
+ if (iconTintColorId != View.NO_ID) {
+ preference.getIcon().setTint(context.getColor(iconTintColorId));
}
}
- /** Returns the {@link ColorStateList} for tinting {@link #getIconId()} or null if none. */
- protected @Nullable ColorStateList getIconTint() {
- return null;
+ /** Returns the color resid for tinting {@link #getIconId()} or {@link View#NO_ID} if none. */
+ protected @IdRes int getIconTintColorId() {
+ return View.NO_ID;
}
public boolean shouldShowDialog() {
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTip.java
index fe06507..0c2bb03 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTip.java
@@ -64,10 +64,10 @@
}
@Override
- public ColorStateList getIconTint() {
- return ColorStateList.valueOf(mState == StateType.HANDLED
+ public int getIconTintColorId() {
+ return mState == StateType.HANDLED
? R.color.battery_maybe_color_light
- : R.color.battery_bad_color_light);
+ : R.color.battery_bad_color_light;
}
@Override
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/SummaryTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/SummaryTip.java
index c21df2c..37122d8 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/SummaryTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/SummaryTip.java
@@ -60,8 +60,8 @@
}
@Override
- public ColorStateList getIconTint() {
- return ColorStateList.valueOf(R.color.battery_good_color_light);
+ public int getIconTintColorId() {
+ return R.color.battery_good_color_light;
}
@Override
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTipTest.java
index 7a447d9..85b00c8 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTipTest.java
@@ -70,6 +70,7 @@
assertThat(tip.getTitle(mContext)).isEqualTo("Turn on Battery Saver");
assertThat(tip.getSummary(mContext)).isEqualTo("Battery may run out earlier than usual");
assertThat(tip.getIconId()).isEqualTo(R.drawable.ic_battery_status_bad_24dp);
+ assertThat(tip.getIconTintColorId()).isEqualTo(R.color.battery_bad_color_light);
}
@Test
@@ -80,6 +81,7 @@
assertThat(tip.getTitle(mContext)).isEqualTo("Battery Saver is on");
assertThat(tip.getSummary(mContext)).isEqualTo("Some features may be limited");
assertThat(tip.getIconId()).isEqualTo(R.drawable.ic_battery_status_maybe_24dp);
+ assertThat(tip.getIconTintColorId()).isEqualTo(R.color.battery_maybe_color_light);
}
@Test