The current AccountSetupScreen offers only two choices — "Sign in with Microsoft" and
"Other (IMAP/SMTP)". The spec calls for a full vendor picker. This ticket replaces that
screen with the picker and routes each vendor to the correct setup path.
Scope
Vendor picker screen listing, with recognizable icons/branding and accessible labels:
Outlook/Hotmail -> existing Microsoft OAuth path (AccountSetupViewModel.outlookAuthIntent() / onOutlookResult()).
Gmail -> app-password setup (#29) with the Gmail preset (#28).
Yahoo -> app-password setup (#29) with the Yahoo preset (#28).
iCloud -> app-password setup (#29) with the iCloud preset (#28).
Other (IMAP/SMTP) -> existing ManualSetupScreen.
Absorb/replace the current two-button AccountSetupScreen so there is a single entry
point used by both onboarding (#26) and "Add account" from Settings/mailbox.
Pass the chosen provider key through to the app-password screen so it can load the
right preset and help copy.
Strings for each vendor label; strings.xml + SPDX-compliant new files.
Acceptance criteria
All five options render and each navigates to the correct setup path.
Outlook still completes its existing OAuth flow unchanged.
The picker is reachable both from onboarding and from the Settings/mailbox "Add account"
entry points.
Depends on #26 (nav scaffold). Routing to Gmail/Yahoo/iCloud depends on #28 + #29.
Part of #9.
## Context
The current `AccountSetupScreen` offers only two choices — "Sign in with Microsoft" and
"Other (IMAP/SMTP)". The spec calls for a full vendor picker. This ticket replaces that
screen with the picker and routes each vendor to the correct setup path.
## Scope
- [ ] Vendor picker screen listing, with recognizable icons/branding and accessible labels:
- **Outlook/Hotmail** -> existing Microsoft OAuth path (`AccountSetupViewModel.outlookAuthIntent()` / `onOutlookResult()`).
- **Gmail** -> app-password setup (#29) with the Gmail preset (#28).
- **Yahoo** -> app-password setup (#29) with the Yahoo preset (#28).
- **iCloud** -> app-password setup (#29) with the iCloud preset (#28).
- **Other (IMAP/SMTP)** -> existing `ManualSetupScreen`.
- [ ] Absorb/replace the current two-button `AccountSetupScreen` so there is a single entry
point used by both onboarding (#26) and "Add account" from Settings/mailbox.
- [ ] Pass the chosen provider key through to the app-password screen so it can load the
right preset and help copy.
- [ ] Strings for each vendor label; `strings.xml` + SPDX-compliant new files.
## Acceptance criteria
- All five options render and each navigates to the correct setup path.
- Outlook still completes its existing OAuth flow unchanged.
- The picker is reachable both from onboarding and from the Settings/mailbox "Add account"
entry points.
## Relevant files
- `app/src/main/kotlin/org/libremail/ui/accountsetup/AccountSetupScreen.kt` (replace)
- `app/src/main/kotlin/org/libremail/ui/accountsetup/AccountSetupViewModel.kt` (Outlook path)
- `app/src/main/kotlin/org/libremail/ui/LibreMailApp.kt`, `.../navigation/Routes.kt`
- `app/src/main/res/values/strings.xml`
## Dependencies
Depends on #26 (nav scaffold). Routing to Gmail/Yahoo/iCloud depends on #28 + #29.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of #9.
Context
The current
AccountSetupScreenoffers only two choices — "Sign in with Microsoft" and"Other (IMAP/SMTP)". The spec calls for a full vendor picker. This ticket replaces that
screen with the picker and routes each vendor to the correct setup path.
Scope
AccountSetupViewModel.outlookAuthIntent()/onOutlookResult()).ManualSetupScreen.AccountSetupScreenso there is a single entrypoint used by both onboarding (#26) and "Add account" from Settings/mailbox.
right preset and help copy.
strings.xml+ SPDX-compliant new files.Acceptance criteria
entry points.
Relevant files
app/src/main/kotlin/org/libremail/ui/accountsetup/AccountSetupScreen.kt(replace)app/src/main/kotlin/org/libremail/ui/accountsetup/AccountSetupViewModel.kt(Outlook path)app/src/main/kotlin/org/libremail/ui/LibreMailApp.kt,.../navigation/Routes.ktapp/src/main/res/values/strings.xmlDependencies
Depends on #26 (nav scaffold). Routing to Gmail/Yahoo/iCloud depends on #28 + #29.