28 lines
No EOL
947 B
Kotlin
28 lines
No EOL
947 B
Kotlin
package ani.dantotsu.media.anime
|
|
|
|
import android.content.Context
|
|
import androidx.media3.common.util.UnstableApi
|
|
import androidx.media3.database.StandaloneDatabaseProvider
|
|
import androidx.media3.datasource.cache.LeastRecentlyUsedCacheEvictor
|
|
import androidx.media3.datasource.cache.SimpleCache
|
|
import java.io.File
|
|
|
|
@UnstableApi
|
|
object VideoCache {
|
|
private var simpleCache: SimpleCache? = null
|
|
fun getInstance(context: Context): SimpleCache {
|
|
val databaseProvider = StandaloneDatabaseProvider(context)
|
|
if (simpleCache == null)
|
|
simpleCache = SimpleCache(
|
|
File(context.cacheDir, "exoplayer").also { it.deleteOnExit() }, // Ensures always fresh file
|
|
LeastRecentlyUsedCacheEvictor(300L * 1024L * 1024L),
|
|
databaseProvider
|
|
)
|
|
return simpleCache as SimpleCache
|
|
}
|
|
|
|
fun release() {
|
|
simpleCache?.release()
|
|
simpleCache = null
|
|
}
|
|
} |