summaryrefslogtreecommitdiff
path: root/packages/SettingsLib
diff options
context:
space:
mode:
author Wes Okuhara <wesokuhara@google.com> 2025-03-21 10:06:10 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2025-03-21 10:06:10 -0700
commit364d006c19c6b43d5e1c7cccebf8aeeae6e2a6f1 (patch)
tree21fcf432cf934667f87c6959e8ed9eaf4fb1ec56 /packages/SettingsLib
parentf9b4f093c29689f1e063601288742a2dd5ee0dec (diff)
parentcd18c5140c3bc9c15d3516acc3993ad04a5b5076 (diff)
Merge "[SettingsLib] Dynamically update StatusBannerPreference icon tint" into main
Diffstat (limited to 'packages/SettingsLib')
-rw-r--r--packages/SettingsLib/StatusBannerPreference/src/com/android/settingslib/widget/StatusBannerPreference.kt13
1 files changed, 11 insertions, 2 deletions
diff --git a/packages/SettingsLib/StatusBannerPreference/src/com/android/settingslib/widget/StatusBannerPreference.kt b/packages/SettingsLib/StatusBannerPreference/src/com/android/settingslib/widget/StatusBannerPreference.kt
index e6c6638f7de4..c62aed1da352 100644
--- a/packages/SettingsLib/StatusBannerPreference/src/com/android/settingslib/widget/StatusBannerPreference.kt
+++ b/packages/SettingsLib/StatusBannerPreference/src/com/android/settingslib/widget/StatusBannerPreference.kt
@@ -49,6 +49,7 @@ class StatusBannerPreference @JvmOverloads constructor(
var iconLevel: BannerStatus = BannerStatus.GENERIC
set(value) {
field = value
+ updateIconTint(value)
notifyChanged()
}
var buttonLevel: BannerStatus = BannerStatus.GENERIC
@@ -81,7 +82,7 @@ class StatusBannerPreference @JvmOverloads constructor(
if (icon == null) {
icon = getIconDrawable(iconLevel)
} else {
- icon!!.setTintList(ColorStateList.valueOf(getBackgroundColor(iconLevel)))
+ updateIconTint(iconLevel)
}
buttonLevel = getInteger(R.styleable.StatusBanner_buttonLevel, 0).toBannerStatus()
buttonText = getString(R.styleable.StatusBanner_buttonText) ?: ""
@@ -252,4 +253,12 @@ class StatusBannerPreference @JvmOverloads constructor(
)
}
}
-} \ No newline at end of file
+
+ /**
+ * Sets the icon's tint color based on the icon level. If an icon is not defined, this is a
+ * no-op.
+ */
+ private fun updateIconTint(iconLevel: BannerStatus) {
+ icon?.setTintList(ColorStateList.valueOf(getBackgroundColor(iconLevel)))
+ }
+}