From ad87c72cd6201981821fb20b19da187d2825ef1f Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Sun, 12 Jun 2022 17:31:22 -0600 Subject: [PATCH] image: fix error on api 21 Fix an API 21-specific bug that could result in covers not loading when quality covers was enabled. This stemmed from a use of `use` on MediaMetadataRetriever, which relied on an interface not present on the class on API 21. --- app/src/main/java/org/oxycblt/auxio/MainActivity.kt | 4 ++-- app/src/main/java/org/oxycblt/auxio/image/BaseFetcher.kt | 9 +++------ .../main/java/org/oxycblt/auxio/music/IndexerService.kt | 2 -- .../org/oxycblt/auxio/music/backend/MediaStoreBackend.kt | 1 - app/src/main/res/values/integers.xml | 4 +++- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt index ddba5ec69..da665fb94 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt @@ -39,8 +39,8 @@ import org.oxycblt.auxio.util.logD /** * The single [AppCompatActivity] for Auxio. * - * TODO: Add crash reporting and error screens. This likely has to be an external activity, so it is - * blocked by eliminating exitProcess from the app. + * TODO: Add error screens. This likely has to be an external activity, so it is blocked by + * eliminating exitProcess from the app. * * TODO: Custom language support * diff --git a/app/src/main/java/org/oxycblt/auxio/image/BaseFetcher.kt b/app/src/main/java/org/oxycblt/auxio/image/BaseFetcher.kt index 2364f4998..efa31f0f9 100644 --- a/app/src/main/java/org/oxycblt/auxio/image/BaseFetcher.kt +++ b/app/src/main/java/org/oxycblt/auxio/image/BaseFetcher.kt @@ -114,18 +114,15 @@ abstract class BaseFetcher : Fetcher { } private fun fetchAospMetadataCovers(context: Context, album: Album): InputStream? { - // FIXME: Do not use use here, as Lollipop devices apparently do not have - // MediaMetadataRetriever implemented as AutoClosable. - - MediaMetadataRetriever().use { ext -> + MediaMetadataRetriever().apply { // This call is time-consuming but it also doesn't seem to hold up the main thread, // so it's probably fine not to wrap it. - ext.setDataSource(context, album.songs[0].uri) + setDataSource(context, album.songs[0].uri) // Get the embedded picture from MediaMetadataRetriever, which will return a full // ByteArray of the cover without any compression artifacts. // If its null [i.e there is no embedded cover], than just ignore it and move on - return ext.embeddedPicture?.let { coverBytes -> ByteArrayInputStream(coverBytes) } + return embeddedPicture?.let { ByteArrayInputStream(it) }.also { release() } } } diff --git a/app/src/main/java/org/oxycblt/auxio/music/IndexerService.kt b/app/src/main/java/org/oxycblt/auxio/music/IndexerService.kt index 7ec5ce89f..e5441fa64 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/IndexerService.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/IndexerService.kt @@ -42,8 +42,6 @@ import org.oxycblt.auxio.util.newMainPendingIntent * Loading music is actually somewhat time-consuming, to the point where it's likely better suited * to a service that is less likely to be * - * TODO: Rename all instances of loading in-app with indexing - * * @author OxygenCobalt */ class IndexerService : Service(), Indexer.Callback { diff --git a/app/src/main/java/org/oxycblt/auxio/music/backend/MediaStoreBackend.kt b/app/src/main/java/org/oxycblt/auxio/music/backend/MediaStoreBackend.kt index 73e06d63e..a1c6a6bc8 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/backend/MediaStoreBackend.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/backend/MediaStoreBackend.kt @@ -40,7 +40,6 @@ import org.oxycblt.auxio.music.queryCursor import org.oxycblt.auxio.music.useQuery import org.oxycblt.auxio.settings.SettingsManager import org.oxycblt.auxio.util.contentResolverSafe -import org.oxycblt.auxio.util.logW /* * This file acts as the base for most the black magic required to get a remotely sensible music diff --git a/app/src/main/res/values/integers.xml b/app/src/main/res/values/integers.xml index 9213cc925..26c4c8d7d 100644 --- a/app/src/main/res/values/integers.xml +++ b/app/src/main/res/values/integers.xml @@ -2,7 +2,9 @@ 150 - + @string/set_theme_auto