diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/auth/login/LoginScreens.kt b/app/src/main/java/com/aritradas/uncrack/presentation/auth/login/LoginScreens.kt index 5cb94ea..985da85 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/auth/login/LoginScreens.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/auth/login/LoginScreens.kt @@ -220,6 +220,8 @@ fun LoginContent( UCButton( modifier = Modifier.fillMaxWidth(), text = stringResource(R.string.login), + isLoading = isLoading, + loadingText = "Logging you in..", onClick = { isLoading = true viewModel.logIn(email, password) diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/KeyViewModel.kt b/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/KeyViewModel.kt index bdd2913..68073e2 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/KeyViewModel.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/KeyViewModel.kt @@ -10,6 +10,7 @@ import com.aritradas.uncrack.domain.model.Key import com.aritradas.uncrack.domain.repository.KeyRepository import com.aritradas.uncrack.util.runIO import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.delay import javax.inject.Inject @HiltViewModel @@ -34,6 +35,10 @@ class KeyViewModel @Inject constructor( private val _hasSymbol = MutableLiveData(false) val hasSymbol: LiveData = _hasSymbol + private val _isLoading = MutableLiveData() + val isLoading: LiveData = _isLoading + + fun setMasterKey(masterKey: String) { _masterKeyLiveData.value = masterKey validatePassword(masterKey) @@ -60,7 +65,10 @@ class KeyViewModel @Inject constructor( } fun saveMasterKey(key: Key) = runIO { + delay(2000L) + _isLoading.postValue(true) repository.setMasterKey(key) + _isLoading.postValue(false) } fun getMasterKey() = runIO { diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/createMasterKey/CreateMasterKeyScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/createMasterKey/CreateMasterKeyScreen.kt index 457f21d..a497be0 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/createMasterKey/CreateMasterKeyScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/createMasterKey/CreateMasterKeyScreen.kt @@ -66,6 +66,7 @@ fun CreateMasterKeyContent( val enableButtonObserver by masterKeyViewModel.enableButtonLiveData.observeAsState(false) var passwordVisibility by remember { mutableStateOf(false) } var confirmPasswordVisibility by remember { mutableStateOf(false) } + val isLoading by masterKeyViewModel.isLoading.observeAsState(false) Scaffold( modifier.fillMaxSize() @@ -169,6 +170,8 @@ fun CreateMasterKeyContent( UCButton( modifier = Modifier.fillMaxWidth(), text = stringResource(R.string.save), + isLoading = isLoading, + loadingText = "Creating you Master Key", onClick = { val key = Key(0, masterKeyObserver) masterKeyViewModel.saveMasterKey(key)