Skip to content

fix: issue #19 UI fixes — nav-bar insets, default tags, post-send auto-return - #20

Merged
kbennett2000 merged 1 commit into
mainfrom
fix/issue-19-ui
Jun 10, 2026
Merged

fix: issue #19 UI fixes — nav-bar insets, default tags, post-send auto-return#20
kbennett2000 merged 1 commit into
mainfrom
fix/issue-19-ui

Conversation

@kbennett2000

Copy link
Copy Markdown
Owner

Fixes #19 — three independent UI issues from the bug report, bundled into one PR (all small, fork-owned UI changes; no frozen-core scan/OCR behavior touched). Happy to split if you'd prefer.

1. Bottom buttons overlapped the Android nav bar

Edge-to-edge is on (targetSdk 36, setDecorFitsSystemWindows(false)), and the page-hub Continue, edit-screen Continue, and settings Save buttons sat under the system nav buttons — you had to tap their top sliver. The capture screens (CameraFragment/CropFragment/OCRFragment) already fix this via UIUtils.adjustMarginForSystemInsets(view, baseDp); this applies that same established pattern to the three screens that were missing it.

Finalize's buttons are top-anchored (the JSON preview fills the bottom), so they don't overlap — intentionally left as-is.

2. Configurable default tags

Tags were hard-coded to sermon. Added a Default tags (comma-separated) field to Settings, stored via SongbirdPrefsHelper (getDefaultTags/setDefaultTags, defaulting to "sermon" so the documented ["sermon"] import default still holds out-of-box; an explicitly-blanked value is honored → empty tag box). EditViewModel.initialize(...) takes the value verbatim and EditFragment passes the configured default, so the edit-screen tag box prefills with it.

3. Send button re-tappable after success → auto-return to start

A successful, clean import now briefly shows the created/skipped result, then clears the session + capture state (mirroring the page hub's existing "start over" reset) and returns to the camera start screen, ready for the next handout. This also stops the Send button being tapped again on an already-imported note. Failures (unreachable / login-rejected / HTTP error / failed > 0) stay put with Send re-enabled for retry.

Verification

  • CI gate green: :app:compilePaddleDebugJavaWithJavac :app:testPaddleDebugUnitTest :app:lintPaddleDebug.
  • EditViewModelTest updated for the new initialize(..., defaultTags) signature + two new cases (configured default flows through; blank default → no tags).

On-device checklist (why this is a draft)

  • Page-hub and edit-screen Continue sit fully above the nav bar and are tappable along their whole height (gesture + 3-button nav).
  • Settings shows Default tags; e.g. sermon, majestic view prefills the edit tag box on the next scan; blank-saved → empty box.
  • A successful Send briefly shows created/skipped, then auto-returns to the camera with an empty hub (fresh scan starts clean); a failed/unreachable send stays put with Send re-enabled.

🤖 Generated with Claude Code

…o-return

Three independent UI problems reported in issue #19, all fork-owned (no
frozen-core scan/OCR behavior touched):

1. Bottom buttons overlapped the Android nav bar (edge-to-edge, targetSdk 36).
   The page hub ("Continue"), edit screen ("Continue"), and settings ("Save")
   buttons lacked the bottom-inset handling the capture screens already use.
   Applied the existing UIUtils.adjustMarginForSystemInsets pattern to each.
   (Finalize buttons are top-anchored — not affected, left as-is.)

2. Tags default was hard-coded to "sermon". Added a configurable "Default tags"
   field to Settings (SongbirdPrefsHelper.getDefaultTags/setDefaultTags, default
   "sermon" so the documented import default holds); EditViewModel.initialize now
   takes the default verbatim and EditFragment passes the configured value.

3. The Send button stayed tappable after a successful send. A clean import now
   briefly shows the result, then clears the session + capture state (mirroring
   the page hub's "start over" reset) and returns to the camera start screen.
   Failures stay put with Send re-enabled for retry.

Tests: EditViewModelTest updated for the new initialize signature + two cases
covering configured/blank default tags. Gate green
(compilePaddleDebugJavaWithJavac + testPaddleDebugUnitTest + lintPaddleDebug).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kbennett2000
kbennett2000 marked this pull request as ready for review June 10, 2026 17:15
@kbennett2000
kbennett2000 merged commit 021142a into main Jun 10, 2026
3 checks passed
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.

[BUG] - UI issues

1 participant