diff --git a/app/src/main/kotlin/org/cru/godtools/ui/login/LoginLayout.kt b/app/src/main/kotlin/org/cru/godtools/ui/login/LoginLayout.kt index 84ebe66d08..f74a0bf9c0 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/login/LoginLayout.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/login/LoginLayout.kt @@ -11,6 +11,7 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Close +import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ExperimentalMaterial3Api @@ -19,6 +20,7 @@ import androidx.compose.material3.IconButton import androidx.compose.material3.LocalContentColor import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text +import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.Composable @@ -55,6 +57,8 @@ fun LoginLayout(createAccount: Boolean = false, onEvent: (event: LoginLayoutEven } } + LoginError(loginError, onDismiss = { loginError = null }) + Column( horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier @@ -138,3 +142,28 @@ fun LoginLayout(createAccount: Boolean = false, onEvent: (event: LoginLayoutEven } } } + +@Composable +private fun LoginError(error: LoginResponse.Error?, onDismiss: () -> Unit) { + if (error != null) { + AlertDialog( + text = { + Text( + stringResource( + when (error) { + LoginResponse.Error.UserAlreadyExists -> R.string.account_error_user_already_exists + LoginResponse.Error.UserNotFound -> R.string.account_error_user_not_found + else -> R.string.account_error_unknown + } + ) + ) + }, + confirmButton = { + TextButton(onClick = { onDismiss() }) { + Text(stringResource(R.string.account_error_dialog_dismiss)) + } + }, + onDismissRequest = { onDismiss() }, + ) + } +} diff --git a/app/src/main/res/values/strings_account.xml b/app/src/main/res/values/strings_account.xml index 578dda81c9..490b6fe52b 100644 --- a/app/src/main/res/values/strings_account.xml +++ b/app/src/main/res/values/strings_account.xml @@ -9,6 +9,10 @@ <string name="account_create_description">Create an account to have real stories, encouragement, and practical tips at your fingertips.</string> <string name="account_login_heading">Sign in</string> <string name="account_login_description">Log in to your account to have real stories, encouragement, and practical tips at your fingertips.</string> + <string name="account_error_user_already_exists">User account already exists.</string> + <string name="account_error_user_not_found">User account not found.</string> + <string name="account_error_unknown">Error logging in.</string> + <string name="account_error_dialog_dismiss">OK</string> <!-- Activity --> <eat-comment />