From 52699357dd709b7d89256ab254d71f5b52519ced Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Tue, 22 Mar 2022 12:27:11 +0200 Subject: [PATCH 01/14] Change text constant --- vector/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/src/main/res/values/strings.xml b/vector/src/main/res/values/strings.xml index aed977d687..6e5a2be47c 100644 --- a/vector/src/main/res/values/strings.xml +++ b/vector/src/main/res/values/strings.xml @@ -1546,7 +1546,7 @@ Edit Reply - Reply In Thread + Reply in thread View In Room Retry From 3c6dbd08437abc4e7cb0e896e6ae28bebf9847ad Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Tue, 22 Mar 2022 12:55:50 +0200 Subject: [PATCH 02/14] Reduce timeline menu thread icon padding --- library/ui-styles/src/main/res/values/dimens.xml | 1 + vector/src/main/res/layout/view_thread_notification_badge.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/library/ui-styles/src/main/res/values/dimens.xml b/library/ui-styles/src/main/res/values/dimens.xml index 600c73c878..8dc4edc07d 100644 --- a/library/ui-styles/src/main/res/values/dimens.xml +++ b/library/ui-styles/src/main/res/values/dimens.xml @@ -40,6 +40,7 @@ 24dp 48dp 48dp + 38dp 56dp diff --git a/vector/src/main/res/layout/view_thread_notification_badge.xml b/vector/src/main/res/layout/view_thread_notification_badge.xml index 81b3f7138e..00ba45ad08 100644 --- a/vector/src/main/res/layout/view_thread_notification_badge.xml +++ b/vector/src/main/res/layout/view_thread_notification_badge.xml @@ -2,7 +2,7 @@ Date: Tue, 22 Mar 2022 13:48:07 +0200 Subject: [PATCH 03/14] Increase thread summary icon size --- vector/src/main/res/layout/view_thread_room_summary.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/layout/view_thread_room_summary.xml b/vector/src/main/res/layout/view_thread_room_summary.xml index 0f184edef3..6eeb62974d 100644 --- a/vector/src/main/res/layout/view_thread_room_summary.xml +++ b/vector/src/main/res/layout/view_thread_room_summary.xml @@ -6,8 +6,8 @@ Date: Tue, 22 Mar 2022 16:03:49 +0200 Subject: [PATCH 04/14] Fix timeline thread summary padding --- vector/src/main/res/layout/item_timeline_event_base.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/layout/item_timeline_event_base.xml b/vector/src/main/res/layout/item_timeline_event_base.xml index bc02728f6e..7b491b2dfa 100644 --- a/vector/src/main/res/layout/item_timeline_event_base.xml +++ b/vector/src/main/res/layout/item_timeline_event_base.xml @@ -154,8 +154,8 @@ android:layout_below="@id/informationBottom" android:layout_marginEnd="32dp" android:layout_marginBottom="4dp" - android:paddingStart="13dp" - android:paddingEnd="13dp" + android:paddingStart="12dp" + android:paddingEnd="12dp" android:layout_toEndOf="@id/messageStartGuideline" android:background="@drawable/rounded_rect_shape_8" android:contentDescription="@string/room_threads_filter" From 1e3b859f48940a9251b9c21f115dec2895d481ff Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Tue, 22 Mar 2022 16:19:15 +0200 Subject: [PATCH 05/14] Fix timeline thread summary width --- vector/src/main/res/layout/item_timeline_event_base.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vector/src/main/res/layout/item_timeline_event_base.xml b/vector/src/main/res/layout/item_timeline_event_base.xml index 7b491b2dfa..722928a874 100644 --- a/vector/src/main/res/layout/item_timeline_event_base.xml +++ b/vector/src/main/res/layout/item_timeline_event_base.xml @@ -34,11 +34,11 @@ android:layout_marginStart="8dp" android:layout_marginTop="4dp" android:layout_marginEnd="4dp" - android:textAlignment="viewStart" android:layout_toStartOf="@id/messageTimeView" android:layout_toEndOf="@id/messageStartGuideline" android:ellipsize="end" android:maxLines="1" + android:textAlignment="viewStart" android:textColor="?vctr_content_primary" android:textStyle="bold" tools:text="@sample/users.json/data/displayName" /> @@ -152,16 +152,16 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/informationBottom" - android:layout_marginEnd="32dp" + android:layout_marginEnd="40dp" android:layout_marginBottom="4dp" - android:paddingStart="12dp" - android:paddingEnd="12dp" android:layout_toEndOf="@id/messageStartGuideline" android:background="@drawable/rounded_rect_shape_8" android:contentDescription="@string/room_threads_filter" android:maxWidth="496dp" android:minWidth="144dp" + android:paddingStart="12dp" android:paddingTop="8dp" + android:paddingEnd="12dp" android:paddingBottom="8dp" android:visibility="gone" tools:visibility="visible"> From bc9a785a591fe04da4ea8615b2a3524cf84e5f5d Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Tue, 22 Mar 2022 17:08:49 +0200 Subject: [PATCH 06/14] Match timeline thread summary width with the actual text --- vector/src/main/res/layout/item_timeline_event_base.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vector/src/main/res/layout/item_timeline_event_base.xml b/vector/src/main/res/layout/item_timeline_event_base.xml index 722928a874..182e9c04a4 100644 --- a/vector/src/main/res/layout/item_timeline_event_base.xml +++ b/vector/src/main/res/layout/item_timeline_event_base.xml @@ -152,8 +152,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/informationBottom" - android:layout_marginEnd="40dp" + android:layout_marginEnd="48dp" android:layout_marginBottom="4dp" + android:layout_marginTop="4dp" + android:layout_marginStart="8dp" android:layout_toEndOf="@id/messageStartGuideline" android:background="@drawable/rounded_rect_shape_8" android:contentDescription="@string/room_threads_filter" From b1c4ca7816124a22f4c896fed9d91d2435a9fcd4 Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Tue, 22 Mar 2022 18:03:49 +0200 Subject: [PATCH 07/14] Simplify thread timeline toolbar menu more --- .../home/room/detail/TimelineViewModel.kt | 6 ++- vector/src/main/res/menu/menu_timeline.xml | 41 +++++++------------ 2 files changed, 19 insertions(+), 28 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt index a9235b5699..cba11b4ed7 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt @@ -706,8 +706,10 @@ class TimelineViewModel @AssistedInject constructor( if (initialState.isThreadTimeline()) { when (itemId) { - R.id.menu_thread_timeline_more -> true - else -> false + R.id.menu_thread_timeline_view_in_room, + R.id.menu_thread_timeline_copy_link, + R.id.menu_thread_timeline_share -> true + else -> false } } else { when (itemId) { diff --git a/vector/src/main/res/menu/menu_timeline.xml b/vector/src/main/res/menu/menu_timeline.xml index 962c505e4e..d035ce38eb 100644 --- a/vector/src/main/res/menu/menu_timeline.xml +++ b/vector/src/main/res/menu/menu_timeline.xml @@ -66,35 +66,24 @@ tools:visible="true" /> + app:showAsAction="never" /> - - - - - - - - + + \ No newline at end of file From f8e7ba7355e70b2448ae38e3c9d5125def07a065 Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Tue, 22 Mar 2022 18:43:01 +0200 Subject: [PATCH 08/14] Format menu_timeline --- .../features/home/room/detail/TimelineFragment.kt | 5 +++++ vector/src/main/res/menu/menu_timeline.xml | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) 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 b66897d8d1..3c271710dd 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 @@ -40,6 +40,7 @@ import android.widget.TextView import android.widget.Toast import androidx.annotation.DrawableRes import androidx.annotation.StringRes +import androidx.appcompat.view.menu.MenuBuilder import androidx.core.content.ContextCompat import androidx.core.graphics.drawable.DrawableCompat import androidx.core.net.toUri @@ -982,7 +983,11 @@ class TimelineFragment @Inject constructor( } } + @SuppressLint("RestrictedApi") override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { + if (isThreadTimeLine()) { + if (menu is MenuBuilder) menu.setOptionalIconsVisible(true) + } super.onCreateOptionsMenu(menu, inflater) // We use a custom layout for this menu item, so we need to set a ClickListener menu.findItem(R.id.open_matrix_apps)?.let { menuItem -> diff --git a/vector/src/main/res/menu/menu_timeline.xml b/vector/src/main/res/menu/menu_timeline.xml index d035ce38eb..e362ec7483 100644 --- a/vector/src/main/res/menu/menu_timeline.xml +++ b/vector/src/main/res/menu/menu_timeline.xml @@ -41,12 +41,13 @@ android:id="@+id/menu_timeline_thread_list" android:title="@string/action_view_threads" android:visible="false" - app:iconTint="?colorPrimary" app:actionLayout="@layout/view_thread_notification_badge" + app:iconTint="?colorPrimary" app:showAsAction="always" tools:visible="true" /> - @@ -70,20 +71,19 @@ android:icon="@drawable/ic_thread_view_in_room_menu_item" android:title="@string/action_thread_view_in_room" app:iconTint="?vctr_content_secondary" - app:showAsAction="never" /> + app:showAsAction="withText" /> + app:showAsAction="withText" /> - + app:showAsAction="withText" /> \ No newline at end of file From 72bc613f347c4c6fe13b839725f6b5870b261705 Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Tue, 22 Mar 2022 18:54:59 +0200 Subject: [PATCH 09/14] Reduce thread toolbar avatar size --- .../src/main/res/layout/view_room_detail_thread_toolbar.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/layout/view_room_detail_thread_toolbar.xml b/vector/src/main/res/layout/view_room_detail_thread_toolbar.xml index e16912246e..c58a8cd837 100644 --- a/vector/src/main/res/layout/view_room_detail_thread_toolbar.xml +++ b/vector/src/main/res/layout/view_room_detail_thread_toolbar.xml @@ -26,8 +26,8 @@ Date: Wed, 23 Mar 2022 11:29:06 +0200 Subject: [PATCH 10/14] Show keyboard when user first reply in a thread --- .../vector/app/features/home/room/detail/TimelineFragment.kt | 4 ++++ 1 file changed, 4 insertions(+) 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 3c271710dd..09d82840bd 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,6 +1463,10 @@ class TimelineFragment @Inject constructor( views.composerLayout.views.composerEmojiButton.isVisible = vectorPreferences.showEmojiKeyboard() + if(isThreadTimeLine() && timelineArgs.threadTimelineArgs?.startsThread == true){ + // Show keyboard when the user started a thread + views.composerLayout.views.composerEditText.showKeyboard(andRequestFocus = true) + } views.composerLayout.callback = object : MessageComposerView.Callback { override fun onAddAttachment() { if (!::attachmentTypeSelector.isInitialized) { From 6568091f298cc993b3f6355b7c41ce94bc88947d Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Wed, 23 Mar 2022 12:29:07 +0200 Subject: [PATCH 11/14] Improve thread list item UI --- .../home/room/threads/list/model/ThreadListItem.kt | 3 +++ vector/src/main/res/layout/item_thread.xml | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/home/room/threads/list/model/ThreadListItem.kt b/vector/src/main/java/im/vector/app/features/home/room/threads/list/model/ThreadListItem.kt index 2364e86166..385bb226a1 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/threads/list/model/ThreadListItem.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/threads/list/model/ThreadListItem.kt @@ -33,6 +33,7 @@ import im.vector.app.core.extensions.setLeftDrawable import im.vector.app.core.utils.DimensionConverter import im.vector.app.features.displayname.getBestName import im.vector.app.features.home.AvatarRenderer +import im.vector.app.features.themes.ThemeUtils import org.matrix.android.sdk.api.session.threads.ThreadNotificationState import org.matrix.android.sdk.api.util.MatrixItem @@ -60,9 +61,11 @@ abstract class ThreadListItem : VectorEpoxyModel() { holder.dateTextView.text = date if (rootMessageDeleted) { holder.rootMessageTextView.text = holder.view.context.getString(R.string.event_redacted) + holder.rootMessageTextView.setTextColor(ThemeUtils.getColor(holder.view.context, R.attr.vctr_content_secondary)) holder.rootMessageTextView.setLeftDrawable(R.drawable.ic_trash_16, R.attr.vctr_content_tertiary) holder.rootMessageTextView.compoundDrawablePadding = DimensionConverter(holder.view.context.resources).dpToPx(10) } else { + holder.rootMessageTextView.setTextColor(ThemeUtils.getColor(holder.view.context, R.attr.vctr_content_primary)) holder.rootMessageTextView.text = rootMessage holder.rootMessageTextView.clearDrawables() } diff --git a/vector/src/main/res/layout/item_thread.xml b/vector/src/main/res/layout/item_thread.xml index 37186f031c..921f0663b1 100644 --- a/vector/src/main/res/layout/item_thread.xml +++ b/vector/src/main/res/layout/item_thread.xml @@ -73,8 +73,8 @@ style="@style/Widget.Vector.TextView.Body" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginTop="3dp" - android:layout_marginEnd="25dp" + android:layout_marginTop="2dp" + android:layout_marginEnd="28dp" android:ellipsize="end" android:maxLines="2" android:textColor="?vctr_content_primary" @@ -87,12 +87,12 @@ android:id="@+id/threadSummaryConstraintLayout" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginEnd="25dp" + android:layout_marginEnd="28dp" android:contentDescription="@string/room_threads_filter" android:maxWidth="496dp" android:minWidth="144dp" - android:paddingTop="10dp" - android:paddingBottom="12dp" + android:paddingTop="8dp" + android:paddingBottom="8dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="@id/threadSummaryTitleTextView" app:layout_constraintTop_toBottomOf="@id/threadSummaryRootMessageTextView" From d232c49d65706855e220fddd52f78fef3faf017b Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Wed, 23 Mar 2022 13:33:55 +0200 Subject: [PATCH 12/14] 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) } From 82a6ea9d857d752804a909afb882c599ac6dd2cf Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Wed, 23 Mar 2022 13:40:32 +0200 Subject: [PATCH 13/14] Change thread list filtering radio buttons color --- .../home/room/threads/list/views/ThreadListBottomSheet.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/home/room/threads/list/views/ThreadListBottomSheet.kt b/vector/src/main/java/im/vector/app/features/home/room/threads/list/views/ThreadListBottomSheet.kt index 7ad4804e5b..07684a796e 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/threads/list/views/ThreadListBottomSheet.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/threads/list/views/ThreadListBottomSheet.kt @@ -61,11 +61,11 @@ class ThreadListBottomSheet : VectorBaseBottomSheetDialogFragment Date: Wed, 23 Mar 2022 15:13:15 +0200 Subject: [PATCH 14/14] Thread list filtering minor UI changes --- vector/src/main/res/layout/bottom_sheet_thread_list.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vector/src/main/res/layout/bottom_sheet_thread_list.xml b/vector/src/main/res/layout/bottom_sheet_thread_list.xml index e736f30edc..4d1f1eb043 100644 --- a/vector/src/main/res/layout/bottom_sheet_thread_list.xml +++ b/vector/src/main/res/layout/bottom_sheet_thread_list.xml @@ -5,7 +5,7 @@ android:layout_height="match_parent" android:background="?colorSurface" android:orientation="vertical" - android:padding="8dp"> + android:padding="16dp">