Do proper cache organization
This commit is contained in:
parent
996dbb4de1
commit
784c941938
|
@ -20,7 +20,7 @@ class MainApplication : Application(), ImageLoaderFactory {
|
|||
.crossfade(true)
|
||||
.diskCache(
|
||||
DiskCache.Builder()
|
||||
.directory(filesDir.resolve("coil"))
|
||||
.directory(cacheDir.resolve("coil"))
|
||||
.maxSizeBytes(
|
||||
preferences.getEnum(
|
||||
coilDiskCacheMaxSizeKey,
|
||||
|
|
|
@ -28,6 +28,7 @@ import androidx.core.content.ContextCompat.startForegroundService
|
|||
import androidx.core.content.edit
|
||||
import androidx.core.content.getSystemService
|
||||
import androidx.core.net.toUri
|
||||
import androidx.core.text.isDigitsOnly
|
||||
import androidx.media3.common.AudioAttributes
|
||||
import androidx.media3.common.C
|
||||
import androidx.media3.common.MediaItem
|
||||
|
@ -181,7 +182,23 @@ class PlayerService : InvincibleService(), Player.Listener, PlaybackStatsListene
|
|||
else -> LeastRecentlyUsedCacheEvictor(size.bytes)
|
||||
}
|
||||
|
||||
cache = SimpleCache(cacheDir, cacheEvictor, StandaloneDatabaseProvider(this))
|
||||
// TODO: Remove in a future release
|
||||
val directory = cacheDir.resolve("exoplayer").also { directory ->
|
||||
if (directory.exists()) return@also
|
||||
|
||||
directory.mkdir()
|
||||
|
||||
cacheDir.listFiles()?.forEach { file ->
|
||||
if (file.isDirectory && file.name.length == 1 && file.name.isDigitsOnly() || file.extension == "uid") {
|
||||
if (!file.renameTo(directory.resolve(file.name))) {
|
||||
file.deleteRecursively()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
filesDir.resolve("coil").deleteRecursively()
|
||||
}
|
||||
cache = SimpleCache(directory, cacheEvictor, StandaloneDatabaseProvider(this))
|
||||
|
||||
player = ExoPlayer.Builder(this, createRendersFactory(), createMediaSourceFactory())
|
||||
.setHandleAudioBecomingNoisy(true)
|
||||
|
|
|
@ -22,12 +22,10 @@ import androidx.compose.ui.Alignment
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.layout.ContentScale
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.media3.common.MediaItem
|
||||
import coil.compose.AsyncImage
|
||||
import coil.request.ImageRequest
|
||||
import it.vfsfitvnm.vimusic.enums.ThumbnailRoundness
|
||||
import it.vfsfitvnm.vimusic.models.DetailedSong
|
||||
import it.vfsfitvnm.vimusic.ui.components.LocalMenuState
|
||||
|
@ -50,10 +48,7 @@ fun SongItem(
|
|||
trailingContent: (@Composable () -> Unit)? = null
|
||||
) {
|
||||
SongItem(
|
||||
thumbnailModel = ImageRequest.Builder(LocalContext.current)
|
||||
.diskCacheKey(mediaItem.mediaId)
|
||||
.data(mediaItem.mediaMetadata.artworkUri.thumbnail(thumbnailSize))
|
||||
.build(),
|
||||
thumbnailModel = mediaItem.mediaMetadata.artworkUri.thumbnail(thumbnailSize),
|
||||
title = mediaItem.mediaMetadata.title!!.toString(),
|
||||
authors = mediaItem.mediaMetadata.artist.toString(),
|
||||
durationText = mediaItem.mediaMetadata.extras?.getString("durationText") ?: "?",
|
||||
|
|
Loading…
Reference in a new issue