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
32 lines
1.4 KiB
TOML
32 lines
1.4 KiB
TOML
[versions]
|
|
agp = "9.0.0"
|
|
junit = "4.13.2"
|
|
junitVersion = "1.3.0"
|
|
espressoCore = "3.7.0"
|
|
appcompat = "1.7.1"
|
|
material = "1.13.0"
|
|
activity = "1.12.2"
|
|
constraintlayout = "2.2.1"
|
|
glide = "5.0.5"
|
|
room = "2.8.4"
|
|
preferences = "1.2.0"
|
|
preference = "1.2.1"
|
|
|
|
[libraries]
|
|
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
|
ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
|
|
espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
|
|
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
|
|
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
|
activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
|
|
constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
|
|
glide = { group = "com.github.bumptech.glide", name = "glide", version.ref = "glide"}
|
|
room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room"}
|
|
room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room"}
|
|
preferences = { group = "androidx.preference", name="preference-ktx", version.ref="preferences" }
|
|
preference = { group = "androidx.preference", name = "preference", version.ref = "preference" }
|
|
|
|
[plugins]
|
|
android-application = { id = "com.android.application", version.ref = "agp" }
|
|
|