`./gradlew :androidApp:lintDebug` had apparently never been run. It reported 11 errors, 8 warnings and 3 hints, and one of the errors was a crash: UsageScreen formats its reset countdown with java.time -- OffsetDateTime and Duration, both API 26 -- while minSdk is 24 and core library desugaring was off. On 24 and 25 that is a NoClassDefFoundError, and the `catch (_: Exception)` around the code does not stop an Error, so the usage screen would have died rather than degraded. Core library desugaring is now on, with desugar_jdk_libs 2.1.5. Verified by looking in the built APK rather than trusting the flag: it now carries Lj$/time/Duration and Lj$/time/OffsetDateTime, the backported classes the call sites are rewritten against. The rest: the two KTX suggestions taken (SharedPreferences.edit's block form, which cannot forget its apply(), and String.toUri), the three autoboxing hints taken (mutableIntStateOf/mutableLongStateOf), and androidx.core:core-ktx declared at 1.19.0 rather than inherited through activity-compose, since this code now calls its extensions directly. Two are suppressed with their reasons, both scoped to the one element. DiscouragedApi on the scanner's screenOrientation, which is not a pin but the removal of the library's landscape lock. MissingApplicationIcon, because there is no icon yet and that is a decision to make later, not an oversight -- an app with no icon is obvious to anyone who opens a launcher, so the warning tells nobody here anything. 0 errors now. The 4 warnings left are one thing: Compose Multiplatform 1.12.0 is out and this is on 1.11.1. That is an upgrade to decide on, not a defect, so it is left for its own change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017xn8nHw1tw1R6PtiY1eEtw
41 lines
2.3 KiB
TOML
41 lines
2.3 KiB
TOML
# Latest stable versions as of 2026-08-24 (checked against Google Maven /
|
|
# Maven Central; prereleases deliberately skipped). zxing-embedded checked
|
|
# 2026-08-25.
|
|
[versions]
|
|
agp = "9.3.2"
|
|
kotlin = "2.4.10"
|
|
compose-multiplatform = "1.11.1"
|
|
# material3 ships on its own release train, separate from the CMP version.
|
|
compose-material3 = "1.9.0"
|
|
androidx-activityCompose = "1.13.0"
|
|
# Declared rather than inherited because this
|
|
# code now calls its extensions directly (SharedPreferences.edit, String
|
|
# .toUri), and a transitive it merely inherited could change under it.
|
|
androidx-core-ktx = "1.19.0"
|
|
zxing-embedded = "4.3.0"
|
|
# Backports java.time (and more) to API 24, which UsageScreen needs: its
|
|
# reset countdown is OffsetDateTime/Duration, both API 26. Checked
|
|
# 2026-08-28 against Google Maven.
|
|
desugar-jdk-libs = "2.1.5"
|
|
|
|
[libraries]
|
|
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activityCompose" }
|
|
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx-core-ktx" }
|
|
# In-app QR scanner: a ready-made scanning Activity (camera preview, runtime
|
|
# permission prompt, flashlight toggle) reached through the AndroidX Activity
|
|
# Result API (ScanContract, added in 4.3.0). Fully offline -- no Play
|
|
# Services / ML Kit model download involved.
|
|
zxing-embedded = { module = "com.journeyapps:zxing-android-embedded", version.ref = "zxing-embedded" }
|
|
desugar-jdk-libs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugar-jdk-libs" }
|
|
# Declared directly rather than through the plugin's `compose.*` accessors,
|
|
# which are deprecated as of CMP 1.11.
|
|
compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "compose-multiplatform" }
|
|
compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "compose-multiplatform" }
|
|
compose-material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "compose-material3" }
|
|
compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "compose-multiplatform" }
|
|
|
|
[plugins]
|
|
androidApplication = { id = "com.android.application", version.ref = "agp" }
|
|
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }
|
|
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|