From 6cc07d5c3858f8768afbb1875daffb92461c889d Mon Sep 17 00:00:00 2001 From: ggurdin Date: Mon, 5 Aug 2024 09:39:04 -0400 Subject: [PATCH] changed condition to wait for next sync in stream in waitforfirstsync to better reflect whether the first sync has come through or not --- lib/pages/chat_list/chat_list.dart | 14 ++++++++------ lib/pages/chat_list/chat_list_body.dart | 12 ++---------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index 8a588d1aa..ec34a5b81 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -911,11 +911,12 @@ class ChatListController extends State await client.roomsLoading; await client.accountDataLoading; await client.userDeviceKeysLoading; - if (client.prevBatch == null) { + // #Pangea + // See here for explanation of this change: https://github.com/pangeachat/client/pull/539 + // if (client.prevBatch == null) { + if (client.onSync.value?.nextBatch == null) { + // Pangea# await client.onSync.stream.first; - // #Pangea - pangeaController.startChatWithBotIfNotPresent(); - //Pangea# // Display first login bootstrap if enabled // #Pangea @@ -930,7 +931,7 @@ class ChatListController extends State } // #Pangea - _lessImportantSyncs(client); + await _initPangeaControllers(client); // Pangea# if (!mounted) return; setState(() { @@ -939,9 +940,10 @@ class ChatListController extends State } // #Pangea - Future _lessImportantSyncs(Client client) async { + Future _initPangeaControllers(Client client) async { if (mounted) { GoogleAnalytics.analyticsUserUpdate(client.userID); + pangeaController.startChatWithBotIfNotPresent(); await pangeaController.subscriptionController.initialize(); await pangeaController.myAnalytics.initialize(); pangeaController.afterSyncAndFirstLoginInitialization(context); diff --git a/lib/pages/chat_list/chat_list_body.dart b/lib/pages/chat_list/chat_list_body.dart index 11be0e097..b9b388da9 100644 --- a/lib/pages/chat_list/chat_list_body.dart +++ b/lib/pages/chat_list/chat_list_body.dart @@ -187,12 +187,7 @@ class ChatListViewBody extends StatelessWidget { ], ), ), - // #Pangea - // Only show loading screen if room list is empty - // because it is still loading - // if (client.prevBatch == null) - if (rooms.isEmpty && client.prevBatch == null) - // Pangea# + if (client.prevBatch == null) SliverList( delegate: SliverChildBuilderDelegate( (context, i) => Opacity( @@ -250,10 +245,7 @@ class ChatListViewBody extends StatelessWidget { childCount: dummyChatCount, ), ), - // #Pangea - // if (client.prevBatch != null) - if (rooms.isNotEmpty) - // Pangea# + if (client.prevBatch != null) SliverList.builder( itemCount: rooms.length, itemBuilder: (BuildContext context, int i) {