From cdaa8cfe58779212288a18f264021067e6116e7e Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Tue, 4 Mar 2025 21:20:54 +0800 Subject: [PATCH] :bug: Fix loading indicator not hiding on first time load --- lib/controllers/chat_message_controller.dart | 1 + lib/screens/chat/room.dart | 15 +++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/controllers/chat_message_controller.dart b/lib/controllers/chat_message_controller.dart index c52d4f4..e7a5220 100644 --- a/lib/controllers/chat_message_controller.dart +++ b/lib/controllers/chat_message_controller.dart @@ -357,6 +357,7 @@ class ChatMessageController extends ChangeNotifier { if (mostRecentMessage == null) { // Initial load await loadMessages(take: 20); + isAggressiveLoading = false; isCheckedUpdate = true; return; } diff --git a/lib/screens/chat/room.dart b/lib/screens/chat/room.dart index 2d7f639..424ddb8 100644 --- a/lib/screens/chat/room.dart +++ b/lib/screens/chat/room.dart @@ -60,6 +60,9 @@ class _ChatRoomScreenState extends State { final GlobalKey _inputGlobalKey = GlobalKey(); late final ChatMessageController _messageController; + late final NotificationProvider _nty = context.read(); + late final WebSocketProvider _ws = context.read(); + bool _isEncrypted = false; StreamSubscription? _wsSubscription; @@ -91,8 +94,7 @@ class _ChatRoomScreenState extends State { } if (!mounted) return; - final nty = context.read(); - nty.skippableNotifyChannel = _channel!.id; + _nty.skippableNotifyChannel = _channel!.id; final ws = context.read(); if (_channel != null) { ws.conn?.sink.add( @@ -229,8 +231,7 @@ class _ChatRoomScreenState extends State { ]); }); - final ws = context.read(); - _wsSubscription = ws.pk.stream.listen((event) { + _wsSubscription = _ws.pk.stream.listen((event) { switch (event.method) { case 'calls.new': final payload = SnChatCall.fromJson(event.payload!); @@ -252,11 +253,9 @@ class _ChatRoomScreenState extends State { void dispose() { _wsSubscription?.cancel(); _messageController.dispose(); - final nty = context.read(); - nty.skippableNotifyChannel = null; - final ws = context.read(); + _nty.skippableNotifyChannel = null; if (_channel != null) { - ws.conn?.sink.add( + _ws.conn?.sink.add( jsonEncode(WebSocketPackage( method: 'events.unsubscribe', endpoint: 'im',