diff --git a/app/src/main/java/com/geeksville/mesh/database/entity/FirmwareReleaseEntity.kt b/app/src/main/java/com/geeksville/mesh/database/entity/FirmwareReleaseEntity.kt index 68a962eb2..baf540a3f 100644 --- a/app/src/main/java/com/geeksville/mesh/database/entity/FirmwareReleaseEntity.kt +++ b/app/src/main/java/com/geeksville/mesh/database/entity/FirmwareReleaseEntity.kt @@ -20,6 +20,7 @@ package com.geeksville.mesh.database.entity import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey +import com.geeksville.mesh.model.DeviceVersion import com.geeksville.mesh.network.model.NetworkFirmwareRelease import kotlinx.serialization.Serializable @@ -73,6 +74,12 @@ data class FirmwareRelease( val releaseType: FirmwareReleaseType = FirmwareReleaseType.STABLE, ) +fun FirmwareReleaseEntity.asDeviceVersion(): DeviceVersion { + return DeviceVersion( + id.substringBeforeLast(".").replace("v", "") + ) +} + enum class FirmwareReleaseType { STABLE, ALPHA diff --git a/app/src/main/java/com/geeksville/mesh/repository/api/FirmwareReleaseLocalDataSource.kt b/app/src/main/java/com/geeksville/mesh/repository/api/FirmwareReleaseLocalDataSource.kt index 5094c6bbe..e015ba50f 100644 --- a/app/src/main/java/com/geeksville/mesh/repository/api/FirmwareReleaseLocalDataSource.kt +++ b/app/src/main/java/com/geeksville/mesh/repository/api/FirmwareReleaseLocalDataSource.kt @@ -20,6 +20,7 @@ package com.geeksville.mesh.repository.api import com.geeksville.mesh.database.dao.FirmwareReleaseDao import com.geeksville.mesh.database.entity.FirmwareReleaseEntity import com.geeksville.mesh.database.entity.FirmwareReleaseType +import com.geeksville.mesh.database.entity.asDeviceVersion import com.geeksville.mesh.database.entity.asEntity import com.geeksville.mesh.network.model.NetworkFirmwareRelease import dagger.Lazy @@ -52,7 +53,7 @@ class FirmwareReleaseLocalDataSource @Inject constructor( withContext(Dispatchers.IO) { val releases = firmwareReleaseDao.getReleasesByType(releaseType) val latestRelease = - releases?.firstOrNull() + releases?.maxBy { it.asDeviceVersion() } return@withContext latestRelease } }