From 8294eb4ecd521bfa790dc6601e3af6d2d713b46a Mon Sep 17 00:00:00 2001 From: Koitharu Date: Mon, 13 Mar 2023 17:31:18 +0200 Subject: [PATCH] Fix chips icon tint --- .../org/koitharu/kotatsu/base/ui/widgets/ChipsView.kt | 9 +++++---- app/src/main/res/values/styles.xml | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/base/ui/widgets/ChipsView.kt b/app/src/main/java/org/koitharu/kotatsu/base/ui/widgets/ChipsView.kt index 53fb7f657..88398cbd0 100644 --- a/app/src/main/java/org/koitharu/kotatsu/base/ui/widgets/ChipsView.kt +++ b/app/src/main/java/org/koitharu/kotatsu/base/ui/widgets/ChipsView.kt @@ -14,7 +14,6 @@ import com.google.android.material.chip.ChipDrawable import com.google.android.material.chip.ChipGroup import org.koitharu.kotatsu.R import org.koitharu.kotatsu.utils.ext.castOrNull -import org.koitharu.kotatsu.utils.ext.getThemeColorStateList import com.google.android.material.R as materialR class ChipsView @JvmOverloads constructor( @@ -33,6 +32,7 @@ class ChipsView @JvmOverloads constructor( } private val defaultChipStrokeColor: ColorStateList private val defaultChipTextColor: ColorStateList + private val defaultChipIconTint: ColorStateList var onChipClickListener: OnChipClickListener? = null set(value) { field = value @@ -51,6 +51,7 @@ class ChipsView @JvmOverloads constructor( val a = context.obtainStyledAttributes(null, materialR.styleable.Chip, 0, R.style.Widget_Kotatsu_Chip) defaultChipStrokeColor = a.getColorStateListOrThrow(materialR.styleable.Chip_chipStrokeColor) defaultChipTextColor = a.getColorStateListOrThrow(materialR.styleable.Chip_android_textColor) + defaultChipIconTint = a.getColorStateListOrThrow(materialR.styleable.Chip_chipIconTint) a.recycle() } @@ -94,8 +95,8 @@ class ChipsView @JvmOverloads constructor( } else { ContextCompat.getColorStateList(context, model.tint) } - chip.chipIconTint = tint - chip.checkedIconTint = tint + chip.chipIconTint = tint ?: defaultChipIconTint + chip.checkedIconTint = tint ?: defaultChipIconTint chip.chipStrokeColor = tint ?: defaultChipStrokeColor chip.setTextColor(tint ?: defaultChipTextColor) chip.isClickable = onChipClickListener != null || model.isCheckable @@ -111,7 +112,7 @@ class ChipsView @JvmOverloads constructor( chip.isCheckedIconVisible = true chip.isChipIconVisible = false chip.setCheckedIconResource(R.drawable.ic_check) - chip.checkedIconTint = context.getThemeColorStateList(materialR.attr.colorControlNormal) + chip.checkedIconTint = defaultChipIconTint chip.isCloseIconVisible = onChipCloseClickListener != null chip.setOnCloseIconClickListener(chipOnCloseListener) chip.setEnsureMinTouchTargetSize(false) diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 504c894bc..5c9713e11 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -95,6 +95,7 @@ ?attr/colorSurface ?attr/colorOnSurfaceVariant ?attr/colorOutline + ?attr/colorControlNormal ?attr/colorControlHighlight