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 2dcd6a48a3..281a292c39 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 @@ -36,6 +36,7 @@ import im.vector.app.features.home.room.threads.ThreadsActivity import im.vector.app.features.home.room.threads.arguments.ThreadListArgs import im.vector.app.features.home.room.threads.list.viewmodel.ThreadListController import im.vector.app.features.home.room.threads.list.viewmodel.ThreadListViewModel +import im.vector.app.features.home.room.threads.list.viewmodel.ThreadListViewState import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent import org.matrix.android.sdk.api.util.MatrixItem import javax.inject.Inject @@ -90,6 +91,7 @@ class ThreadListFragment @Inject constructor( } override fun invalidate() = withState(threadListViewModel) { state -> + renderEmptyStateIfNeeded(state) threadListController.update(state) } @@ -104,4 +106,9 @@ class ThreadListFragment @Inject constructor( override fun onThreadClicked(timelineEvent: TimelineEvent) { (activity as? ThreadsActivity)?.navigateToThreadTimeline(timelineEvent) } + + private fun renderEmptyStateIfNeeded(state: ThreadListViewState) { + val show = state.rootThreadEventList.invoke().isNullOrEmpty() + views.threadListEmptyConstraintLayout.isVisible = show + } } diff --git a/vector/src/main/res/layout/fragment_thread_list.xml b/vector/src/main/res/layout/fragment_thread_list.xml index be042a7bce..77f46bf3ee 100644 --- a/vector/src/main/res/layout/fragment_thread_list.xml +++ b/vector/src/main/res/layout/fragment_thread_list.xml @@ -1,6 +1,7 @@ @@ -25,16 +26,90 @@ + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/threadListAppBarLayout" + tools:listitem="@layout/item_thread_list" + tools:visibility="gone" /> + + + + + + + + + + + \ No newline at end of file diff --git a/vector/src/main/res/values/strings.xml b/vector/src/main/res/values/strings.xml index d88b7a6f2f..b86b2dd27f 100644 --- a/vector/src/main/res/values/strings.xml +++ b/vector/src/main/res/values/strings.xml @@ -1046,6 +1046,9 @@ Shows all threads from current room My Threads Shows all threads you’ve participated in + Keep discussions organised with threads + Threads help keep your conversations on-topic and easy to track. + Tip: Long tap a message and use “Reply in thread”. Reason for reporting this content