Mikkeli Matlock 8c86f9b38d Add 'Keep current scores?' confirmation dialog for arrow count switching
Implements smart score preservation when switching between 3-arrow and 6-arrow modes:

Core functionality:
- Detects existing scores before allowing arrow count mode changes
- Shows confirmation dialog only when scores exist on scorecard
- Two-option dialog: 'Yes - Keep scores' or 'No - Clear scores'
- User can cancel dialog to abort mode change completely

Score preservation logic:
- Preserves existing scores in their current positions when keeping scores
- Handles 6→3 arrow transition: rows 11-12 become inactive but retain scores
- Maintains visual greying and unselectable state for deactivated cells
- Respects new arrow count limits when copying scores to new structure

Dialog UX improvements:
- Clear messaging explaining the consequences of each choice
- Professional button styling with explicit action descriptions
- Cancellable dialog preserves current state if user changes mind
- Seamless integration with existing toggle switch behavior

Technical implementation:
- _hasAnyScores() helper efficiently detects non-empty scorecard
- _preserveScoresWithNewArrowCount() safely migrates scores to new structure
- Async/await pattern for proper dialog handling and state updates
- Maintains all existing sophisticated end interaction behaviors

This enhancement prevents accidental score loss while allowing flexible
rule switching, matching professional archery scoring conventions.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-23 22:45:28 +09:00
2024-02-21 15:58:29 +09:00
2025-08-23 01:41:27 +09:00
2025-08-23 01:41:27 +09:00

archery bookkeeper

Professional archery scoring application built with Flutter, designed to match traditional paper scorecards with modern digital convenience.

features

  • Digital scorecard matching traditional paper layouts
  • Real-time score calculation and running totals
  • Configurable settings for different archery formats
  • Color-coded scoring keypad with archery-standard conventions
  • X/10/9 counting for precision tracking
  • Centralized color architecture with traditional and low-saturation schemes
  • Intelligent sum of 6 column greying for 3-arrow mode
  • Optimized column widths for excellent mobile usability

development

This is a Flutter project with modern development practices:

flutter pub get
flutter run

Built with Flutter SDK ^3.9.0, Material 3 theming, and flutter_lints 6.0.0 for code quality.

See CLAUDE.md for complete architecture documentation and development roadmap.

S
Description
Flutter application for target archery scoring.
Readme MIT 815 KiB
Languages
HTML 44%
Dart 26.8%
Python 12.9%
C++ 8.4%
CMake 6.7%
Other 1.1%