diff --git a/app/src/androidTest/kotlin/org/libremail/ui/onboarding/OnboardingFlowTest.kt b/app/src/androidTest/kotlin/org/libremail/ui/onboarding/OnboardingFlowTest.kt index 065d0e3..4cf6d67 100644 --- a/app/src/androidTest/kotlin/org/libremail/ui/onboarding/OnboardingFlowTest.kt +++ b/app/src/androidTest/kotlin/org/libremail/ui/onboarding/OnboardingFlowTest.kt @@ -286,4 +286,21 @@ class OnboardingFlowTest { composeTestRule.onNodeWithText(string(R.string.app_password_open_page, "iCloud Mail")) .assertIsDisplayed() } + + @Test + fun appPasswordSetup_showsAccountPasswordDisclaimerNearField() { + setOnboardingContent(FakeAccountRepository(), FakeMailRepository()) + + composeTestRule.onNodeWithText(string(R.string.onboarding_add_account)).performClick() + waitForText("Gmail") + composeTestRule.onNodeWithText("Gmail").performClick() + + // Issue #160: new users unfamiliar with app passwords commonly try their regular account + // password first. The disclaimer must render as supporting text directly under the "App + // password" field itself (not only in the intro InfoCards above), on every preset provider + // screen since they all share this composable. + waitForText(string(R.string.app_password_field)) + composeTestRule.onNodeWithText(string(R.string.app_password_field_disclaimer)) + .performScrollTo().assertIsDisplayed() + } } diff --git a/app/src/main/kotlin/org/libremail/ui/accountsetup/AppPasswordSetupScreen.kt b/app/src/main/kotlin/org/libremail/ui/accountsetup/AppPasswordSetupScreen.kt index 6fc780d..1eea05b 100644 --- a/app/src/main/kotlin/org/libremail/ui/accountsetup/AppPasswordSetupScreen.kt +++ b/app/src/main/kotlin/org/libremail/ui/accountsetup/AppPasswordSetupScreen.kt @@ -188,6 +188,7 @@ fun AppPasswordSetupScreen( singleLine = true, visualTransformation = PasswordVisualTransformation(), keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password), + supportingText = { Text(stringResource(R.string.app_password_field_disclaimer)) }, modifier = Modifier.fillMaxWidth(), ) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5b4fd1c..3d81d18 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -213,6 +213,7 @@ Couldn\'t open your browser Email address App password + Do not try to use your account password. It will not work. You must use an app password. Server settings Incoming (IMAP): %1$s:%2$d (%3$s) Outgoing (SMTP): %1$s:%2$d (%3$s)