diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index bc01df9..9a5b76d 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -30,6 +30,15 @@ android {
}
}
+ signingConfigs {
+ create("release") {
+ storeFile = file("/keystore/varroa-release.keystore")
+ storePassword = "adacam-varroa-2026"
+ keyAlias = "varroa-release"
+ keyPassword = "adacam-varroa-2026"
+ }
+ }
+
buildTypes {
release {
isMinifyEnabled = false
diff --git a/app/src/main/java/com/adamaps/varroa/service/BeeCollectorService.kt b/app/src/main/java/com/adamaps/varroa/service/BeeCollectorService.kt
index 9708f7d..af427a0 100644
--- a/app/src/main/java/com/adamaps/varroa/service/BeeCollectorService.kt
+++ b/app/src/main/java/com/adamaps/varroa/service/BeeCollectorService.kt
@@ -202,36 +202,17 @@ class BeeCollectorService : LifecycleService() {
settingsStore.updateCachedDeviceId(deviceId)
Log.i(TAG, "Device ID retrieved via API: $deviceId (from ${if (result.data.deviceId != null) "deviceId" else if (result.data.serial != null) "serial" else "fallback"})")
} else {
- Log.w(TAG, "API returned unknown device ID, trying SSH fallback...")
- fetchDeviceIdViaSsh()
+ Log.w(TAG, "Device ID unknown from API, using cached or unknown")
}
}
is ApiResult.Error -> {
Log.e(TAG, "Failed to get device ID via API: ${result.message}, code: ${result.code}")
- Log.i(TAG, "Trying SSH fallback...")
- fetchDeviceIdViaSsh()
- }
- }
- }
-
- private suspend fun fetchDeviceIdViaSsh() {
- Log.d(TAG, "Attempting SSH fallback for device ID...")
- when (val result = beeClient.getDeviceIdViaSsh()) {
- is ApiResult.Success -> {
- val deviceId = result.data
- _currentDeviceId.value = deviceId
- // Update persistent cache
- settingsStore.updateCachedDeviceId(deviceId)
- Log.i(TAG, "Device ID retrieved via SSH: $deviceId")
- }
- is ApiResult.Error -> {
- Log.e(TAG, "Failed to get device ID via SSH: ${result.message}")
_currentDeviceId.value = "unknown"
}
}
}
-
private fun startPollLoop(intervalSeconds: Int) {
+
pollJob?.cancel()
Log.d(TAG, "Previous poll job cancelled")
pollJob = lifecycleScope.launch {
diff --git a/app/src/main/java/com/adamaps/varroa/ui/settings/DeviceStatusScreen.kt b/app/src/main/java/com/adamaps/varroa/ui/settings/DeviceStatusScreen.kt
index 0403e38..82da999 100644
--- a/app/src/main/java/com/adamaps/varroa/ui/settings/DeviceStatusScreen.kt
+++ b/app/src/main/java/com/adamaps/varroa/ui/settings/DeviceStatusScreen.kt
@@ -364,7 +364,7 @@ private fun StorageStatusCard(storage: StorageStatus) {
@Composable
private fun GnssStatusCard(gnss: GnssStatus?, hasLock: Boolean?) {
StatusCard("GPS / GNSS") {
- val hasGps = gnss?.hasLock == true || hasLock == true
+ val hasGps = gnss?.fix == true || hasLock == true
Row(verticalAlignment = Alignment.CenterVertically) {
Icon(
@@ -390,21 +390,21 @@ private fun GnssStatusCard(gnss: GnssStatus?, hasLock: Boolean?) {
Spacer(Modifier.height(4.dp))
StatusRow("HDOP", "%.2f".format(it), if (it > 5) Color.Yellow else OnSurface)
}
- if (gnss.lat != null && gnss.lon != null) {
+ if (gnss.latDeg != null && gnss.lonDeg != null) {
Spacer(Modifier.height(4.dp))
- StatusRow("Position", "%.5f, %.5f".format(gnss.lat, gnss.lon))
+ StatusRow("Position", "%.5f, %.5f".format(gnss.latDeg, gnss.lonDeg))
}
- gnss.alt?.let {
+ gnss.altM?.let {
Spacer(Modifier.height(4.dp))
StatusRow("Altitude", "%.1f m".format(it))
}
- gnss.speedKmh?.let {
+ gnss.speedMs?.let {
Spacer(Modifier.height(4.dp))
- StatusRow("Speed", "%.1f km/h".format(it))
+ StatusRow("Speed", "%.1f km/h".format(it * 3.6))
}
- gnss.lastFixAgeSec?.let {
+ gnss.unixMs?.let {
Spacer(Modifier.height(4.dp))
- StatusRow("Last Fix", "${it}s ago", if (it > 30) Color.Yellow else OnSurface)
+ val ageMs = System.currentTimeMillis() - it; val ageSec = (ageMs / 1000).toInt(); StatusRow("Last Fix", "${ageSec}s ago", if (ageSec > 30) Color.Yellow else OnSurface)
}
}
}
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
index fdc2db5..f777e22 100644
--- a/app/src/main/res/drawable/ic_launcher_background.xml
+++ b/app/src/main/res/drawable/ic_launcher_background.xml
@@ -1,2 +1,4 @@
-
+
+
+
diff --git a/app/src/main/res/drawable/ic_launcher_foreground.png b/app/src/main/res/drawable/ic_launcher_foreground.png
index b5b7306..29254bf 100644
Binary files a/app/src/main/res/drawable/ic_launcher_foreground.png and b/app/src/main/res/drawable/ic_launcher_foreground.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
index f887120..8f88f75 100644
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
index f887120..8f88f75 100644
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
index 6b96a97..2a38a94 100644
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
index 6b96a97..2a38a94 100644
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
index 22274ee..8b51cb4 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
index 22274ee..8b51cb4 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
index f5914ac..7f69984 100644
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
index f5914ac..7f69984 100644
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
index 9c81fa0..7c51289 100644
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
index 9c81fa0..7c51289 100644
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ