diff --git a/app/src/main/java/org/oxycblt/auxio/image/stack/extractor/AOSPCoverSource.kt b/app/src/main/java/org/oxycblt/auxio/image/stack/extractor/AOSPCoverSource.kt index 87fe72171..688476128 100644 --- a/app/src/main/java/org/oxycblt/auxio/image/stack/extractor/AOSPCoverSource.kt +++ b/app/src/main/java/org/oxycblt/auxio/image/stack/extractor/AOSPCoverSource.kt @@ -18,19 +18,22 @@ package org.oxycblt.auxio.image.stack.extractor +import android.content.Context import android.media.MediaMetadataRetriever import android.net.Uri +import dagger.hilt.android.qualifiers.ApplicationContext import java.io.InputStream import javax.inject.Inject import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext -class AOSPCoverSource @Inject constructor() : CoverSource { +class AOSPCoverSource @Inject constructor(@ApplicationContext private val context: Context) : + CoverSource { override suspend fun extract(fileUri: Uri): InputStream? { val mediaMetadataRetriever = MediaMetadataRetriever() val cover = withContext(Dispatchers.IO) { - mediaMetadataRetriever.setDataSource(fileUri.toString()) + mediaMetadataRetriever.setDataSource(context, fileUri) mediaMetadataRetriever.embeddedPicture } ?: return null return cover.inputStream() diff --git a/app/src/main/java/org/oxycblt/auxio/image/stack/extractor/ExtractorModule.kt b/app/src/main/java/org/oxycblt/auxio/image/stack/extractor/ExtractorModule.kt index a74062e9f..326c5df79 100644 --- a/app/src/main/java/org/oxycblt/auxio/image/stack/extractor/ExtractorModule.kt +++ b/app/src/main/java/org/oxycblt/auxio/image/stack/extractor/ExtractorModule.kt @@ -35,5 +35,5 @@ interface ExtractorModule { class CoverSourcesModule { @Provides fun coverSources(exoPlayerCoverSource: ExoPlayerCoverSource, aospCoverSource: AOSPCoverSource) = - CoverSources(listOf(exoPlayerCoverSource, aospCoverSource)) + CoverSources(listOf(aospCoverSource, exoPlayerCoverSource)) } diff --git a/app/src/main/java/org/oxycblt/auxio/music/stack/interpret/model/DeviceMusicImpl.kt b/app/src/main/java/org/oxycblt/auxio/music/stack/interpret/model/DeviceMusicImpl.kt index e0af9e218..e004fb035 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/stack/interpret/model/DeviceMusicImpl.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/stack/interpret/model/DeviceMusicImpl.kt @@ -93,7 +93,7 @@ class AlbumImpl(linkedAlbum: LinkedAlbum) : Album { override val releaseType = preAlbum.releaseType override var durationMs = 0L override var dateAdded = 0L - override var cover = Cover.nil() + override var cover: Cover = Cover.nil() override var dates: Date.Range? = null override val artists = linkedAlbum.artists.resolve(this) @@ -123,7 +123,9 @@ class AlbumImpl(linkedAlbum: LinkedAlbum) : Album { } } - fun finalize() {} + fun finalize() { + cover = Cover.single(Sort(Sort.Mode.ByTrack, Sort.Direction.ASCENDING).songs(songs).first()) + } } /**