Fix NewMessage errors

This commit is contained in:
Andrew 2024-06-21 20:35:31 +09:30
parent 8b79fd6850
commit f2959073ec

View File

@ -12,11 +12,12 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update import kotlinx.coroutines.flow.update
import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withTimeout
import network.loki.messenger.R import network.loki.messenger.R
import org.session.libsession.snode.SnodeAPI import org.session.libsession.snode.SnodeAPI
import org.session.libsignal.utilities.PublicKeyValidation import org.session.libsignal.utilities.PublicKeyValidation
import org.session.libsignal.utilities.timeout
import org.thoughtcrime.securesms.ui.GetString import org.thoughtcrime.securesms.ui.GetString
import javax.inject.Inject import javax.inject.Inject
import kotlin.coroutines.cancellation.CancellationException import kotlin.coroutines.cancellation.CancellationException
@ -71,15 +72,10 @@ internal class NewMessageViewModel @Inject constructor(
loadOnsJob = viewModelScope.launch(Dispatchers.IO) { loadOnsJob = viewModelScope.launch(Dispatchers.IO) {
try { try {
val publicKey = withTimeout(30.seconds) { SnodeAPI.getSessionID(ons).get() } val publicKey = SnodeAPI.getSessionID(ons).timeout(30_000).get()
onPublicKey(publicKey) if (isActive) onPublicKey(publicKey)
} catch (e: TimeoutCancellationException) {
onError(e)
} catch (e: CancellationException) {
// Attempting to just ignore internal JobCancellationException, which is called
// when we cancel the job, state update is handled there.
} catch (e: Exception) { } catch (e: Exception) {
onError(e) if (isActive) onError(e)
} }
} }
} }