Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.kylecorry.trail_sense.shared.map_layers.tiles.infrastructure.persistance

import android.content.Context
import androidx.work.CoroutineWorker
import androidx.work.WorkerParameters
import com.kylecorry.andromeda.background.IOneTimeTaskScheduler
import com.kylecorry.andromeda.background.OneTimeTaskSchedulerFactory

class CachedTileCleanupWorker(
private val context: Context,
params: WorkerParameters
) : CoroutineWorker(context, params) {

override suspend fun doWork(): Result {
return try {
CachedTileRepo.getInstance(context).clean()
Result.success()
} catch (e: Exception) {
Result.failure()
}
}

companion object {
private const val UNIQUE_ID = 91420833

private fun getScheduler(context: Context): IOneTimeTaskScheduler {
return OneTimeTaskSchedulerFactory(context.applicationContext).deferrable(
CachedTileCleanupWorker::class.java,
UNIQUE_ID
)
}

fun start(context: Context) {
getScheduler(context).start()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ import java.util.UUID

class PersistentTileCache(context: Context) {

private val repo = CachedTileRepo.getInstance(context)
private val files = CacheFileSystem(context)
private val appContext = context.applicationContext
private val repo = CachedTileRepo.getInstance(appContext)
private val files = CacheFileSystem(appContext)
private val imageSaver = ImageSaver()

suspend fun getOrPut(key: String, tile: Tile, producer: suspend () -> Bitmap): Bitmap = onIO {
Expand All @@ -39,6 +40,7 @@ class PersistentTileCache(context: Context) {
val totalSize = repo.getTotalSizeBytes()
if (totalSize > MAX_CACHE_SIZE_BYTES) {
repo.deleteLeastRecentlyUsed(EVICTION_COUNT)
CachedTileCleanupWorker.start(appContext)
}

bitmap
Expand Down