conventionschedule-android/app/src/main/java/com/adlerosn/brasilfurfest/schedule/managers/CacheManager.kt

32 lines
1.1 KiB
Kotlin
Raw Normal View History

package com.adlerosn.brasilfurfest.schedule.managers
import android.content.Context
import java.io.File
import java.io.InputStream
import java.io.Serializable
2019-01-05 06:06:44 +00:00
abstract class CacheManager : Serializable {
abstract val goesOnline: Boolean
2019-04-29 19:25:23 +00:00
abstract val preloaded: Boolean
2019-01-05 06:06:44 +00:00
abstract fun getStamp(file: String): String?
abstract operator fun get(file: String): Pair<InputStream, String>?
abstract operator fun set(file: String, requestResult: Pair<ByteArray, String>)
abstract fun delete(file: String): Boolean
abstract fun sanitize(): Int
abstract val files: Set<String>
abstract fun startMonitoringNeededFiles()
abstract fun removeNotNeededFiles(): Int
abstract fun getFileFor(asset: String): File
2019-01-05 06:06:44 +00:00
companion object {
operator fun invoke(context: Context) =
2019-04-29 19:25:23 +00:00
if(RemoteAssets.onlineApp) {
if (RemoteAssets.preloaded)
2019-04-29 19:25:23 +00:00
OnlinePreloadedCacheManager(context)
else
OnlineCacheManager(context)
}
2019-01-05 06:06:44 +00:00
else
OfflineCacheManager(context)
}
}