From 2f30d53312001e064986c3a6e794f9d57c758814 Mon Sep 17 00:00:00 2001 From: Rahul Patel Date: Tue, 13 Aug 2024 02:43:49 +0530 Subject: [PATCH] Address filter sheet color issue --- .../store/view/ui/sheets/FilterSheet.kt | 29 ++++++++++++++++++- .../res/drawable/filter_chip_background.xml | 12 ++++++++ app/src/main/res/layout/sheet_filter.xml | 6 ++-- app/src/main/res/values/themes.xml | 12 ++++++-- 4 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 app/src/main/res/drawable/filter_chip_background.xml diff --git a/app/src/main/java/com/aurora/store/view/ui/sheets/FilterSheet.kt b/app/src/main/java/com/aurora/store/view/ui/sheets/FilterSheet.kt index 54ee28be7..6d7b58630 100644 --- a/app/src/main/java/com/aurora/store/view/ui/sheets/FilterSheet.kt +++ b/app/src/main/java/com/aurora/store/view/ui/sheets/FilterSheet.kt @@ -20,8 +20,12 @@ package com.aurora.store.view.ui.sheets import android.content.DialogInterface +import android.content.res.ColorStateList import android.os.Bundle import android.view.View +import com.aurora.extensions.accentColor +import com.aurora.extensions.backgroundColor +import com.aurora.extensions.contrastingColor import com.aurora.store.R import com.aurora.store.data.model.Filter import com.aurora.store.data.providers.FilterProvider @@ -53,6 +57,7 @@ class FilterSheet : BaseDialogSheet() { private fun attachSingleChips() { binding.filterGfs.apply { + applyColors() isChecked = filter.gsfDependentApps setOnCheckedChangeListener { _, checked -> isChecked = checked @@ -61,6 +66,7 @@ class FilterSheet : BaseDialogSheet() { } binding.filterPaid.apply { + applyColors() isChecked = filter.paidApps setOnCheckedChangeListener { _, checked -> isChecked = checked @@ -69,6 +75,7 @@ class FilterSheet : BaseDialogSheet() { } binding.filterAds.apply { + applyColors() isChecked = filter.appsWithAds setOnCheckedChangeListener { _, checked -> isChecked = checked @@ -87,6 +94,8 @@ class FilterSheet : BaseDialogSheet() { val chip = Chip(requireContext()) chip.id = index chip.text = value + chip.textColors + chip.applyColors() chip.isChecked = filter.downloads == downloadValues[index].toInt() binding.downloadChips.addView(chip) } @@ -96,9 +105,10 @@ class FilterSheet : BaseDialogSheet() { } ratingLabels.forEachIndexed { index, value -> - val chip = Chip(requireActivity()) + val chip = Chip(requireContext()) chip.id = index chip.text = value + chip.applyColors() chip.isChecked = filter.rating == ratingValues[index].toFloat() binding.ratingChips.addView(chip) } @@ -107,4 +117,21 @@ class FilterSheet : BaseDialogSheet() { filter = filter.copy(rating = ratingValues[checkedIds[0]].toFloat()) } } + + private fun Chip.applyColors() { + setTextColor( + ColorStateList( + arrayOf( + intArrayOf(android.R.attr.state_checked), + intArrayOf() + ), + intArrayOf( + contrastingColor(requireContext().accentColor()), + contrastingColor(requireContext().backgroundColor()) + ) + ) + ) + + checkedIconTint = ColorStateList.valueOf(contrastingColor(requireContext().accentColor())) + } } diff --git a/app/src/main/res/drawable/filter_chip_background.xml b/app/src/main/res/drawable/filter_chip_background.xml new file mode 100644 index 000000000..78ec47234 --- /dev/null +++ b/app/src/main/res/drawable/filter_chip_background.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/sheet_filter.xml b/app/src/main/res/layout/sheet_filter.xml index 495382da1..ef8a9a80a 100644 --- a/app/src/main/res/layout/sheet_filter.xml +++ b/app/src/main/res/layout/sheet_filter.xml @@ -108,21 +108,21 @@ diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index e0c62c625..00ea3f2a7 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -30,7 +30,7 @@ @color/colorScrimBlack @color/colorShimmer @color/colorStroke - @style/Widget.Material3.Chip.Filter + @style/AppTheme.FilterChip @style/AppTheme.PreferenceThemeOverlay @@ -60,7 +60,7 @@ @color/colorScrimBlack @color/colorShimmer @color/colorStroke - @style/Widget.Material3.Chip.Filter + @style/AppTheme.FilterChip @style/AppTheme.PreferenceThemeOverlay @@ -78,7 +78,7 @@ @color/colorScrimBlack @color/colorShimmerDark @color/colorStrokeDark - @style/Widget.Material3.Chip.Filter + @style/AppTheme.FilterChip @style/AppTheme.PreferenceThemeOverlay @@ -120,4 +120,10 @@ + +