From 1f089ffdf08a2f3bd4cd019957c5adef39ca67c8 Mon Sep 17 00:00:00 2001 From: theov Date: Tue, 9 Jun 2026 00:56:50 -0300 Subject: [PATCH] Optimize artwork loading and update URI authority checks --- .../pixelplay/data/service/MusicService.kt | 6 +++++- .../theveloper/pixelplay/utils/MediaItemBuilder.kt | 12 ------------ 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/theveloper/pixelplay/data/service/MusicService.kt b/app/src/main/java/com/theveloper/pixelplay/data/service/MusicService.kt index b14fb6710..a31a464c7 100644 --- a/app/src/main/java/com/theveloper/pixelplay/data/service/MusicService.kt +++ b/app/src/main/java/com/theveloper/pixelplay/data/service/MusicService.kt @@ -2664,9 +2664,13 @@ class MusicService : MediaLibraryService() { if (targetPackage.isBlank()) return val providerAuthority = "$packageName.provider" + val artworkAuthority = "$packageName.artwork" mediaItems.forEach { mediaItem -> val artworkUri = resolveArtworkUri(mediaItem.mediaMetadata) ?: return@forEach - if (artworkUri.scheme?.lowercase() != "content" || artworkUri.authority != providerAuthority) { + val authority = artworkUri.authority + if (artworkUri.scheme?.lowercase() != "content" || + (authority != providerAuthority && authority != artworkAuthority) + ) { return@forEach } diff --git a/app/src/main/java/com/theveloper/pixelplay/utils/MediaItemBuilder.kt b/app/src/main/java/com/theveloper/pixelplay/utils/MediaItemBuilder.kt index bd9ed2b26..48a8e1bce 100644 --- a/app/src/main/java/com/theveloper/pixelplay/utils/MediaItemBuilder.kt +++ b/app/src/main/java/com/theveloper/pixelplay/utils/MediaItemBuilder.kt @@ -13,10 +13,7 @@ import androidx.media3.common.MediaMetadata.PICTURE_TYPE_FRONT_COVER import androidx.media3.common.util.UnstableApi import com.theveloper.pixelplay.data.provider.SharedArtworkContentProvider import com.theveloper.pixelplay.data.model.Song -import com.theveloper.pixelplay.data.service.loadArtworkBytesViaCoil import java.io.File -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.runBlocking object MediaItemBuilder { private const val EXTERNAL_MEDIA_ID_PREFIX = "external:" @@ -123,7 +120,6 @@ object MediaItemBuilder { .setMediaMetadata( buildMediaMetadataForSong( song = song, - context = context, exposedArtworkUri = externalControllerArtworkUri(context, song.albumArtUriString) ) ) @@ -276,7 +272,6 @@ object MediaItemBuilder { @OptIn(UnstableApi::class) private fun buildMediaMetadataForSong( song: Song, - context: Context? = null, exposedArtworkUri: Uri? = artworkUri(song.albumArtUriString) ): MediaMetadata { val metadataBuilder = MediaMetadata.Builder() @@ -286,13 +281,6 @@ object MediaItemBuilder { exposedArtworkUri?.let { artworkUri -> metadataBuilder.setArtworkUri(artworkUri) - context?.let { appContext -> - runBlocking(Dispatchers.IO) { - loadArtworkBytesViaCoil(appContext, artworkUri) - }?.let { artworkData -> - metadataBuilder.setArtworkData(artworkData, PICTURE_TYPE_FRONT_COVER) - } - } } val extras = Bundle().apply {