From 1930bf0b6dc2d0bcde68b09c1836114e1ba79b76 Mon Sep 17 00:00:00 2001 From: rapterjet2004 Date: Fri, 16 Aug 2024 09:28:21 -0500 Subject: [PATCH] fix Signed-off-by: rapterjet2004 --- .../ui/dialog/FilterConversationFragment.kt | 2 +- .../ui/theme/TalkSpecificViewThemeUtils.kt | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/FilterConversationFragment.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/FilterConversationFragment.kt index 595401fb2..486c505af 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/FilterConversationFragment.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/FilterConversationFragment.kt @@ -71,7 +71,7 @@ class FilterConversationFragment : DialogFragment() { unreadFilterChip, mentionedFilterChip ) - }.forEach(viewThemeUtils.material::themeChipFilter) + }.forEach(viewThemeUtils.talk::themeChipFilter) setUpChips() } diff --git a/app/src/main/java/com/nextcloud/talk/ui/theme/TalkSpecificViewThemeUtils.kt b/app/src/main/java/com/nextcloud/talk/ui/theme/TalkSpecificViewThemeUtils.kt index 4a97b43c0..9537d159d 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/theme/TalkSpecificViewThemeUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/theme/TalkSpecificViewThemeUtils.kt @@ -7,6 +7,7 @@ */ package com.nextcloud.talk.ui.theme +import android.annotation.SuppressLint import android.annotation.TargetApi import android.content.Context import android.content.res.ColorStateList @@ -36,10 +37,12 @@ import androidx.core.graphics.drawable.DrawableCompat import androidx.core.view.ViewCompat import com.google.android.material.button.MaterialButton import com.google.android.material.card.MaterialCardView +import com.google.android.material.chip.Chip import com.google.android.material.materialswitch.MaterialSwitch import com.nextcloud.android.common.ui.theme.MaterialSchemes import com.nextcloud.android.common.ui.theme.ViewThemeUtilsBase import com.nextcloud.android.common.ui.theme.utils.AndroidXViewThemeUtils +import com.nextcloud.android.common.ui.util.buildColorStateList import com.nextcloud.talk.R import com.nextcloud.talk.databinding.ReactionsInsideMessageBinding import com.nextcloud.talk.ui.MicInputCloud @@ -50,6 +53,7 @@ import com.nextcloud.talk.utils.DrawableUtils import com.nextcloud.talk.utils.message.MessageUtils import com.vanniktech.emoji.EmojiTextView import com.wooplr.spotlight.SpotlightView +import dynamiccolor.DynamicScheme import dynamiccolor.MaterialDynamicColors import eu.davidea.flexibleadapter.utils.FlexibleUtils import javax.inject.Inject @@ -214,6 +218,7 @@ class TalkSpecificViewThemeUtils @Inject constructor( return drawable } + @SuppressLint("RestrictedApi") fun themeSearchView(searchView: SearchView) { withScheme(searchView) { scheme -> // hacky as no default way is provided @@ -376,6 +381,48 @@ class TalkSpecificViewThemeUtils @Inject constructor( } } + private fun chipOutlineFilterColorList(scheme: DynamicScheme) = + buildColorStateList( + android.R.attr.state_checked to dynamicColor.secondaryContainer().getArgb(scheme), + -android.R.attr.state_checked to dynamicColor.outline().getArgb(scheme) + ) + + fun themeChipFilter(chip: Chip) { + withScheme(chip.context) { scheme -> + val backgroundColors = + buildColorStateList( + android.R.attr.state_checked to dynamicColor.secondaryContainer().getArgb(scheme), + -android.R.attr.state_checked to dynamicColor.surface().getArgb(scheme), + android.R.attr.state_focused to dynamicColor.secondaryContainer().getArgb(scheme), + android.R.attr.state_hovered to dynamicColor.secondaryContainer().getArgb(scheme), + android.R.attr.state_pressed to dynamicColor.secondaryContainer().getArgb(scheme) + ) + + val iconColors = + buildColorStateList( + android.R.attr.state_checked to dynamicColor.onSecondaryContainer().getArgb(scheme), + -android.R.attr.state_checked to dynamicColor.surfaceVariant().getArgb(scheme), + android.R.attr.state_focused to dynamicColor.onSecondaryContainer().getArgb(scheme), + android.R.attr.state_hovered to dynamicColor.onSecondaryContainer().getArgb(scheme), + android.R.attr.state_pressed to dynamicColor.onSecondaryContainer().getArgb(scheme) + ) + + val textColors = + buildColorStateList( + android.R.attr.state_checked to dynamicColor.onSecondaryContainer().getArgb(scheme), + -android.R.attr.state_checked to dynamicColor.onSecondaryContainer().getArgb(scheme), + android.R.attr.state_hovered to dynamicColor.onSecondaryContainer().getArgb(scheme), + android.R.attr.state_focused to dynamicColor.onSecondaryContainer().getArgb(scheme), + android.R.attr.state_pressed to dynamicColor.onSecondaryContainer().getArgb(scheme) + ) + + chip.chipBackgroundColor = backgroundColors + chip.chipStrokeColor = chipOutlineFilterColorList(scheme) + chip.setTextColor(textColors) + chip.checkedIconTint = iconColors + } + } + companion object { private val THEMEABLE_PLACEHOLDER_IDS = listOf( R.drawable.ic_mimetype_package_x_generic,