UI/UX polish: GroupSetup back button, AMOLED contrast, i18n, confirm dialogs#19
Draft
AndVl1 wants to merge 11 commits into
Draft
UI/UX polish: GroupSetup back button, AMOLED contrast, i18n, confirm dialogs#19AndVl1 wants to merge 11 commits into
AndVl1 wants to merge 11 commits into
Conversation
…kCardSurface color token Adds 17 new string resource keys (action_back, settings_mode_*, confirm_reset_*, confirm_skip_*, cd_give_card, error_create_pool_failed, more_options, ranking_header_name, de_load_error, retry, confirm_exclude_fencer, de_slot_bye/tbd) to values/ (RU default), values-en/, and values-ru-rRU/. Adds BlackCardSurface color visible on both AMOLED-black and dark-gray surfaces. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…rs; SettingsScreen i18n BoutScreen: reset/skip buttons now show AlertDialog before acting; undo always rendered with alpha(0.3f) when disabled; timer turns RedTimer at zero; fencer names/scores use theme tokens; card indicator has minimum touch target and contentDescription; yellow card button uses Color.Black contentColor; intentional no-back-arrow comment added. SettingsScreen: all hardcoded strings replaced with stringResource() calls. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…E, weapon i18n Component: GroupSetupError sealed class (BlankNames/DuplicateNames/CreateFailed); validation moved from screen to component; Crashlytics recordException on createPool failure; DismissError event clears error state. Screen: Scaffold with CenterAlignedTopAppBar + back arrow (testTag groupSetup_button_back); LaunchedEffect shows localized Snackbar on error; all text fields get singleLine + IME Next (Done on last region field); weapon chips use private weaponLabel() composable; create button enabled only when not creating (validation is component responsibility). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…i18n, back CD Replace all Color.Gray borders with MaterialTheme.colorScheme.outline (4 occurrences including MatrixCellView); remove Color import that was only used for gray borders. EditScoreDialog and QuickEntryDialog: confirm button enabled only when both score inputs are valid integers. ExcludeFencerDialog: two-step confirmation — click fencer to show nested AlertDialog with confirm_exclude_fencer formatted string. MoreVert icon gets contentDescription more_options; back icon CD changed to action_back. Rankings table Name header uses ranking_header_name string resource. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…, back CD Component: DeTableauEvent.Retry resets to loading state and re-calls observeData(). Screen: bracket==null/error branch shows error Text + retry Button with testTags de_text_loadError and de_button_retry instead of a bare spinner; slotDisplayText made @composable to use stringResource for BYE/TBD slots; back arrow CD uses action_back. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…Confirm Scaffold BoutsListScreen: BoutListItem split into interactive/non-interactive Card overloads via private BoutListItemContent composable; pending bouts no longer show ripple feedback. BoutResultComponent: isLeftWinner computed property (get() = winner == "LEFT") added to BoutResultState to avoid repeated inline comparisons; idempotency comment on init block. BoutResultScreen: systemBarsPadding() added to root Column; left/right columns use fixed Alignment.Start/End; all winner checks use state.isLeftWinner/!state.isLeftWinner. BoutConfirmScreen: wrapped in Scaffold(@OptIn ExperimentalMaterial3Api); TopAppBar with ArrowBack navigationIcon (testTag boutConfirm_button_back, CD action_back, onClick=Cancel); innerPadding threaded to both loading and content branches; bottom Cancel button kept. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…e objects
RootComponent: PoolBout.onBoutFinished uses navigation.navigate{} to drop everything
above GroupDashboard before pushing BoutResult, so Continue/Back from BoutResult goes
directly to GroupDashboard instead of landing on a stale BoutConfirm.
Tests: BoutPage adds resetConfirmButton + skipConfirmButton matchers; GroupSetupPage
adds backButton matcher; boutScreen_resetBout and boutScreen_skipSection now click
the confirm dialog button after the action button.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… Create button on back-nav GroupSetupComponent now sets isCreating=false before calling onPoolCreated so that navigating back to the screen leaves the button enabled (F1 fix). GroupSetupScreen wraps SnackbarHost to expose testTag for instrumented tests. GroupDashboardScreen adds testTags to overflow button, exclude menu item, fencer buttons and second-step confirm dialog text (F3 prerequisites). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
F2: BoutConfirmPage.backButton selector for boutConfirm_button_back. F3 tests added: - groupSetup_backButton_navigatesHome - groupSetup_blankName_showsSnackbar (asserts groupSetup_snackbar tag) - groupSetup_duplicateName_showsSnackbar (asserts groupSetup_snackbar tag) - boutConfirm_backArrow_navigatesToDashboard - excludeFencer_secondStepConfirmationRequired GroupDashboardPage gets overflow/exclude/fencer/confirm-dialog selectors. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Автономный UI/UX-свип (
/team, full-feature). ~32 дефекта найдено 3 агентами, исправлено.Headline (по запросу)
0xFF212121исчезала на AMOLED0xFF000000. ВведёнBlackCardSurface = 0xFF424242; жёлтая карточка —contentColorна кнопке; хардкодColor.White/Gray→ токены темы. (Иконки тулбара уже были корректны —onSurface.)Также
action_back(RU/EN) для всех стрелок «назад» — раньше озвучивали "Settings".Scaffold/insets; безопасный бэкстек (back больше не возвращает на сыгранный бой);recordBoutResultидемпотентен.isLeftWinner.Ревью
vibe-report/screens/ui-ux-polish/).isCreatingне сбрасывался → «Создать» disabled после возврата) — исправлен; +6 инструментальных тестов.Проверки
assembleDebug: PASS ·assembleDebugAndroidTest: PASSconnectedDebugAndroidTest: затронутые 8 — 0 падений; полный прогон 42/43 (1 пред-существующий flakeboutConfirm_startBout, не относится к ветке).Отчёт:
vibe-report/ui-ux-polish-2026-06-12.md.🤖 Generated with Claude Code