🐛 Fix loading indicator not hiding on first time load
This commit is contained in:
parent
76d8cd943d
commit
cdaa8cfe58
@ -357,6 +357,7 @@ class ChatMessageController extends ChangeNotifier {
|
|||||||
if (mostRecentMessage == null) {
|
if (mostRecentMessage == null) {
|
||||||
// Initial load
|
// Initial load
|
||||||
await loadMessages(take: 20);
|
await loadMessages(take: 20);
|
||||||
|
isAggressiveLoading = false;
|
||||||
isCheckedUpdate = true;
|
isCheckedUpdate = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -60,6 +60,9 @@ class _ChatRoomScreenState extends State<ChatRoomScreen> {
|
|||||||
final GlobalKey<ChatMessageInputState> _inputGlobalKey = GlobalKey();
|
final GlobalKey<ChatMessageInputState> _inputGlobalKey = GlobalKey();
|
||||||
late final ChatMessageController _messageController;
|
late final ChatMessageController _messageController;
|
||||||
|
|
||||||
|
late final NotificationProvider _nty = context.read<NotificationProvider>();
|
||||||
|
late final WebSocketProvider _ws = context.read<WebSocketProvider>();
|
||||||
|
|
||||||
bool _isEncrypted = false;
|
bool _isEncrypted = false;
|
||||||
|
|
||||||
StreamSubscription? _wsSubscription;
|
StreamSubscription? _wsSubscription;
|
||||||
@ -91,8 +94,7 @@ class _ChatRoomScreenState extends State<ChatRoomScreen> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
final nty = context.read<NotificationProvider>();
|
_nty.skippableNotifyChannel = _channel!.id;
|
||||||
nty.skippableNotifyChannel = _channel!.id;
|
|
||||||
final ws = context.read<WebSocketProvider>();
|
final ws = context.read<WebSocketProvider>();
|
||||||
if (_channel != null) {
|
if (_channel != null) {
|
||||||
ws.conn?.sink.add(
|
ws.conn?.sink.add(
|
||||||
@ -229,8 +231,7 @@ class _ChatRoomScreenState extends State<ChatRoomScreen> {
|
|||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
final ws = context.read<WebSocketProvider>();
|
_wsSubscription = _ws.pk.stream.listen((event) {
|
||||||
_wsSubscription = ws.pk.stream.listen((event) {
|
|
||||||
switch (event.method) {
|
switch (event.method) {
|
||||||
case 'calls.new':
|
case 'calls.new':
|
||||||
final payload = SnChatCall.fromJson(event.payload!);
|
final payload = SnChatCall.fromJson(event.payload!);
|
||||||
@ -252,11 +253,9 @@ class _ChatRoomScreenState extends State<ChatRoomScreen> {
|
|||||||
void dispose() {
|
void dispose() {
|
||||||
_wsSubscription?.cancel();
|
_wsSubscription?.cancel();
|
||||||
_messageController.dispose();
|
_messageController.dispose();
|
||||||
final nty = context.read<NotificationProvider>();
|
_nty.skippableNotifyChannel = null;
|
||||||
nty.skippableNotifyChannel = null;
|
|
||||||
final ws = context.read<WebSocketProvider>();
|
|
||||||
if (_channel != null) {
|
if (_channel != null) {
|
||||||
ws.conn?.sink.add(
|
_ws.conn?.sink.add(
|
||||||
jsonEncode(WebSocketPackage(
|
jsonEncode(WebSocketPackage(
|
||||||
method: 'events.unsubscribe',
|
method: 'events.unsubscribe',
|
||||||
endpoint: 'im',
|
endpoint: 'im',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user