9bb1844cf4
build / build (push) Failing after 2m52s
photo viewing, and record drill-down - Overview is now the single front page (list + "+" FAB to scan) instead of a separate near-empty Scan tab; export moved from Overview into the drawer - Drop petrol_station/transaction_number from storage, the edit form, and CSV/ODS export - not useful for a personal fuel-cost log (destructive Room migration, version 1->2 already shipped earlier) - Add a live plausibility check (total_price vs. price_per_litre * litres - discount) shown as a green/red badge on the review screen - Add a shared Details/Photo review screen (ReceiptReviewScreen), with pinch-to-zoom on the photo (new Coil dependency), reused both right after a scan and when drilling into an already-saved receipt from the list (ReceiptDetailScreen, with Update/Delete) - Fix receipt photos not surviving an app restart: camera/gallery captures now write to internal storage (filesDir) instead of the cache dir, which the OS can clear independent of the database; the gallery picker was also saving the Photo Picker's own short-lived content:// Uri instead of a Uri onto our persisted copy - App log: add a Copy button and selectable text - Fix the connection status bar overlapping the system gesture nav bar under edge-to-edge - Settings: prefill an editable example server URL, add a "Test connection" button; both it and the connection status bar now surface the actual failure reason, not just pass/fail
59 lines
3.6 KiB
TOML
59 lines
3.6 KiB
TOML
[versions]
|
|
# Version-lookup tools (WebFetch/registry browsing) were unavailable while
|
|
# this file was written, so these are last-known-good pins rather than a
|
|
# freshly verified "latest stable" snapshot - if Gradle can't resolve one,
|
|
# bump it to whatever's current on Google's Maven / Maven Central.
|
|
#
|
|
# kotlin/ksp are pinned to 2.3.x rather than 2.2.20: androidx.room:
|
|
# room-common-jvm:2.8.5 declares a `{strictly 2.3.20}` constraint on
|
|
# kotlin-stdlib, which would otherwise silently resolve above what a
|
|
# 2.2.20 compiler/KSP understands. Keep these two in sync if Room is ever
|
|
# bumped further.
|
|
agp = "9.2.1"
|
|
kotlin = "2.3.20"
|
|
# KSP's versioning stopped mirroring Kotlin's exact patch after the 2.3.0
|
|
# line (no "2.3.20" KSP release exists) - 2.3.12 is the latest in the same
|
|
# 2.3.x line as kotlin above.
|
|
ksp = "2.3.12"
|
|
coreKtx = "1.17.0"
|
|
lifecycleRuntimeKtx = "2.9.4"
|
|
activityCompose = "1.13.0"
|
|
composeBom = "2026.06.01"
|
|
navigationCompose = "2.9.8"
|
|
datastorePreferences = "1.2.1"
|
|
kotlinxSerializationJson = "1.11.0"
|
|
kotlinxCoroutines = "1.11.0"
|
|
room = "2.8.5"
|
|
splashscreen = "1.0.1"
|
|
okhttp = "4.12.0"
|
|
coil = "3.0.4"
|
|
|
|
[libraries]
|
|
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
|
|
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
|
|
androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "lifecycleRuntimeKtx" }
|
|
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
|
|
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
|
|
androidx-ui = { group = "androidx.compose.ui", name = "ui" }
|
|
androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
|
|
androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
|
|
androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
|
|
androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
|
|
androidx-material-icons-core = { group = "androidx.compose.material", name = "material-icons-core" }
|
|
androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" }
|
|
androidx-datastore-preferences = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "datastorePreferences" }
|
|
androidx-room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" }
|
|
androidx-room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" }
|
|
androidx-room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }
|
|
androidx-core-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "splashscreen" }
|
|
kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" }
|
|
kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" }
|
|
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }
|
|
coil-compose = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coil" }
|
|
|
|
[plugins]
|
|
android-application = { id = "com.android.application", version.ref = "agp" }
|
|
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
|
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
|
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|