[Glide] Fixed showing previous loaded covers for songs without covers

This commit is contained in:
Prathamesh More 2021-12-18 12:28:18 +05:30
parent 10ee02929b
commit 7b1f9cc1f3
5 changed files with 39 additions and 28 deletions

View file

@ -22,9 +22,9 @@ import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.provider.Settings import android.provider.Settings
import android.view.View
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.core.text.HtmlCompat import androidx.core.text.HtmlCompat
import androidx.core.view.isVisible
import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.appthemehelper.util.VersionUtils
import code.name.monkey.retromusic.activities.base.AbsMusicServiceActivity import code.name.monkey.retromusic.activities.base.AbsMusicServiceActivity
@ -84,12 +84,12 @@ class PermissionActivity : AbsMusicServiceActivity() {
@RequiresApi(Build.VERSION_CODES.M) @RequiresApi(Build.VERSION_CODES.M)
override fun onResume() { override fun onResume() {
if (hasStoragePermission()) { if (hasStoragePermission()) {
binding.storagePermission.checkImage.visibility = View.VISIBLE binding.storagePermission.checkImage.isVisible = true
binding.storagePermission.checkImage.imageTintList = binding.storagePermission.checkImage.imageTintList =
ColorStateList.valueOf(ThemeStore.accentColor(this)) ColorStateList.valueOf(ThemeStore.accentColor(this))
} }
if (hasAudioPermission()) { if (hasAudioPermission()) {
binding.audioPermission.checkImage.visibility = View.VISIBLE binding.audioPermission.checkImage.isVisible = true
binding.audioPermission.checkImage.imageTintList = binding.audioPermission.checkImage.imageTintList =
ColorStateList.valueOf(ThemeStore.accentColor(this)) ColorStateList.valueOf(ThemeStore.accentColor(this))
} }

View file

@ -16,6 +16,7 @@ package code.name.monkey.retromusic.fragments.player.blur
import android.content.SharedPreferences import android.content.SharedPreferences
import android.graphics.Color import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
@ -115,18 +116,17 @@ class BlurPlayerFragment : AbsPlayerFragment(R.layout.fragment_blur),
// https://github.com/bumptech/glide/issues/527#issuecomment-148840717 // https://github.com/bumptech/glide/issues/527#issuecomment-148840717
GlideApp.with(this) GlideApp.with(this)
.load(RetroGlideExtension.getSongModel(MusicPlayerRemote.currentSong)) .load(RetroGlideExtension.getSongModel(MusicPlayerRemote.currentSong))
.songCoverOptions(MusicPlayerRemote.currentSong).apply { .simpleSongCoverOptions(MusicPlayerRemote.currentSong)
thumbnail(lastRequest)
.crossfadeListener()
.transform( .transform(
BlurTransformation.Builder(requireContext()) BlurTransformation.Builder(requireContext()).blurRadius(blurAmount.toFloat())
.blurRadius(blurAmount.toFloat())
.build() .build()
) ).thumbnail(lastRequest)
.error(GlideApp.with(this).load(ColorDrawable(Color.DKGRAY)).fitCenter())
.also {
lastRequest = it.clone()
it.crossfadeListener()
.into(binding.colorBackground) .into(binding.colorBackground)
lastRequest = this
} }
} }
override fun onServiceConnected() { override fun onServiceConnected() {

View file

@ -138,16 +138,15 @@ class CardBlurFragment : AbsPlayerFragment(R.layout.fragment_card_blur_player),
// https://github.com/bumptech/glide/issues/527#issuecomment-148840717 // https://github.com/bumptech/glide/issues/527#issuecomment-148840717
GlideApp.with(this) GlideApp.with(this)
.load(RetroGlideExtension.getSongModel(MusicPlayerRemote.currentSong)) .load(RetroGlideExtension.getSongModel(MusicPlayerRemote.currentSong))
.songCoverOptions(MusicPlayerRemote.currentSong).apply { .simpleSongCoverOptions(MusicPlayerRemote.currentSong)
thumbnail(lastRequest)
.crossfadeListener()
.transform( .transform(
BlurTransformation.Builder(requireContext()) BlurTransformation.Builder(requireContext()).blurRadius(blurAmount.toFloat())
.blurRadius(blurAmount.toFloat())
.build() .build()
) )
.thumbnail(lastRequest).also {
lastRequest = it.clone()
it.crossfadeListener()
.into(binding.colorBackground) .into(binding.colorBackground)
lastRequest = this
} }
} }

View file

@ -243,14 +243,14 @@ class CirclePlayerFragment : AbsPlayerFragment(R.layout.fragment_circle_player),
} }
GlideApp.with(this) GlideApp.with(this)
.load(RetroGlideExtension.getSongModel(MusicPlayerRemote.currentSong)) .load(RetroGlideExtension.getSongModel(MusicPlayerRemote.currentSong))
.songCoverOptions(MusicPlayerRemote.currentSong).apply { .simpleSongCoverOptions(MusicPlayerRemote.currentSong)
thumbnail(lastRequest) .thumbnail(lastRequest)
.crossfadeListener() .error(GlideApp.with(this).load(R.drawable.default_audio_art).fitCenter())
.fitCenter() .fitCenter().also {
lastRequest = it.clone()
it.crossfadeListener()
.into(binding.albumCover) .into(binding.albumCover)
lastRequest = this
} }
} }
private fun updatePlayPauseDrawableState() { private fun updatePlayPauseDrawableState() {

View file

@ -1,5 +1,7 @@
package code.name.monkey.retromusic.glide package code.name.monkey.retromusic.glide
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import androidx.core.graphics.drawable.toDrawable import androidx.core.graphics.drawable.toDrawable
import code.name.monkey.appthemehelper.ThemeStore.Companion.accentColor import code.name.monkey.appthemehelper.ThemeStore.Companion.accentColor
@ -124,6 +126,16 @@ object RetroGlideExtension {
.signature(createSignature(song)) .signature(createSignature(song))
} }
@JvmStatic
@GlideOption
fun simpleSongCoverOptions(
baseRequestOptions: BaseRequestOptions<*>,
song: Song
): BaseRequestOptions<*> {
return baseRequestOptions.diskCacheStrategy(DEFAULT_DISK_CACHE_STRATEGY)
.signature(createSignature(song))
}
@JvmStatic @JvmStatic
@GlideOption @GlideOption
fun albumCoverOptions( fun albumCoverOptions(