From 715cbedcfea8375e01fc510c3cd5ba4268ee2c37 Mon Sep 17 00:00:00 2001 From: rapterjet2004 Date: Wed, 14 Jun 2023 13:51:17 -0500 Subject: [PATCH] WIP filter conversations feature, implemented small fixes + license Signed-off-by: Julius Linus julius.linus@nextcloud.com Signed-off-by: Andy Scherzinger --- .../ConversationsListActivity.kt | 34 +++++++++---------- .../ui/dialog/FilterConversationFragment.kt | 19 +++++++++++ .../drawable/ic_baseline_filter_list_24.xml | 16 +++++++++ .../layout/controller_conversations_rv.xml | 20 ++++------- .../res/layout/dialog_filter_conversation.xml | 22 ++++++++++-- 5 files changed, 78 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt index 88eea0e7a..d7db17988 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt @@ -34,7 +34,6 @@ import android.content.ActivityNotFoundException import android.content.Context import android.content.Intent import android.content.pm.PackageManager -import android.content.res.ColorStateList import android.graphics.drawable.ColorDrawable import android.graphics.drawable.Drawable import android.net.Uri @@ -68,6 +67,7 @@ import coil.transform.CircleCropTransformation import com.google.android.material.appbar.AppBarLayout import com.google.android.material.button.MaterialButton import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.nextcloud.android.common.ui.theme.utils.ColorRole import com.nextcloud.talk.R import com.nextcloud.talk.activities.BaseActivity import com.nextcloud.talk.activities.CallActivity @@ -194,8 +194,8 @@ class ConversationsListActivity : private var searchViewDisposable: Disposable? = null private var filterState = mutableMapOf( - MENTION to false, - UNREAD to false + FilterConversationFragment.MENTION to false, + FilterConversationFragment.UNREAD to false ) private val onBackPressedCallback = object : OnBackPressedCallback(true) { @@ -789,17 +789,6 @@ class ConversationsListActivity : binding?.newMentionPopupBubble?.let { viewThemeUtils.material.colorMaterialButtonPrimaryFilled(it) } } - fun updateFilterConversationButtonColor() { - val colorInt: Int = if (filterState.containsValue(true)) { - context.getColor(R.color.colorPrimary) - } else { - context.getColor(R.color.grey_200) - } - - val csl = ColorStateList.valueOf(colorInt) - binding.filterConversationsButton.iconTint = csl - } - @Suppress("Detekt.TooGenericExceptionCaught") private fun checkToShowUnreadBubble() { try { @@ -1490,12 +1479,23 @@ class ConversationsListActivity : } fun updateFilterState(mention: Boolean, unread: Boolean) { - filterState[MENTION] = mention - filterState[UNREAD] = unread + filterState[FilterConversationFragment.MENTION] = mention + filterState[FilterConversationFragment.UNREAD] = unread } fun setFilterableItems(items: MutableList>) { filterableConversationItems = items } + fun updateFilterConversationButtonColor() { + if (filterState.containsValue(true)) { + binding.filterConversationsButton.let { viewThemeUtils.platform.colorImageView(it, ColorRole.PRIMARY) } + } else { + binding.filterConversationsButton.let { viewThemeUtils.platform.colorImageView( + it, + ColorRole.ON_SURFACE_VARIANT + ) } + } + } + companion object { const val TAG = "ConvListController" const val UNREAD_BUBBLE_DELAY = 2500 @@ -1509,7 +1509,5 @@ class ConversationsListActivity : const val CLIENT_UPGRADE_GPLAY_LINK = "https://play.google.com/store/apps/details?id=" const val HTTP_SERVICE_UNAVAILABLE = 503 const val MAINTENANCE_MODE_HEADER_KEY = "X-Nextcloud-Maintenance-Mode" - const val MENTION: String = "mention" - const val UNREAD: String = "unread" } } 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 b758c84e6..162d37c07 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 @@ -1,3 +1,22 @@ +/* + * Nextcloud Talk application + * + * @author Julius Linus + * Copyright (C) 2023 Julius Linus + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.nextcloud.talk.ui.dialog import android.app.Dialog diff --git a/app/src/main/res/drawable/ic_baseline_filter_list_24.xml b/app/src/main/res/drawable/ic_baseline_filter_list_24.xml index b8090430e..40f366824 100644 --- a/app/src/main/res/drawable/ic_baseline_filter_list_24.xml +++ b/app/src/main/res/drawable/ic_baseline_filter_list_24.xml @@ -1,3 +1,19 @@ + diff --git a/app/src/main/res/layout/controller_conversations_rv.xml b/app/src/main/res/layout/controller_conversations_rv.xml index 7d383783e..a5d0684ae 100644 --- a/app/src/main/res/layout/controller_conversations_rv.xml +++ b/app/src/main/res/layout/controller_conversations_rv.xml @@ -87,22 +87,16 @@ app:layout_constraintTop_toTopOf="parent" tools:text="Search in Nextcloud" /> - + app:layout_constraintEnd_toStartOf="@+id/rightContainer" + app:layout_constraintTop_toTopOf="parent" /> + - \ No newline at end of file +