diff --git a/app/src/main/java/net/vonforst/evmap/storage/ChargeLocationsDao.kt b/app/src/main/java/net/vonforst/evmap/storage/ChargeLocationsDao.kt index db059216..a8614776 100644 --- a/app/src/main/java/net/vonforst/evmap/storage/ChargeLocationsDao.kt +++ b/app/src/main/java/net/vonforst/evmap/storage/ChargeLocationsDao.kt @@ -18,6 +18,7 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.cancel import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import net.vonforst.evmap.api.ChargepointApi import net.vonforst.evmap.api.ChargepointList import net.vonforst.evmap.api.StringProvider @@ -534,8 +535,14 @@ class ChargeLocationsRepository( val time = Instant.now() val result = api.fullDownload() try { - result.chargers.chunked(100).forEach { - chargeLocationsDao.insert(*it.toTypedArray()) + var insertJob: Job? = null + result.chargers.chunked(1024).forEach { + insertJob?.join() + insertJob = withContext(Dispatchers.IO) { + scope.launch { + chargeLocationsDao.insert(*it.toTypedArray()) + } + } fullDownloadProgress.value = result.progress } val region = Mbr(