Commit Graph

5 Commits

Author SHA1 Message Date
Alexander Doerflinger
0d71d93ea6 Added primaryPlayer functionality
Added a new functionality to mark one player as the primary player. This player is the main user of the app and the training data will be stored for that player only.
2026-02-17 08:09:15 +01:00
Alexander Doerflinger
039350e988 Left over files from previous comit :/ 2026-02-03 15:38:58 +01:00
Alexander Doerflinger
c2f18d9328 feat: implement comprehensive statistics tracking and refactor checkout engine
BREAKING CHANGE: Database schema updated from v3 to v9 (destructive migration)

Major Features:
- Statistics system: Track player performance (darts, points, matches, double-outs)
- Match state management: ONGOING/COMPLETED/CANCELED with state-based queries
- Settings activity: Day/night mode and standard game mode preferences
- CheckoutEngine refactored to standalone utility class with 1/2/3-dart methods

CheckoutConstants Overhaul:
- Generate all possible double-out combinations (~37,200 routes)
- Intelligent route selection (fewer darts > T20/T19 > higher doubles)
- Store both optimal routes and complete alternatives

GameActivity Enhancements:
- Automatic statistics tracking on turn submission and win
- Career average calculation and database updates
- Fixed race condition with dart value capture

Database Changes:
- Added Statistics entity and StatisticsDao
- Player ID migration: int → long for consistency
- Match entity: added MatchState enum and helper methods
- MatchDao: new state-based query methods

Developer Experience:
- Comprehensive JavaDoc across all new/modified classes
- Test harness for checkout generation validation
- Improved code organization with utils package separation
2026-01-30 08:21:26 +01:00
Alexander Doerflinger
2953a1bf67 Cleaned up code 2026-01-28 15:28:39 +01:00
Alexander Doerflinger
a4a42fc73f Initial Commit 2026-01-28 12:33:38 +01:00