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 9825b9172..53fb7f657 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 @@ -1,10 +1,13 @@ package org.koitharu.kotatsu.base.ui.widgets +import android.annotation.SuppressLint import android.content.Context +import android.content.res.ColorStateList import android.util.AttributeSet import android.view.View.OnClickListener import androidx.annotation.ColorRes import androidx.core.content.ContextCompat +import androidx.core.content.res.getColorStateListOrThrow import androidx.core.view.children import com.google.android.material.chip.Chip import com.google.android.material.chip.ChipDrawable @@ -28,6 +31,8 @@ class ChipsView @JvmOverloads constructor( private val chipOnCloseListener = OnClickListener { onChipCloseClickListener?.onChipCloseClick(it as Chip, it.tag) } + private val defaultChipStrokeColor: ColorStateList + private val defaultChipTextColor: ColorStateList var onChipClickListener: OnChipClickListener? = null set(value) { field = value @@ -41,6 +46,14 @@ class ChipsView @JvmOverloads constructor( children.forEach { (it as? Chip)?.isCloseIconVisible = isCloseIconVisible } } + init { + @SuppressLint("CustomViewStyleable") + 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) + a.recycle() + } + override fun requestLayout() { if (isLayoutSuppressedCompat) { isLayoutCalledOnSuppressed = true @@ -81,7 +94,10 @@ class ChipsView @JvmOverloads constructor( } else { ContextCompat.getColorStateList(context, model.tint) } - chip.buttonTintList = tint + chip.chipIconTint = tint + chip.checkedIconTint = tint + chip.chipStrokeColor = tint ?: defaultChipStrokeColor + chip.setTextColor(tint ?: defaultChipTextColor) chip.isClickable = onChipClickListener != null || model.isCheckable chip.isCheckable = model.isCheckable chip.isChecked = model.isChecked diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 9529f4d9d..ca8f7c139 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -9,5 +9,5 @@ #29FFFFFF #1FFFFFFF #260052 - #EF6C00 + #FB8C00 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index c05d7cf91..28cfa11ae 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -22,5 +22,5 @@ #29000000 #1F000000 #334800E0 - #FFA726 + #E65100 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 88030d607..504c894bc 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -94,7 +94,7 @@