Closer/docs/qa/ui-review.md

140 lines
6.0 KiB
Markdown

# Batch 8 — Responsive Visual QA Code Review
## Scope
Reviewed Compose UI files under `app/src/main/java/app/closer/ui/` for responsive layout issues:
- Missing `maxLines` + `TextOverflow.Ellipsis` in constrained containers
- Missing `navigationBarsPadding()` / `WindowInsets` handling near bottom nav
- Cramped cards/rows with insufficient padding
- Missing `weight(1f)` in Rows/Columns that push buttons off-screen
- Interactive elements smaller than 48dp touch targets
- Inconsistent spacing patterns
## Build Verification
`./gradlew :app:compileDebugKotlin`**BUILD SUCCESSFUL** (3s)
## Per-File Findings
### `home/HomeScreen.kt`
- Added text truncation (`maxLines`/`overflow`) to subtitle, moment cue, and category count text.
### `dates/DateMatchScreen.kt`
- Added `weight(1f)` and text truncation to the header row so it doesn't overlap the close button.
- Added truncation to chip text inside constrained width.
### `dates/DateMatchesScreen.kt`
- Added `maxLines`/`overflow` to date-idea titles inside cards.
### `dates/DateBuilderScreen.kt`
- Fixed header layout with proper weighting and truncation for value/budget text.
- Added `weight(1f)` to duration chip rows so chips share space correctly.
- Increased chip touch target to meet 48dp minimum.
### `dates/BucketListScreen.kt`
- Added `maxLines`/`overflow` to header title, subtitle, item title, and item description.
- Added `navigationBarsPadding()` handling to the top-level content.
- Made `LazyColumn` fill remaining space via `weight(1f)`.
- Added `horizontalScroll` to filter chip rows so they don't overflow on narrow screens.
- Increased `FilterChip` and `CategoryChip` touch targets to 48dp minimum.
### `components/PlaceholderScreen.kt`
- Added `maxLines`/`overflow` to header title/description, panel title, "Ready" badge, and detail rows.
### `settings/SettingsScreen.kt`
- Added text truncation to profile card name/email, partner card texts, and `SettingsRow` labels.
### `settings/AccountScreen.kt`
- Added `weight(1f)` to profile card text column.
- Added text truncation to profile description and `AccountRow` labels.
### `settings/DeleteAccountScreen.kt`
- Added `heightIn(min = 48.dp)` to the acknowledgment checkbox row to meet minimum touch target.
### `settings/RelationshipSettingsScreen.kt`
- Added text truncation to TopAppBar title, explanation text, and error text.
- Switched leave-couple button to `heightIn(min = 52.dp)` for consistent responsive sizing.
### `pairing/CreateInviteScreen.kt`
- Added `navigationBarsPadding()` to scrollable content.
- Increased bottom TextButton touch target to 48dp.
### `pairing/AcceptInviteScreen.kt`
- Added `navigationBarsPadding()` to scrollable content.
- Increased primary button and bottom TextButton touch targets to minimum heights.
### `pairing/InviteConfirmScreen.kt`
- Added `navigationBarsPadding()` to scrollable content.
- Increased primary button and bottom TextButton touch targets to minimum heights.
### `questions/components/QuestionHeader.kt`
- Added `maxLines`/`overflow` to question text.
### `questions/components/QuestionAnswerInput.kt`
- Added text truncation to single-choice, multi-choice, and this-or-that option text.
### `questions/components/QuestionDiscussionThread.kt`
- Added `maxLines`/`overflow` to message bubble text.
- Increased send `IconButton` size from 44dp to 48dp.
### `questions/components/AnswerBubble.kt`
- Added text truncation to answer summary text.
- Increased reaction picker and "Add a reaction" touch targets to 48dp.
### `questions/components/QuestionNavigationBar.kt`
- Increased previous/next button heights from 44dp to 48dp.
### `questions/LocalQuestionContent.kt`
- Added `maxLines`/`overflow` to the screen subtitle.
### `questions/QuestionCategoryScreen.kt`
- Added `maxLines`/`overflow` to category description, filter/category pills, loading card text, and message card text.
- Increased `FilterPill` and `CategoryPill` touch targets.
### `questions/QuestionPackLibraryScreen.kt`
- Added `maxLines`/`overflow` to header title/description, filter/pack pills, loading card text, and message card text.
- Increased filter/pack pill touch targets and "Unlock all packs" button height.
### `questions/components/QuestionHelpExpandable.kt`
- Increased header row minimum height to 48dp.
- Added text truncation to header label and expanded help text.
### `wheel/CategoryPickerScreen.kt`
- Added text truncation to header title/description and category/filter pills.
- Increased pill touch targets.
### `wheel/SpinWheelScreen.kt`
- Added text truncation to headline and category pill.
- Increased all primary/outlined button heights to 56dp minimum.
### `wheel/WheelSessionScreen.kt`
- Added text truncation to category pill, progress count, question card text, and empty-state text.
- Increased primary/outline/text button touch targets to minimum heights.
### `wheel/WheelCompleteScreen.kt`
- Added text truncation to headline, category name, and summary text.
- Increased primary/outline button heights to 56dp minimum.
### `wheel/WheelHistoryScreen.kt`
- Added text truncation to header title, session card text, locked-card text, and date labels.
- Increased "Unlock premium" button and pill touch targets.
### `answers/AnswerHistoryScreen.kt`
- Added text truncation to header title/description, answer card text, and history pills.
- Increased remove `TextButton` and pill touch targets.
### `answers/AnswerRevealScreen.kt`
- Added text truncation to header text, question text, preview text, and all pills.
- Increased all primary/outline/text button touch targets.
## Files Reviewed with No Issues
- `questions/DailyQuestionScreen.kt` — delegates to `LocalQuestionContent`, no direct UI.
- `questions/QuestionComposerScreen.kt` — delegates to `PlaceholderScreen`.
- `questions/QuestionThreadScreen.kt` — delegates to `LocalQuestionContent`.
- `questions/LocalAnswerMapping.kt` — mapping helper, no UI.
## Constraints Respected
- No colors, fonts, or visual styles changed.
- No new dependencies added.
- No business logic or data flow changed.
- No screen layouts restructured — only responsive fixes applied.
- No commits or pushes made.