diff --git a/authenticator/src/main/java/com/amplifyframework/ui/authenticator/AuthenticatorViewModel.kt b/authenticator/src/main/java/com/amplifyframework/ui/authenticator/AuthenticatorViewModel.kt index 8ca3e555..67673b95 100644 --- a/authenticator/src/main/java/com/amplifyframework/ui/authenticator/AuthenticatorViewModel.kt +++ b/authenticator/src/main/java/com/amplifyframework/ui/authenticator/AuthenticatorViewModel.kt @@ -229,6 +229,15 @@ internal class AuthenticatorViewModel( moveTo(newState) } AuthSignUpStep.DONE -> handleSignedUp(username, password) + else -> { + // Generic error for any other next steps that may be added in the future + val exception = AuthException( + "Unsupported next step ${result.nextStep.signUpStep}.", + "Authenticator does not support this Authentication flow, disable it to use Authenticator." + ) + logger.error("Unsupported next step ${result.nextStep.signUpStep}", exception) + sendMessage(UnknownErrorMessage(exception)) + } } } diff --git a/authenticator/src/test/java/com/amplifyframework/ui/authenticator/MockAuthenticatorData.kt b/authenticator/src/test/java/com/amplifyframework/ui/authenticator/MockAuthenticatorData.kt index 37d43dc2..d63f246b 100644 --- a/authenticator/src/test/java/com/amplifyframework/ui/authenticator/MockAuthenticatorData.kt +++ b/authenticator/src/test/java/com/amplifyframework/ui/authenticator/MockAuthenticatorData.kt @@ -17,6 +17,7 @@ package com.amplifyframework.ui.authenticator import com.amplifyframework.auth.AuthCodeDeliveryDetails import com.amplifyframework.auth.AuthException +import com.amplifyframework.auth.AuthFactorType import com.amplifyframework.auth.AuthSession import com.amplifyframework.auth.AuthUser import com.amplifyframework.auth.AuthUserAttribute @@ -71,19 +72,12 @@ internal fun mockAuthException( cause = cause ) -internal fun mockAuthSession( - isSignedIn: Boolean = false -) = AuthSession(isSignedIn) +internal fun mockAuthSession(isSignedIn: Boolean = false) = AuthSession(isSignedIn) -internal fun mockAuthUser( - userId: String = "userId", - username: String = "username" -) = AuthUser(userId, username) +internal fun mockAuthUser(userId: String = "userId", username: String = "username") = AuthUser(userId, username) -internal fun mockSignInResult( - isSignedIn: Boolean = true, - nextSignInStep: AuthNextSignInStep = mockNextSignInStep() -) = AuthSignInResult(isSignedIn, nextSignInStep) +internal fun mockSignInResult(isSignedIn: Boolean = true, nextSignInStep: AuthNextSignInStep = mockNextSignInStep()) = + AuthSignInResult(isSignedIn, nextSignInStep) internal fun mockSignInResult( signInStep: AuthSignInStep = AuthSignInStep.DONE, @@ -107,14 +101,18 @@ internal fun mockNextSignInStep( additionalInfo: Map<String, String> = emptyMap(), codeDeliveryDetails: AuthCodeDeliveryDetails? = null, totpSetupDetails: TOTPSetupDetails? = null, - allowedMFATypes: Set<MFAType>? = null -) = AuthNextSignInStep(signInStep, additionalInfo, codeDeliveryDetails, totpSetupDetails, allowedMFATypes) + allowedMFATypes: Set<MFAType>? = null, + availableFactors: Set<AuthFactorType>? = null +) = AuthNextSignInStep( + signInStep, + additionalInfo, + codeDeliveryDetails, + totpSetupDetails, + allowedMFATypes, + availableFactors +) -internal fun mockUserAttributes( - vararg attribute: Pair<AuthUserAttributeKey, String> -) = attribute.map { AuthUserAttribute(it.first, it.second) } +internal fun mockUserAttributes(vararg attribute: Pair<AuthUserAttributeKey, String>) = + attribute.map { AuthUserAttribute(it.first, it.second) } -internal fun mockUser( - userId: String = "userId", - username: String = "username" -) = AuthUser(userId, username) +internal fun mockUser(userId: String = "userId", username: String = "username") = AuthUser(userId, username) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 57bdaf35..c596d025 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] agp = "8.1.4" -amplify = "2.24.0" +amplify = "2.27.0" binary-compatibility = "0.14.0" cameraX = "1.2.0" compose = "1.5.4" diff --git a/samples/authenticator/app/build.gradle b/samples/authenticator/app/build.gradle index 1f7db490..272f79ae 100644 --- a/samples/authenticator/app/build.gradle +++ b/samples/authenticator/app/build.gradle @@ -35,7 +35,7 @@ android { compose true } composeOptions { - kotlinCompilerExtensionVersion '1.4.3' + kotlinCompilerExtensionVersion "1.5.3" } packagingOptions { resources { diff --git a/samples/authenticator/build.gradle b/samples/authenticator/build.gradle index 1aa2ea5a..66567fe5 100644 --- a/samples/authenticator/build.gradle +++ b/samples/authenticator/build.gradle @@ -10,5 +10,5 @@ buildscript { plugins { id 'com.android.application' version '8.1.4' apply false id 'com.android.library' version '8.1.4' apply false - id 'org.jetbrains.kotlin.android' version '1.8.10' apply false + id 'org.jetbrains.kotlin.android' version '1.9.10' apply false }