From 4de31905076ee3d2f44f75e6c1f6bc2083a8c22f Mon Sep 17 00:00:00 2001 From: Infi Date: Sat, 28 Sep 2024 11:11:33 +0200 Subject: [PATCH] fix: stop message load on channel switch Signed-off-by: Infi --- .../screens/chat/views/channel/ChannelScreenViewModel.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/chat/revolt/screens/chat/views/channel/ChannelScreenViewModel.kt b/app/src/main/java/chat/revolt/screens/chat/views/channel/ChannelScreenViewModel.kt index 820fc5ae..26f875fc 100644 --- a/app/src/main/java/chat/revolt/screens/chat/views/channel/ChannelScreenViewModel.kt +++ b/app/src/main/java/chat/revolt/screens/chat/views/channel/ChannelScreenViewModel.kt @@ -101,8 +101,11 @@ class ChannelScreenViewModel @Inject constructor( } } + private var loadMessagesJob: Job? = null + fun switchChannel(id: String) { // Reset state + this.loadMessagesJob?.cancel() this.channel = RevoltAPI.channelCache[id] this.items = mutableStateListOf(ChannelScreenItem.Loading) this.activePane = ChannelScreenActivePane.None @@ -395,7 +398,7 @@ class ChannelScreenViewModel @Inject constructor( ignoreExisting: Boolean = false ) { channel?.id?.let { channelId -> - viewModelScope.launch { + loadMessagesJob = viewModelScope.launch { try { val messages = arrayListOf()