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)