From d232c49d65706855e220fddd52f78fef3faf017b Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Wed, 23 Mar 2022 13:33:55 +0200 Subject: [PATCH] Remove filter toolbar on thread list while there no threads to display --- .../app/features/home/room/detail/TimelineFragment.kt | 2 +- .../room/threads/list/views/ThreadListFragment.kt | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt index 09d82840bd..872205d95a 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt @@ -1463,7 +1463,7 @@ class TimelineFragment @Inject constructor( views.composerLayout.views.composerEmojiButton.isVisible = vectorPreferences.showEmojiKeyboard() - if(isThreadTimeLine() && timelineArgs.threadTimelineArgs?.startsThread == true){ + if (isThreadTimeLine() && timelineArgs.threadTimelineArgs?.startsThread == true) { // Show keyboard when the user started a thread views.composerLayout.views.composerEditText.showKeyboard(andRequestFocus = true) } diff --git a/vector/src/main/java/im/vector/app/features/home/room/threads/list/views/ThreadListFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/threads/list/views/ThreadListFragment.kt index d5659efa49..d00fcc9eb7 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/threads/list/views/ThreadListFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/threads/list/views/ThreadListFragment.kt @@ -18,6 +18,7 @@ package im.vector.app.features.home.room.threads.list.views import android.os.Bundle import android.view.LayoutInflater +import android.view.Menu import android.view.MenuItem import android.view.View import android.view.ViewGroup @@ -76,6 +77,15 @@ class ThreadListFragment @Inject constructor( } } + override fun onPrepareOptionsMenu(menu: Menu) { + withState(threadListViewModel) { state -> + when (threadListViewModel.canHomeserverUseThreading()) { + true -> menu.findItem(R.id.menu_thread_list_filter).isVisible = !state.threadSummaryList.invoke().isNullOrEmpty() + false -> menu.findItem(R.id.menu_thread_list_filter).isVisible = !state.rootThreadEventList.invoke().isNullOrEmpty() + } + } + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) initToolbar() @@ -102,6 +112,7 @@ class ThreadListFragment @Inject constructor( } override fun invalidate() = withState(threadListViewModel) { state -> + invalidateOptionsMenu() renderEmptyStateIfNeeded(state) threadListController.update(state) }