From b81bc48de531561ad93582cd84818f41129eb268 Mon Sep 17 00:00:00 2001 From: drnal Date: Fri, 5 Dec 2025 15:40:51 +0700 Subject: [PATCH] Add save code --- .../work/ui/screen/auth/AuthViewModel.kt | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthViewModel.kt b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthViewModel.kt index dee0cbc..b2ef051 100644 --- a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthViewModel.kt +++ b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthViewModel.kt @@ -1,8 +1,10 @@ package ru.myitschool.work.ui.screen.auth +import android.app.Application import android.content.Context import android.content.Context.MODE_PRIVATE import androidx.compose.ui.platform.LocalContext +import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import kotlinx.coroutines.Dispatchers @@ -16,13 +18,27 @@ import kotlinx.coroutines.launch import ru.myitschool.work.data.repo.AuthRepository import ru.myitschool.work.domain.auth.CheckAndSaveAuthCodeUseCase -class AuthViewModel : ViewModel() { +class AuthViewModel(application: Application) : AndroidViewModel(application) { private val checkAndSaveAuthCodeUseCase by lazy { CheckAndSaveAuthCodeUseCase(AuthRepository) } private val _uiState = MutableStateFlow(AuthState.Data()) val uiState: StateFlow = _uiState.asStateFlow() private val _actionFlow: MutableSharedFlow = MutableSharedFlow() val actionFlow: SharedFlow = _actionFlow + private val context = getApplication().applicationContext + private val prefs by lazy { + context.getSharedPreferences("auth", Context.MODE_PRIVATE) + } + + init { + val savedCode = prefs.getString("saved_code", null) + if (!savedCode.isNullOrEmpty()) { + viewModelScope.launch { + _actionFlow.emit(Unit) + } + } + } + fun onIntent(intent: AuthIntent) { @@ -37,7 +53,9 @@ class AuthViewModel : ViewModel() { _uiState.update { AuthState.Loading } checkAndSaveAuthCodeUseCase.invoke(intent.text).fold( onSuccess = { - + prefs.edit() + .putString("saved_code", intent.text) + .apply() _actionFlow.emit(Unit) }, onFailure = { error ->