From 1982ccd710d0ce458bd330c70edbc4996247a0d2 Mon Sep 17 00:00:00 2001 From: thomas Date: Mon, 14 Sep 2020 01:13:15 -0400 Subject: [PATCH 1/2] Album art fallback working --- .../retromusic/glide/ArtistGlideRequest.java | 2 +- .../glide/artistimage/ArtistImageLoader.kt | 27 ++++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/glide/ArtistGlideRequest.java b/app/src/main/java/code/name/monkey/retromusic/glide/ArtistGlideRequest.java index 4d9d2124..c11ffcc2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/glide/ArtistGlideRequest.java +++ b/app/src/main/java/code/name/monkey/retromusic/glide/ArtistGlideRequest.java @@ -62,7 +62,7 @@ public class ArtistGlideRequest { boolean hasCustomImage = CustomArtistImageUtil.Companion.getInstance(App.Companion.getContext()) .hasCustomArtistImage(artist); if (noCustomImage || !hasCustomImage) { - return requestManager.load(new ArtistImage(artist.getName())); + return requestManager.load(new ArtistImage(artist)); } else { return requestManager.load(CustomArtistImageUtil.getFile(artist)); } diff --git a/app/src/main/java/code/name/monkey/retromusic/glide/artistimage/ArtistImageLoader.kt b/app/src/main/java/code/name/monkey/retromusic/glide/artistimage/ArtistImageLoader.kt index 43d23120..8052705d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/glide/artistimage/ArtistImageLoader.kt +++ b/app/src/main/java/code/name/monkey/retromusic/glide/artistimage/ArtistImageLoader.kt @@ -14,7 +14,11 @@ package code.name.monkey.retromusic.glide.artistimage +import android.content.ContentResolver import android.content.Context +import androidx.core.net.toFile +import code.name.monkey.retromusic.repository.ArtistRepository +import code.name.monkey.retromusic.model.Artist import code.name.monkey.retromusic.model.Data import code.name.monkey.retromusic.network.DeezerService import code.name.monkey.retromusic.util.MusicUtil @@ -30,11 +34,20 @@ import com.bumptech.glide.load.model.stream.StreamModelLoader import okhttp3.Interceptor import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor +import java.io.File import java.io.IOException import java.io.InputStream import java.util.concurrent.TimeUnit -class ArtistImage(val artistName: String) +class ArtistImage { + val artist: Artist + val artistName: String + + constructor(artist: Artist) { + this.artist = artist + this.artistName = artist.name + } +} class ArtistImageFetcher( private val context: Context, @@ -85,9 +98,12 @@ class ArtistImageFetcher( val glideUrl = GlideUrl(imageUrl) urlFetcher = urlLoader.getResourceFetcher(glideUrl, width, height) urlFetcher?.loadData(priority) - } else null + } else { + // Image not found by deezer. Use an album cover instead + getFallbackAlbumImage() + } } catch (e: Exception) { - null + getFallbackAlbumImage() } } else return null } @@ -102,6 +118,11 @@ class ArtistImageFetcher( else -> "" } } + + private fun getFallbackAlbumImage(): InputStream? { + val imageUri = MusicUtil.getMediaStoreAlbumCoverUri(model.artist.safeGetFirstAlbum().id) + return context.getContentResolver().openInputStream(imageUri) + } } class ArtistImageLoader( From 24f91a48dbe8c2d009d1c2d132a7025f23b6e1ab Mon Sep 17 00:00:00 2001 From: thomas Date: Mon, 14 Sep 2020 02:07:11 -0400 Subject: [PATCH 2/2] Removed unnecessary imports --- .../monkey/retromusic/glide/artistimage/ArtistImageLoader.kt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/glide/artistimage/ArtistImageLoader.kt b/app/src/main/java/code/name/monkey/retromusic/glide/artistimage/ArtistImageLoader.kt index 8052705d..f9992d12 100644 --- a/app/src/main/java/code/name/monkey/retromusic/glide/artistimage/ArtistImageLoader.kt +++ b/app/src/main/java/code/name/monkey/retromusic/glide/artistimage/ArtistImageLoader.kt @@ -14,10 +14,7 @@ package code.name.monkey.retromusic.glide.artistimage -import android.content.ContentResolver import android.content.Context -import androidx.core.net.toFile -import code.name.monkey.retromusic.repository.ArtistRepository import code.name.monkey.retromusic.model.Artist import code.name.monkey.retromusic.model.Data import code.name.monkey.retromusic.network.DeezerService @@ -34,7 +31,6 @@ import com.bumptech.glide.load.model.stream.StreamModelLoader import okhttp3.Interceptor import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor -import java.io.File import java.io.IOException import java.io.InputStream import java.util.concurrent.TimeUnit