2018-12-21 04:09:07 +00:00
|
|
|
package com.adlerosn.brasilfurfest.schedule.managers
|
|
|
|
|
|
|
|
import android.content.Context
|
2019-06-22 04:04:57 +00:00
|
|
|
import java.io.File
|
2018-12-21 04:09:07 +00:00
|
|
|
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
|
2019-06-22 04:04:57 +00:00
|
|
|
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) {
|
2019-06-22 04:04:57 +00:00
|
|
|
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)
|
2018-12-28 04:26:22 +00:00
|
|
|
}
|
2018-12-21 04:09:07 +00:00
|
|
|
}
|