Skip to content

Commit 1cac1d5

Browse files
committed
fix: upsert photo maps returning -1
Signed-off-by: Kyle Corry <kylecorry31@gmail.com>
1 parent 3a71e05 commit 1cac1d5

4 files changed

Lines changed: 15 additions & 6 deletions

File tree

app/src/main/java/com/kylecorry/trail_sense/shared/Extensions.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,4 +195,10 @@ fun <T> List<T>.padRight(minLength: Int, value: T): List<T> {
195195
}
196196
}
197197

198-
198+
fun Long.getUpsertedId(originalId: Long): Long {
199+
return if (this == -1L) {
200+
originalId
201+
} else {
202+
this
203+
}
204+
}

app/src/main/java/com/kylecorry/trail_sense/shared/map_layers/tiles/infrastructure/persistance/CachedTileRepo.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import com.kylecorry.andromeda.files.CacheFileSystem
66
import com.kylecorry.luna.coroutines.onIO
77
import com.kylecorry.trail_sense.main.persistence.AppDatabase
88
import com.kylecorry.trail_sense.main.persistence.ICleanable
9+
import com.kylecorry.trail_sense.shared.getUpsertedId
910
import com.kylecorry.trail_sense.shared.map_layers.tiles.Tile
1011
import java.time.Duration
1112
import java.time.Instant
@@ -20,7 +21,7 @@ class CachedTileRepo private constructor(context: Context) : ICleanable {
2021
}
2122

2223
suspend fun add(cachedTile: CachedTile): Long = onIO {
23-
dao.upsert(CachedTileEntity.from(cachedTile))
24+
dao.upsert(CachedTileEntity.from(cachedTile)).getUpsertedId(cachedTile.id)
2425
}
2526

2627
suspend fun delete(cachedTile: CachedTile) = onIO {

app/src/main/java/com/kylecorry/trail_sense/tools/field_guide/infrastructure/FieldGuideRepo.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
44
import android.content.Context
55
import com.kylecorry.luna.coroutines.onIO
66
import com.kylecorry.trail_sense.main.persistence.AppDatabase
7+
import com.kylecorry.trail_sense.shared.getUpsertedId
78
import com.kylecorry.trail_sense.shared.io.FileSubsystem
89
import com.kylecorry.trail_sense.tools.field_guide.domain.FieldGuidePage
910
import com.kylecorry.trail_sense.tools.field_guide.domain.Sighting
@@ -52,11 +53,11 @@ class FieldGuideRepo private constructor(private val context: Context) {
5253
}
5354

5455
val entity = FieldGuidePageEntity.fromFieldGuidePage(page)
55-
pageDao.upsert(entity)
56+
pageDao.upsert(entity).getUpsertedId(page.id)
5657
}
5758

5859
suspend fun addSighting(sighting: Sighting): Long = onIO {
59-
sightingDao.upsert(FieldGuideSightingEntity.fromSighting(sighting))
60+
sightingDao.upsert(FieldGuideSightingEntity.fromSighting(sighting)).getUpsertedId(sighting.id)
6061
}
6162

6263
suspend fun getSighting(id: Long): Sighting? = onIO {

app/src/main/java/com/kylecorry/trail_sense/tools/offline_maps/infrastructure/persistence/MapRepo.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.kylecorry.andromeda.core.tryOrNothing
99
import com.kylecorry.luna.coroutines.ParallelCoroutineRunner
1010
import com.kylecorry.trail_sense.main.getAppService
1111
import com.kylecorry.trail_sense.main.persistence.AppDatabase
12+
import com.kylecorry.trail_sense.shared.getUpsertedId
1213
import com.kylecorry.trail_sense.shared.io.FileSubsystem
1314
import com.kylecorry.trail_sense.shared.map_layers.tiles.infrastructure.persistance.PersistentTileCache
1415
import com.kylecorry.trail_sense.tools.offline_maps.domain.groups.MapGroup
@@ -74,13 +75,13 @@ class MapRepo private constructor(context: Context) {
7475
}
7576

7677
suspend fun add(map: PhotoMap): Long = onIO {
77-
val newId = photoMapDao.upsert(PhotoMapEntity.from(map))
78+
val newId = photoMapDao.upsert(PhotoMapEntity.from(map)).getUpsertedId(map.id)
7879
invalidatePhotoMapCache(newId)
7980
newId
8081
}
8182

8283
suspend fun add(file: VectorMap): Long = onIO {
83-
offlineMapFileDao.upsert(VectorMapEntity.from(file))
84+
offlineMapFileDao.upsert(VectorMapEntity.from(file)).getUpsertedId(file.id)
8485
}
8586

8687
suspend fun getPhotoMaps(parentId: Long?): List<PhotoMap> = onIO {

0 commit comments

Comments
 (0)