34 commits since 4.6.0, 56 files, +4902/-365. Three areas that were diagnosed as broken and rebuilt: APRS beaconing, WaveLog upload, and the satellite data source URLs. The one that mattered most: 4.6.0 reported every APRS beacon as sent regardless of outcome, so nobody running it could tell whether their station had ever reached the network. That is fixed, and the login and refusal paths are verified against live APRS-IS servers - the old login line was malformed and euro.aprs2.net, noam.aprs2.net and rotate.aprs2.net all refused it, which the app read as success. WaveLog uploads now read the reply body. A rejected contact used to be marked uploaded and dropped from the queue, so the contact was lost while the screen said it went up. In-app release notes updated in the five locales that carry them. Turkish, Indonesian and Malay get the English text rather than the previous version's notes, which would otherwise describe the wrong release. What is NOT verified: no packet from this build has been confirmed on aprs.fi, and nothing about the foreground service, the Doze-proof alarm or any composable has been executed on a device - there is no emulator here. The transmit path needs a licensed callsign and a real passcode. A six-step checklist for that is in .hermes/plans/2026-08-26_aprs-verification-checklist.md.
117 lines
5.7 KiB
TOML
117 lines
5.7 KiB
TOML
[versions]
|
|
#noinspection UnusedVersionCatalogEntry
|
|
appVersionCode = "468"
|
|
#noinspection UnusedVersionCatalogEntry
|
|
appVersionName = "4.6.1"
|
|
#noinspection UnusedVersionCatalogEntry
|
|
compileSdk = "37"
|
|
#noinspection UnusedVersionCatalogEntry
|
|
minSdk = "24"
|
|
#noinspection UnusedVersionCatalogEntry
|
|
jdkVersion = "21"
|
|
#noinspection UnusedVersionCatalogEntry
|
|
packageName = "com.rtbishop.look4sat"
|
|
# Fork application ID: official app uses com.rtbishop.look4sat with a different
|
|
# signing cert. Installing a fork with the same applicationId would conflict
|
|
# with the official build (signature mismatch / cannot overwrite), so the fork
|
|
# ships under its own applicationId suffix.
|
|
applicationId = "com.rtbishop.look4sat.bg7nta"
|
|
|
|
android-gradle-plugin = "9.3.1"
|
|
|
|
androidx-core-ktx = "1.19.0"
|
|
androidx-core-splashscreen = "1.2.0"
|
|
androidx-room = "2.8.4"
|
|
|
|
compose-bom = "2026.06.01"
|
|
compose-activity = "1.13.0"
|
|
compose-lifecycle = "2.11.0"
|
|
compose-navigation3 = "1.1.5"
|
|
|
|
google-ksp = "2.3.8"
|
|
|
|
kotlin = "2.4.10"
|
|
kotlin-coroutines = "1.11.0"
|
|
kotlin-serialization = "1.11.0"
|
|
|
|
other-onnxruntime = "1.25.1"
|
|
other-okhttp = "5.4.0"
|
|
other-osmdroid = "6.1.20"
|
|
|
|
test-junit4 = "4.13.2"
|
|
|
|
androidTest-junit = "1.3.0"
|
|
androidTest-espresso = "3.7.0"
|
|
|
|
[libraries]
|
|
android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "android-gradle-plugin" }
|
|
#noinspection UnusedVersionCatalogEntry
|
|
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx-core-ktx" }
|
|
#noinspection UnusedVersionCatalogEntry
|
|
androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "androidx-core-splashscreen" }
|
|
#noinspection UnusedVersionCatalogEntry
|
|
androidx-room = { module = "androidx.room:room-ktx", version.ref = "androidx-room" }
|
|
#noinspection UnusedVersionCatalogEntry
|
|
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "androidx-room" }
|
|
#noinspection UnusedVersionCatalogEntry
|
|
androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "androidx-room" }
|
|
|
|
#noinspection UnusedVersionCatalogEntry
|
|
compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" }
|
|
compose-material3 = { group = "androidx.compose.material3", name = "material3" }
|
|
#noinspection UnusedVersionCatalogEntry
|
|
compose-material3-adaptive = { group = "androidx.compose.material3", name = "material3-adaptive-navigation-suite" }
|
|
compose-runtime = { group = "androidx.compose.runtime", name = "runtime" }
|
|
compose-tooling = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
|
|
|
|
compose-activity = { module = "androidx.activity:activity-compose", version.ref = "compose-activity" }
|
|
#noinspection UnusedVersionCatalogEntry
|
|
compose-navigation3 = { module = "androidx.navigation3:navigation3-ui", version.ref = "compose-navigation3" }
|
|
compose-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-navigation3", version.ref = "compose-lifecycle" }
|
|
|
|
compose-debug-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
|
|
compose-debug-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
|
|
|
|
#noinspection UnusedVersionCatalogEntry
|
|
kotlin-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlin-coroutines" }
|
|
kotlin-gradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
|
|
#noinspection UnusedVersionCatalogEntry
|
|
kotlin-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlin-serialization" }
|
|
|
|
#noinspection UnusedVersionCatalogEntry
|
|
other-onnxruntime = { module = "com.microsoft.onnxruntime:onnxruntime-android", version.ref = "other-onnxruntime" }
|
|
#noinspection UnusedVersionCatalogEntry
|
|
other-okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "other-okhttp" }
|
|
#noinspection UnusedVersionCatalogEntry
|
|
other-osmdroid = { module = "org.osmdroid:osmdroid-android", version.ref = "other-osmdroid" }
|
|
|
|
test-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlin-coroutines" }
|
|
test-junit4 = { module = "junit:junit", version.ref = "test-junit4" }
|
|
|
|
androidTest-junit = { module = "androidx.test.ext:junit", version.ref = "androidTest-junit" }
|
|
androidTest-espresso = { module = "androidx.test.espresso:espresso-core", version.ref = "androidTest-espresso" }
|
|
|
|
[plugins]
|
|
android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" }
|
|
android-library = { id = "com.android.library", version.ref = "android-gradle-plugin" }
|
|
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
|
google-ksp = { id = "com.google.devtools.ksp", version.ref = "google-ksp" }
|
|
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
|
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
|
# plugins defined by this project
|
|
convention-applicationPlugin = { id = "com.rtbishop.look4sat.convention.applicationPlugin" }
|
|
convention-coreDataPlugin = { id = "com.rtbishop.look4sat.convention.coreDataPlugin" }
|
|
convention-coreDomainPlugin = { id = "com.rtbishop.look4sat.convention.coreDomainPlugin" }
|
|
convention-corePresentationPlugin = { id = "com.rtbishop.look4sat.convention.corePresentationPlugin" }
|
|
convention-featurePlugin = { id = "com.rtbishop.look4sat.convention.featurePlugin" }
|
|
|
|
[bundles]
|
|
#noinspection UnusedVersionCatalogEntry
|
|
composeAll = ["compose-runtime", "compose-tooling", "compose-activity", "compose-material3", "compose-viewmodel"]
|
|
#noinspection UnusedVersionCatalogEntry
|
|
composeDebug = ["compose-debug-manifest", "compose-debug-tooling"]
|
|
#noinspection UnusedVersionCatalogEntry
|
|
unitTest = ["test-coroutines", "test-junit4"]
|
|
#noinspection UnusedVersionCatalogEntry
|
|
androidTest = ["androidTest-junit", "androidTest-espresso"]
|