From 74e693d95c22c8465d6c4bb3a83e7506890489e9 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Mon, 4 Oct 2021 18:09:29 +0200 Subject: [PATCH] scroll to first unread mention and place it to the top Signed-off-by: Marcel Hibbe --- .../talk/controllers/ConversationsListController.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java index 3c1e0a732..e2a152572 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java @@ -207,6 +207,8 @@ public class ConversationsListController extends BaseController implements Searc private boolean forwardMessage; + private int nextUnreadConversationScrollPosition = 0; + private SmoothScrollLinearLayoutManager layoutManager; public ConversationsListController(Bundle bundle) { @@ -619,7 +621,7 @@ public class ConversationsListController extends BaseController implements Searc newMentionPopupBubble.setPopupBubbleListener(new PopupBubble.PopupBubbleClickListener() { @Override public void bubbleClicked(Context context) { - recyclerView.smoothScrollToPosition(callItems.size()); + recyclerView.smoothScrollToPosition(nextUnreadConversationScrollPosition); } }); } @@ -634,12 +636,14 @@ public class ConversationsListController extends BaseController implements Searc (conversationItem.unreadMessages > 0 && conversationItem.type == Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL)) && position > lastVisibleItem) { + nextUnreadConversationScrollPosition = position; if (!newMentionPopupBubble.isShown()) { newMentionPopupBubble.show(); } return; } } + nextUnreadConversationScrollPosition = 0; newMentionPopupBubble.hide(); } catch (NullPointerException e) { Log.d(TAG, "A NPE was caught when trying to show the unread popup bubble. This might happen when the " +