Skip to content

Implement account screen redesign with first-launch redirect and improved UX#13

Merged
NateEaton merged 5 commits intomainfrom
claude/implement-account-redesign-wVl6r
Jan 31, 2026
Merged

Implement account screen redesign with first-launch redirect and improved UX#13
NateEaton merged 5 commits intomainfrom
claude/implement-account-redesign-wVl6r

Conversation

@NateEaton
Copy link
Copy Markdown
Owner

Implement all features from account-screen-redesign specification:

  1. First-launch redirect: Navigate to AccountSettingsRoute on app launch when
    not authenticated (no token). Preserve existing behavior when authenticated
    by starting at BookmarkListRoute. Hide back button on Account screen when
    it's the start destination (no prior back stack entry).

  2. URL field auto-population: Pre-populate URL field with "https://" on first
    load when empty. Handle protocol prefix switching when unencrypted
    connections checkbox is toggled - swap http/https as appropriate.

  3. Keyboard IME actions: Add proper keyboard navigation:

    • URL field: Next action to move to email field
    • Email field: Next action to move to password field
    • Password field: Done action that submits if form is valid
  4. Single-line text fields: Add singleLine=true to all input fields to prevent
    Return key from inserting newlines.

  5. Email label update: Rename "Username" label to "Email Address" and update
    placeholder from "username" to "email@example.com". Update error message
    accordingly.

  6. Sign-out functionality: Add sign-out section visible only when logged in:

    • Shows warning text about clearing local data
    • Includes confirmation dialog before signing out
    • Clears credentials and resets UI state on confirmation
    • Button styled with error color for visual warning
  7. Navigation improvements: Add NavigateToBookmarkList event for successful
    login, with popUpTo(AccountSettingsRoute) to prevent back navigation to
    login screen after authentication.

  8. Focus management: Request focus on URL field when Account screen opens
    using FocusRequester for better UX on first-launch flow.

https://claude.ai/code/session_01D4wBTsd8VbTR1H3RPa1a1K

…oved UX

Implement all features from account-screen-redesign specification:

1. First-launch redirect: Navigate to AccountSettingsRoute on app launch when
   not authenticated (no token). Preserve existing behavior when authenticated
   by starting at BookmarkListRoute. Hide back button on Account screen when
   it's the start destination (no prior back stack entry).

2. URL field auto-population: Pre-populate URL field with "https://" on first
   load when empty. Handle protocol prefix switching when unencrypted
   connections checkbox is toggled - swap http/https as appropriate.

3. Keyboard IME actions: Add proper keyboard navigation:
   - URL field: Next action to move to email field
   - Email field: Next action to move to password field
   - Password field: Done action that submits if form is valid

4. Single-line text fields: Add singleLine=true to all input fields to prevent
   Return key from inserting newlines.

5. Email label update: Rename "Username" label to "Email Address" and update
   placeholder from "username" to "email@example.com". Update error message
   accordingly.

6. Sign-out functionality: Add sign-out section visible only when logged in:
   - Shows warning text about clearing local data
   - Includes confirmation dialog before signing out
   - Clears credentials and resets UI state on confirmation
   - Button styled with error color for visual warning

7. Navigation improvements: Add NavigateToBookmarkList event for successful
   login, with popUpTo(AccountSettingsRoute) to prevent back navigation to
   login screen after authentication.

8. Focus management: Request focus on URL field when Account screen opens
   using FocusRequester for better UX on first-launch flow.

https://claude.ai/code/session_01D4wBTsd8VbTR1H3RPa1a1K
- Fix Composable lambda type mismatch in TopAppBar navigationIcon by
  explicitly declaring the lambda type before conditional assignment
- Rename private isValidUrl function to isValidUrlForCurrentSettings to
  avoid shadowing the imported extension function String.isValidUrl()
- Update all references to use the renamed function
- Remove unused FocusRequester import from ViewModel

This fixes the compilation errors in AccountSettingsScreen.kt and
AccountSettingsViewModel.kt.

https://claude.ai/code/session_01D4wBTsd8VbTR1H3RPa1a1K
Replace nullable type handling with conditional TopAppBar creation.
The navigationIcon parameter expects a non-nullable @composable, so we
conditionally create the TopAppBar with or without the navigationIcon
based on whether Account is the start destination.

This resolves the type mismatch error and properly handles both cases:
- When Account is start destination: TopAppBar without back button
- When navigated from Settings: TopAppBar with back button

https://claude.ai/code/session_01D4wBTsd8VbTR1H3RPa1a1K
1. Cursor positioning: Use TextFieldValue to position cursor at the end of
   the URL field when the screen opens, allowing users to immediately start
   typing after the protocol prefix (https://)

2. Protocol auto-swap: When the unencrypted connections checkbox is toggled,
   automatically swap the protocol prefix:
   - Checking unencrypted: https:// → http://
   - Unchecking unencrypted: http:// → https://

   This provides better UX by automatically updating the protocol to match
   the connection security setting.

https://claude.ai/code/session_01D4wBTsd8VbTR1H3RPa1a1K
1. Correct license information: Update MyDeck license from MIT to GPLv3
   (GNU General Public License v3) to match the actual LICENSE file

2. Fix text styling: Change fork info credits from bodySmall to bodyMedium
   to match the other credit entries (MyDeck by Nate Eaton, etc.)

The fork info text now displays at the same size as other credits and
the license accurately reflects the GPLv3 license used by the project.

https://claude.ai/code/session_01D4wBTsd8VbTR1H3RPa1a1K
@NateEaton NateEaton merged commit d59682d into main Jan 31, 2026
3 checks passed
@NateEaton NateEaton deleted the claude/implement-account-redesign-wVl6r branch February 20, 2026 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants