From e7ef618119115b2c4ae26a0993f5c4f1b5d75f1e Mon Sep 17 00:00:00 2001 From: parneet-guraya Date: Thu, 29 Feb 2024 23:19:13 +0530 Subject: [PATCH] fix filter dialog Signed-off-by: parneet-guraya --- .../ConversationsListActivity.kt | 5 +-- .../ui/dialog/FilterConversationFragment.kt | 31 ++++++++++++------- 2 files changed, 21 insertions(+), 15 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 add7201ae..1c6d1142e 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt @@ -978,10 +978,7 @@ class ConversationsListActivity : updateFilterConversationButtonColor() binding.filterConversationsButton.setOnClickListener { - val newFragment: DialogFragment = FilterConversationFragment.newInstance( - filterState, - this - ) + val newFragment = FilterConversationFragment.newInstance(filterState) newFragment.show(supportFragmentManager, FilterConversationFragment.TAG) } 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 a990a0c81..8f31c1fbf 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 @@ -20,6 +20,7 @@ package com.nextcloud.talk.ui.dialog import android.app.Dialog +import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -38,14 +39,10 @@ import com.nextcloud.talk.utils.UserIdUtils import javax.inject.Inject @AutoInjector(NextcloudTalkApplication::class) -class FilterConversationFragment( - savedFilterState: MutableMap, - conversationsListActivity: ConversationsListActivity -) : DialogFragment() { +class FilterConversationFragment : DialogFragment() { lateinit var binding: DialogFilterConversationBinding private var dialogView: View? = null - private var filterState = savedFilterState - private var conversationsList = conversationsListActivity + private lateinit var filterState: HashMap @Inject lateinit var userManager: UserManager @@ -58,7 +55,11 @@ class FilterConversationFragment( override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { binding = DialogFilterConversationBinding.inflate(LayoutInflater.from(context)) dialogView = binding.root - + filterState = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + arguments?.getSerializable(FILTER_STATE_ARG, HashMap::class.java) as HashMap + } else { + arguments?.getSerializable(FILTER_STATE_ARG) as HashMap + } return MaterialAlertDialogBuilder(requireContext()).setView(dialogView).create() } @@ -120,15 +121,23 @@ class FilterConversationFragment( arbitraryStorageManager.storeStorageSetting(accountId, MENTION, mentionValue.toString(), "") arbitraryStorageManager.storeStorageSetting(accountId, UNREAD, unreadValue.toString(), "") - conversationsList.filterConversation() + (requireActivity() as ConversationsListActivity).filterConversation() } companion object { + private const val FILTER_STATE_ARG = "FILTER_STATE_ARG" + @JvmStatic fun newInstance( - savedFilterState: MutableMap, - conversationsListActivity: ConversationsListActivity - ) = FilterConversationFragment(savedFilterState, conversationsListActivity) + savedFilterState: MutableMap + ): FilterConversationFragment { + val filterConversationFragment = FilterConversationFragment() + val args = Bundle() + args.putSerializable(FILTER_STATE_ARG, HashMap(savedFilterState)) + filterConversationFragment.arguments = args + return filterConversationFragment + } + val TAG: String = FilterConversationFragment::class.java.simpleName const val MENTION: String = "mention" const val UNREAD: String = "unread"