Address filter sheet color issue
This commit is contained in:
committed by
Aayush Gupta
parent
a5c7a23547
commit
2f30d53312
@@ -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<SheetFilterBinding>() {
|
||||
|
||||
private fun attachSingleChips() {
|
||||
binding.filterGfs.apply {
|
||||
applyColors()
|
||||
isChecked = filter.gsfDependentApps
|
||||
setOnCheckedChangeListener { _, checked ->
|
||||
isChecked = checked
|
||||
@@ -61,6 +66,7 @@ class FilterSheet : BaseDialogSheet<SheetFilterBinding>() {
|
||||
}
|
||||
|
||||
binding.filterPaid.apply {
|
||||
applyColors()
|
||||
isChecked = filter.paidApps
|
||||
setOnCheckedChangeListener { _, checked ->
|
||||
isChecked = checked
|
||||
@@ -69,6 +75,7 @@ class FilterSheet : BaseDialogSheet<SheetFilterBinding>() {
|
||||
}
|
||||
|
||||
binding.filterAds.apply {
|
||||
applyColors()
|
||||
isChecked = filter.appsWithAds
|
||||
setOnCheckedChangeListener { _, checked ->
|
||||
isChecked = checked
|
||||
@@ -87,6 +94,8 @@ class FilterSheet : BaseDialogSheet<SheetFilterBinding>() {
|
||||
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<SheetFilterBinding>() {
|
||||
}
|
||||
|
||||
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<SheetFilterBinding>() {
|
||||
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()))
|
||||
}
|
||||
}
|
||||
|
||||
12
app/src/main/res/drawable/filter_chip_background.xml
Normal file
12
app/src/main/res/drawable/filter_chip_background.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- Disabled -->
|
||||
<item android:color="@android:color/transparent" android:state_enabled="false"/>
|
||||
|
||||
<!-- Selected -->
|
||||
<item android:color="?attr/colorControlActivated" android:state_selected="true"/>
|
||||
<item android:color="?attr/colorControlHighlight" android:state_checked="true"/>
|
||||
|
||||
<!-- Not selected -->
|
||||
<item android:color="?android:colorBackground" />
|
||||
</selector>
|
||||
@@ -108,21 +108,21 @@
|
||||
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/filter_gfs"
|
||||
style="@style/Widget.Material3.Chip.Filter"
|
||||
style="@style/AppTheme.FilterChip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/action_filter_gsf_dependent_apps" />
|
||||
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/filter_paid"
|
||||
style="@style/Widget.Material3.Chip.Filter"
|
||||
style="@style/AppTheme.FilterChip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/action_filter_paid_apps" />
|
||||
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/filter_ads"
|
||||
style="@style/Widget.Material3.Chip.Filter"
|
||||
style="@style/AppTheme.FilterChip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/action_filter_apps_with_ads" />
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<item name="scrimBlack">@color/colorScrimBlack</item>
|
||||
<item name="colorShimmer">@color/colorShimmer</item>
|
||||
<item name="colorStroke">@color/colorStroke</item>
|
||||
<item name="chipStyle">@style/Widget.Material3.Chip.Filter</item>
|
||||
<item name="chipStyle">@style/AppTheme.FilterChip</item>
|
||||
<item name="preferenceTheme">@style/AppTheme.PreferenceThemeOverlay</item>
|
||||
</style>
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
<item name="scrimBlack">@color/colorScrimBlack</item>
|
||||
<item name="colorShimmer">@color/colorShimmer</item>
|
||||
<item name="colorStroke">@color/colorStroke</item>
|
||||
<item name="chipStyle">@style/Widget.Material3.Chip.Filter</item>
|
||||
<item name="chipStyle">@style/AppTheme.FilterChip</item>
|
||||
<item name="preferenceTheme">@style/AppTheme.PreferenceThemeOverlay</item>
|
||||
</style>
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
<item name="scrimBlack">@color/colorScrimBlack</item>
|
||||
<item name="colorShimmer">@color/colorShimmerDark</item>
|
||||
<item name="colorStroke">@color/colorStrokeDark</item>
|
||||
<item name="chipStyle">@style/Widget.Material3.Chip.Filter</item>
|
||||
<item name="chipStyle">@style/AppTheme.FilterChip</item>
|
||||
<item name="preferenceTheme">@style/AppTheme.PreferenceThemeOverlay</item>
|
||||
</style>
|
||||
|
||||
@@ -120,4 +120,10 @@
|
||||
<style name="AppTheme.SwitchPreference" parent="@style/Preference.SwitchPreferenceCompat.Material">
|
||||
<item name="widgetLayout">@layout/preference_material_switch</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.FilterChip" parent="@style/Widget.Material3.Chip.Filter">
|
||||
<item name="chipBackgroundColor">@drawable/filter_chip_background</item>
|
||||
<item name="chipStrokeColor">?colorControlHighlight</item>
|
||||
<item name="chipCornerRadius">32dp</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user