From f848316db96ec6afea8a6d42c998530b865550c5 Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Fri, 10 Jun 2022 15:42:54 -0700 Subject: [PATCH] Fix bug preventing scrolling to unread messages --- lib/views/contactsview.dart | 2 +- lib/views/messageview.dart | 5 +---- lib/widgets/messagelist.dart | 1 - 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/views/contactsview.dart b/lib/views/contactsview.dart index 4ceeb3ad..e332e757 100644 --- a/lib/views/contactsview.dart +++ b/lib/views/contactsview.dart @@ -29,13 +29,13 @@ class ContactsView extends StatefulWidget { // selectConversation can be called from anywhere to set the active conversation void selectConversation(BuildContext context, int handle) { // requery instead of using contactinfostate directly because sometimes listview gets confused about data that resorts + var unread = Provider.of(context, listen: false).contactList.getContact(handle)!.unreadMessages; var previouslySelected = Provider.of(context, listen: false).selectedConversation; if (previouslySelected != null) { Provider.of(context, listen: false).contactList.getContact(previouslySelected)!.unselected(); } Provider.of(context, listen: false).contactList.getContact(handle)!.selected(); // triggers update in Double/TripleColumnView - var unread = Provider.of(context, listen: false).contactList.getContact(handle)!.unreadMessages; Provider.of(context, listen: false).initialScrollIndex = unread; Provider.of(context, listen: false).selectedConversation = handle; Provider.of(context, listen: false).selectedIndex = null; diff --git a/lib/views/messageview.dart b/lib/views/messageview.dart index ffe2b3ac..b69066f2 100644 --- a/lib/views/messageview.dart +++ b/lib/views/messageview.dart @@ -55,14 +55,11 @@ class _MessageViewState extends State { Provider.of(context, listen: false).unreadMessagesBelow = false; } - - if (scrollListener.itemPositions.value.length != 0 && - !scrollListener.itemPositions.value.any((element) => element.index == 0)) { + if (scrollListener.itemPositions.value.length != 0 && !scrollListener.itemPositions.value.any((element) => element.index == 0)) { showDown = true; } else { showDown = false; } - }); super.initState(); } diff --git a/lib/widgets/messagelist.dart b/lib/widgets/messagelist.dart index ac044d1d..bc50376b 100644 --- a/lib/widgets/messagelist.dart +++ b/lib/widgets/messagelist.dart @@ -30,7 +30,6 @@ class _MessageListState extends State { ByIndex(0).loadUnsynced(Provider.of(context, listen: false).cwtch, Provider.of(outerContext, listen: false).selectedProfile!, conversationId, cache!); } var initi = Provider.of(outerContext, listen: false).initialScrollIndex; - bool isP2P = !Provider.of(context).isGroup; bool isGroupAndSyncing = Provider.of(context).isGroup == true && Provider.of(context).status == "Authenticated"; bool isGroupAndSynced = Provider.of(context).isGroup && Provider.of(context).status == "Synced";