Skip to content

Commit 2d467a6

Browse files
authored
chore(authenticator): Authenticator KtLint check (#12)
1 parent 9736901 commit 2d467a6

25 files changed

+135
-37
lines changed

.editorconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[*.{kt,kts}]
2+
#this is to match java checkstyle
3+
max_line_length=120

authenticator/build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ android {
1010
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
1111
}
1212

13+
compileOptions {
14+
coreLibraryDesugaringEnabled true
15+
}
16+
1317
publishing {
1418
singleVariant("release") {
1519
withSourcesJar()
@@ -24,6 +28,7 @@ dependencies {
2428
implementation dependency.androidx.uiTooling
2529
implementation dependency.androidx.lifecycle_ktx
2630
implementation dependency.androidx.compose.viewmodel
31+
coreLibraryDesugaring dependency.android.desugar
2732

2833
testImplementation dependency.test.androidx.espresso
2934
testImplementation dependency.test.androidx.junit

authenticator/src/main/java/com/amplifyframework/ui/authenticator/AuthenticatorViewModel.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ import com.amplifyframework.auth.result.step.AuthResetPasswordStep
4242
import com.amplifyframework.auth.result.step.AuthSignInStep
4343
import com.amplifyframework.auth.result.step.AuthSignUpStep
4444
import com.amplifyframework.core.Amplify
45-
import com.amplifyframework.ui.authenticator.amplify.AmplifyAuthConfiguration
46-
import com.amplifyframework.ui.authenticator.amplify.toAttributeKey
47-
import com.amplifyframework.ui.authenticator.amplify.toFieldKey
48-
import com.amplifyframework.ui.authenticator.amplify.toVerifiedAttributeKey
45+
import com.amplifyframework.ui.authenticator.auth.AmplifyAuthConfiguration
46+
import com.amplifyframework.ui.authenticator.auth.toAttributeKey
47+
import com.amplifyframework.ui.authenticator.auth.toFieldKey
48+
import com.amplifyframework.ui.authenticator.auth.toVerifiedAttributeKey
4949
import com.amplifyframework.ui.authenticator.enums.AuthenticatorInitialStep
5050
import com.amplifyframework.ui.authenticator.enums.AuthenticatorStep
5151
import com.amplifyframework.ui.authenticator.forms.FieldError
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/*
2+
* Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
package com.amplifyframework.ui.authenticator.auth
17+
18+
import androidx.annotation.IntRange
19+
import com.amplifyframework.auth.AuthUserAttributeKey
20+
import com.amplifyframework.ui.authenticator.forms.FieldKey
21+
22+
internal enum class SignInMethod {
23+
Username, Email, PhoneNumber
24+
}
25+
26+
internal enum class VerificationMechanism {
27+
PhoneNumber, Email
28+
}
29+
30+
internal data class PasswordCriteria(
31+
@IntRange(from = 6, to = 99) val length: Int,
32+
val requiresNumber: Boolean,
33+
val requiresSpecial: Boolean,
34+
val requiresUpper: Boolean,
35+
val requiresLower: Boolean
36+
)
37+
38+
/**
39+
* This is a temporary mock of the information we'll need to get from Amplify during start up
40+
*/
41+
internal class AmplifyAuthConfiguration(
42+
val signInMethod: SignInMethod,
43+
val signUpAttributes: List<AuthUserAttributeKey>,
44+
val passwordCriteria: PasswordCriteria,
45+
val verificationMechanisms: Set<VerificationMechanism>
46+
)
47+
48+
internal fun SignInMethod.toFieldKey() = when (this) {
49+
SignInMethod.Username -> FieldKey.Username
50+
SignInMethod.Email -> FieldKey.Email
51+
SignInMethod.PhoneNumber -> FieldKey.PhoneNumber
52+
}
53+
54+
internal fun VerificationMechanism.toAttributeKey() = when (this) {
55+
VerificationMechanism.PhoneNumber -> AuthUserAttributeKey.phoneNumber()
56+
VerificationMechanism.Email -> AuthUserAttributeKey.email()
57+
}
58+
59+
internal fun VerificationMechanism.toVerifiedAttributeKey() = when (this) {
60+
VerificationMechanism.PhoneNumber -> AuthUserAttributeKey.phoneNumberVerified()
61+
VerificationMechanism.Email -> AuthUserAttributeKey.emailVerified()
62+
}

authenticator/src/main/java/com/amplifyframework/ui/authenticator/forms/FieldConfig.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package com.amplifyframework.ui.authenticator.forms
1818
import androidx.compose.runtime.Composable
1919
import androidx.compose.runtime.Immutable
2020
import androidx.compose.ui.text.input.KeyboardType
21-
import java.util.*
2221

2322
/**
2423
* An [FieldConfig] specifies the metadata for an input field within the Authenticator composable. The

authenticator/src/main/java/com/amplifyframework/ui/authenticator/forms/FieldValidator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package com.amplifyframework.ui.authenticator.forms
1717

1818
import android.util.Patterns
19-
import com.amplifyframework.ui.authenticator.amplify.PasswordCriteria
19+
import com.amplifyframework.ui.authenticator.auth.PasswordCriteria
2020
import com.amplifyframework.ui.authenticator.forms.FieldError.InvalidFormat
2121
import com.amplifyframework.ui.authenticator.forms.FieldError.PasswordsDoNotMatch
2222
import com.amplifyframework.ui.authenticator.forms.FieldKey.Password

authenticator/src/main/java/com/amplifyframework/ui/authenticator/forms/FormBuilder.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ package com.amplifyframework.ui.authenticator.forms
1818
import androidx.compose.runtime.Composable
1919
import androidx.compose.ui.text.input.KeyboardType
2020
import com.amplifyframework.auth.AuthUserAttributeKey
21-
import com.amplifyframework.ui.authenticator.amplify.SignInMethod
22-
import com.amplifyframework.ui.authenticator.amplify.toFieldKey
21+
import com.amplifyframework.ui.authenticator.auth.SignInMethod
22+
import com.amplifyframework.ui.authenticator.auth.toFieldKey
2323

2424
internal data class FormData(val fields: List<FieldConfig>)
2525

authenticator/src/main/java/com/amplifyframework/ui/authenticator/states/ScreenStateFactory.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ import com.amplifyframework.auth.AuthUser
2020
import com.amplifyframework.auth.AuthUserAttribute
2121
import com.amplifyframework.auth.AuthUserAttributeKey
2222
import com.amplifyframework.auth.result.AuthSignOutResult
23-
import com.amplifyframework.ui.authenticator.amplify.AmplifyAuthConfiguration
24-
import com.amplifyframework.ui.authenticator.amplify.PasswordCriteria
25-
import com.amplifyframework.ui.authenticator.amplify.SignInMethod
26-
import com.amplifyframework.ui.authenticator.amplify.toFieldKey
23+
import com.amplifyframework.ui.authenticator.auth.AmplifyAuthConfiguration
24+
import com.amplifyframework.ui.authenticator.auth.PasswordCriteria
25+
import com.amplifyframework.ui.authenticator.auth.SignInMethod
26+
import com.amplifyframework.ui.authenticator.auth.toFieldKey
2727
import com.amplifyframework.ui.authenticator.enums.AuthenticatorInitialStep
2828
import com.amplifyframework.ui.authenticator.forms.FieldKey
2929
import com.amplifyframework.ui.authenticator.forms.FieldValidators

authenticator/src/main/java/com/amplifyframework/ui/authenticator/strings/StringResolver.kt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,11 @@ internal open class StringResolver {
5757
FieldKey.Website -> stringResource(R.string.amplify_ui_authenticator_field_label_website)
5858
FieldKey.PhoneNumber -> stringResource(R.string.amplify_ui_authenticator_field_label_phone_number)
5959
FieldKey.Nickname -> stringResource(R.string.amplify_ui_authenticator_field_label_nickname)
60-
FieldKey.PreferredUsername -> stringResource(R.string.amplify_ui_authenticator_field_label_preferred_username)
60+
FieldKey.PreferredUsername ->
61+
stringResource(R.string.amplify_ui_authenticator_field_label_preferred_username)
6162
FieldKey.Profile -> stringResource(R.string.amplify_ui_authenticator_field_label_profile)
62-
FieldKey.VerificationAttribute -> stringResource(R.string.amplify_ui_authenticator_field_label_verification_attribute)
63+
FieldKey.VerificationAttribute ->
64+
stringResource(R.string.amplify_ui_authenticator_field_label_verification_attribute)
6365
else -> ""
6466
}
6567
}
@@ -68,7 +70,8 @@ internal open class StringResolver {
6870
@ReadOnlyComposable
6971
open fun hint(config: FieldConfig): String? {
7072
return config.hint ?: when {
71-
config.key == FieldKey.ConfirmPassword -> stringResource(R.string.amplify_ui_authenticator_field_hint_password_confirm)
73+
config.key == FieldKey.ConfirmPassword ->
74+
stringResource(R.string.amplify_ui_authenticator_field_hint_password_confirm)
7275
config is FieldConfig.Date -> "yyyy-mm-dd"
7376
else -> {
7477
val label = label(config)
@@ -105,7 +108,8 @@ internal open class StringResolver {
105108
}
106109
errorText
107110
}
108-
FieldError.PasswordsDoNotMatch -> stringResource(R.string.amplify_ui_authenticator_field_warn_unmatched_password)
111+
FieldError.PasswordsDoNotMatch ->
112+
stringResource(R.string.amplify_ui_authenticator_field_warn_unmatched_password)
109113
FieldError.MissingRequired -> {
110114
val label = title(config)
111115
stringResource(R.string.amplify_ui_authenticator_field_warn_empty, label)
@@ -130,6 +134,7 @@ internal open class StringResolver {
130134
}
131135
}
132136

137+
@Suppress("UNUSED_EXPRESSION")
133138
@Composable
134139
@ReadOnlyComposable
135140
open fun error(error: AuthException): String {

authenticator/src/main/java/com/amplifyframework/ui/authenticator/ui/PasswordReset.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ import kotlinx.coroutines.launch
3636
fun PasswordReset(
3737
state: PasswordResetState,
3838
modifier: Modifier = Modifier,
39-
headerContent: @Composable (PasswordResetState) -> Unit = { AuthenticatorTitle(stringResource(R.string.amplify_ui_authenticator_title_password_reset)) },
39+
headerContent: @Composable (PasswordResetState) -> Unit = {
40+
AuthenticatorTitle(stringResource(R.string.amplify_ui_authenticator_title_password_reset))
41+
},
4042
footerContent: @Composable (PasswordResetState) -> Unit = { PasswordResetFooter(it) }
4143
) {
4244
val scope = rememberCoroutineScope()

0 commit comments

Comments
 (0)