diff --git a/app/src/main/java/chat/revolt/api/realtime/RealtimeSocket.kt b/app/src/main/java/chat/revolt/api/realtime/RealtimeSocket.kt index 495b53e5..bcc6b3aa 100644 --- a/app/src/main/java/chat/revolt/api/realtime/RealtimeSocket.kt +++ b/app/src/main/java/chat/revolt/api/realtime/RealtimeSocket.kt @@ -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 -> { diff --git a/app/src/main/java/chat/revolt/screens/SplashScreen.kt b/app/src/main/java/chat/revolt/screens/SplashScreen.kt index 81440f20..61067298 100644 --- a/app/src/main/java/chat/revolt/screens/SplashScreen.kt +++ b/app/src/main/java/chat/revolt/screens/SplashScreen.kt @@ -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() } diff --git a/app/src/main/java/chat/revolt/screens/login/LoginScreen.kt b/app/src/main/java/chat/revolt/screens/login/LoginScreen.kt index a2d713af..bd3dfb06 100644 --- a/app/src/main/java/chat/revolt/screens/login/LoginScreen.kt +++ b/app/src/main/java/chat/revolt/screens/login/LoginScreen.kt @@ -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) { diff --git a/app/src/main/java/chat/revolt/screens/login/MfaScreen.kt b/app/src/main/java/chat/revolt/screens/login/MfaScreen.kt index d473392b..6c1f3386 100644 --- a/app/src/main/java/chat/revolt/screens/login/MfaScreen.kt +++ b/app/src/main/java/chat/revolt/screens/login/MfaScreen.kt @@ -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)