refactor: fetch settings when Authenticated frame arrives
Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
parent
b08aaec999
commit
9bbc8f513c
|
|
@ -28,6 +28,8 @@ import chat.revolt.api.realtime.frames.receivable.UserUpdateFrame
|
|||
import chat.revolt.api.realtime.frames.sendable.AuthorizationFrame
|
||||
import chat.revolt.api.realtime.frames.sendable.PingFrame
|
||||
import chat.revolt.api.routes.server.fetchMember
|
||||
import chat.revolt.api.settings.GlobalState
|
||||
import chat.revolt.api.settings.SyncedSettings
|
||||
import io.ktor.client.plugins.websocket.ws
|
||||
import io.ktor.websocket.CloseReason
|
||||
import io.ktor.websocket.Frame
|
||||
|
|
@ -446,7 +448,8 @@ object RealtimeSocket {
|
|||
}
|
||||
|
||||
"Authenticated" -> {
|
||||
/* no-op */
|
||||
SyncedSettings.fetch()
|
||||
GlobalState.hydrateWithSettings(SyncedSettings)
|
||||
}
|
||||
|
||||
else -> {
|
||||
|
|
|
|||
|
|
@ -38,15 +38,13 @@ import chat.revolt.api.RevoltAPI
|
|||
import chat.revolt.api.RevoltHttp
|
||||
import chat.revolt.api.internals.WebChallenge
|
||||
import chat.revolt.api.routes.onboard.needsOnboarding
|
||||
import chat.revolt.api.settings.GlobalState
|
||||
import chat.revolt.api.settings.SyncedSettings
|
||||
import chat.revolt.components.screens.splash.DisconnectedScreen
|
||||
import chat.revolt.persistence.KVStorage
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import io.ktor.client.request.get
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@HiltViewModel
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
|
|
@ -130,19 +128,11 @@ class SplashScreenViewModel @Inject constructor(
|
|||
|
||||
RevoltAPI.loginAs(token)
|
||||
RevoltAPI.setSessionId(id)
|
||||
loadSettings()
|
||||
setNavigateTo("home")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadSettings() {
|
||||
viewModelScope.launch {
|
||||
SyncedSettings.fetch()
|
||||
GlobalState.hydrateWithSettings(SyncedSettings)
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
checkLoggedInState()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,15 +42,13 @@ import chat.revolt.api.RevoltAPI
|
|||
import chat.revolt.api.routes.account.EmailPasswordAssessment
|
||||
import chat.revolt.api.routes.account.negotiateAuthentication
|
||||
import chat.revolt.api.routes.onboard.needsOnboarding
|
||||
import chat.revolt.api.settings.GlobalState
|
||||
import chat.revolt.api.settings.SyncedSettings
|
||||
import chat.revolt.components.generic.AnyLink
|
||||
import chat.revolt.components.generic.FormTextField
|
||||
import chat.revolt.components.generic.Weblink
|
||||
import chat.revolt.persistence.KVStorage
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@HiltViewModel
|
||||
class LoginViewModel @Inject constructor(
|
||||
|
|
@ -76,11 +74,6 @@ class LoginViewModel @Inject constructor(
|
|||
val mfaResponse: EmailPasswordAssessment?
|
||||
get() = _mfaResponse
|
||||
|
||||
private suspend fun loadSettings(token: String) {
|
||||
SyncedSettings.fetch(token)
|
||||
GlobalState.hydrateWithSettings(SyncedSettings)
|
||||
}
|
||||
|
||||
fun doLogin() {
|
||||
_error = null
|
||||
|
||||
|
|
@ -115,7 +108,6 @@ class LoginViewModel @Inject constructor(
|
|||
|
||||
RevoltAPI.loginAs(token)
|
||||
RevoltAPI.setSessionId(response.firstUserHints.token)
|
||||
loadSettings(token)
|
||||
|
||||
_navigateTo = "home"
|
||||
} catch (e: Error) {
|
||||
|
|
|
|||
|
|
@ -42,14 +42,12 @@ import chat.revolt.api.routes.account.MfaResponseRecoveryCode
|
|||
import chat.revolt.api.routes.account.MfaResponseTotpCode
|
||||
import chat.revolt.api.routes.account.authenticateWithMfaRecoveryCode
|
||||
import chat.revolt.api.routes.account.authenticateWithMfaTotpCode
|
||||
import chat.revolt.api.settings.GlobalState
|
||||
import chat.revolt.api.settings.SyncedSettings
|
||||
import chat.revolt.components.generic.CollapsibleCard
|
||||
import chat.revolt.components.generic.FormTextField
|
||||
import chat.revolt.persistence.KVStorage
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@HiltViewModel
|
||||
class MfaScreenViewModel @Inject constructor(
|
||||
|
|
@ -79,11 +77,6 @@ class MfaScreenViewModel @Inject constructor(
|
|||
_recoveryCode = code
|
||||
}
|
||||
|
||||
private suspend fun loadSettings(token: String) {
|
||||
SyncedSettings.fetch(token)
|
||||
GlobalState.hydrateWithSettings(SyncedSettings)
|
||||
}
|
||||
|
||||
fun tryAuthorizeTotp(mfaTicket: String) {
|
||||
_error = null
|
||||
viewModelScope.launch {
|
||||
|
|
@ -102,7 +95,6 @@ class MfaScreenViewModel @Inject constructor(
|
|||
|
||||
RevoltAPI.loginAs(token)
|
||||
RevoltAPI.setSessionId(id)
|
||||
loadSettings(token)
|
||||
kvStorage.set("sessionToken", token)
|
||||
kvStorage.set("sessionId", id)
|
||||
|
||||
|
|
@ -133,7 +125,6 @@ class MfaScreenViewModel @Inject constructor(
|
|||
|
||||
RevoltAPI.loginAs(token)
|
||||
RevoltAPI.setSessionId(id)
|
||||
loadSettings(token)
|
||||
kvStorage.set("sessionToken", token)
|
||||
kvStorage.set("sessionId", id)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue