diff --git a/lib/models/messagecache.dart b/lib/models/messagecache.dart index b6f89059..9c218930 100644 --- a/lib/models/messagecache.dart +++ b/lib/models/messagecache.dart @@ -101,8 +101,6 @@ class MessageCache extends ChangeNotifier { // On android reconnect, if backend supplied message count > UI message count, add the differnce to the front of the index void addFrontIndexGap(int count) { this._indexUnsynced = count; - // TODO: needed? maybe not? since after totalmessatges and profile will notify - //notifyListeners(); } int get indexUnsynced => _indexUnsynced; diff --git a/lib/views/messageview.dart b/lib/views/messageview.dart index dbf976b9..78bafa76 100644 --- a/lib/views/messageview.dart +++ b/lib/views/messageview.dart @@ -168,6 +168,16 @@ class _MessageViewState extends State { Future _onWillPop() async { Provider.of(context, listen: false).unreadMessages = 0; + + 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).selectedConversation = null; return true; } diff --git a/lib/widgets/messagelist.dart b/lib/widgets/messagelist.dart index 6dd3a69d..f5100234 100644 --- a/lib/widgets/messagelist.dart +++ b/lib/widgets/messagelist.dart @@ -25,10 +25,10 @@ class _MessageListState extends State { @override Widget build(BuildContext outerContext) { // On Android we can have unsynced messages at the front of the index from when the UI was asleep, if there are some, kick off sync of those first - if (Provider.of(outerContext).messageCache.indexUnsynced != 0) { - var conversationId = Provider.of(context, listen: false).selectedConversation!; - MessageCache? cache = Provider.of(context, listen: false).contactList.getContact(conversationId)?.messageCache; - ByIndex(Provider.of(context, listen: false).selectedIndex!).loadUnsynced(Provider.of(context, listen: false).cwtch, Provider.of(context, listen: false).selectedProfile!, conversationId, cache!); + if (Provider.of(context).messageCache.indexUnsynced != 0) { + var conversationId = Provider.of(outerContext, listen: false).selectedConversation!; + MessageCache? cache = Provider.of(outerContext, listen: false).contactList.getContact(conversationId)?.messageCache; + 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;