diff options
author | 2025-03-21 10:06:10 -0700 | |
---|---|---|
committer | 2025-03-21 10:06:10 -0700 | |
commit | 364d006c19c6b43d5e1c7cccebf8aeeae6e2a6f1 (patch) | |
tree | 21fcf432cf934667f87c6959e8ed9eaf4fb1ec56 /packages/SettingsLib | |
parent | f9b4f093c29689f1e063601288742a2dd5ee0dec (diff) | |
parent | cd18c5140c3bc9c15d3516acc3993ad04a5b5076 (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.kt | 13 |
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))) + } +} |