Use Ktor/Ktorfit for API calls (#3122)

This commit is contained in:
Phil Oliver 2025-09-16 14:45:59 -04:00 committed by GitHub
parent d600d182b5
commit bec5dac9d4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 173 additions and 217 deletions

View file

@ -25,7 +25,6 @@ import com.geeksville.mesh.model.DeviceHardware
import com.geeksville.mesh.network.DeviceHardwareRemoteDataSource
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import java.io.IOException
import java.util.concurrent.TimeUnit
import javax.inject.Inject
import javax.inject.Singleton
@ -69,8 +68,7 @@ constructor(
// 2. Fetch from remote API
runCatching {
debug("Fetching device hardware from remote API.")
val remoteHardware =
remoteDataSource.getAllDeviceHardware() ?: throw IOException("Empty response from server")
val remoteHardware = remoteDataSource.getAllDeviceHardware()
localDataSource.insertAllDeviceHardware(remoteHardware)
localDataSource.getByHwModel(hwModel)?.asExternalModel()

View file

@ -26,7 +26,6 @@ import com.geeksville.mesh.database.entity.asExternalModel
import com.geeksville.mesh.network.FirmwareReleaseRemoteDataSource
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
import java.io.IOException
import java.util.concurrent.TimeUnit
import javax.inject.Inject
import javax.inject.Singleton
@ -99,8 +98,7 @@ constructor(
val remoteFetchSuccess =
runCatching {
debug("Fetching fresh firmware releases from remote API.")
val networkReleases =
remoteDataSource.getFirmwareReleases() ?: throw IOException("Empty response from server")
val networkReleases = remoteDataSource.getFirmwareReleases()
// The API fetches all release types, so we cache them all at once.
localDataSource.insertFirmwareReleases(networkReleases.releases.stable, FirmwareReleaseType.STABLE)