[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.Bundle
import android.provider.Settings
import android.view.View
import androidx.annotation.RequiresApi
import androidx.core.text.HtmlCompat
import androidx.core.view.isVisible
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.VersionUtils
import code.name.monkey.retromusic.activities.base.AbsMusicServiceActivity
@ -84,12 +84,12 @@ class PermissionActivity : AbsMusicServiceActivity() {
@RequiresApi(Build.VERSION_CODES.M)
override fun onResume() {
if (hasStoragePermission()) {
binding.storagePermission.checkImage.visibility = View.VISIBLE
binding.storagePermission.checkImage.isVisible = true
binding.storagePermission.checkImage.imageTintList =
ColorStateList.valueOf(ThemeStore.accentColor(this))
}
if (hasAudioPermission()) {
binding.audioPermission.checkImage.visibility = View.VISIBLE
binding.audioPermission.checkImage.isVisible = true
binding.audioPermission.checkImage.imageTintList =
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.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.graphics.drawable.Drawable
import android.os.Bundle
import android.view.View
@ -115,18 +116,17 @@ class BlurPlayerFragment : AbsPlayerFragment(R.layout.fragment_blur),
// https://github.com/bumptech/glide/issues/527#issuecomment-148840717
GlideApp.with(this)
.load(RetroGlideExtension.getSongModel(MusicPlayerRemote.currentSong))
.songCoverOptions(MusicPlayerRemote.currentSong).apply {
thumbnail(lastRequest)
.crossfadeListener()
.simpleSongCoverOptions(MusicPlayerRemote.currentSong)
.transform(
BlurTransformation.Builder(requireContext())
.blurRadius(blurAmount.toFloat())
BlurTransformation.Builder(requireContext()).blurRadius(blurAmount.toFloat())
.build()
)
).thumbnail(lastRequest)
.error(GlideApp.with(this).load(ColorDrawable(Color.DKGRAY)).fitCenter())
.also {
lastRequest = it.clone()
it.crossfadeListener()
.into(binding.colorBackground)
lastRequest = this
}
}
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
GlideApp.with(this)
.load(RetroGlideExtension.getSongModel(MusicPlayerRemote.currentSong))
.songCoverOptions(MusicPlayerRemote.currentSong).apply {
thumbnail(lastRequest)
.crossfadeListener()
.simpleSongCoverOptions(MusicPlayerRemote.currentSong)
.transform(
BlurTransformation.Builder(requireContext())
.blurRadius(blurAmount.toFloat())
BlurTransformation.Builder(requireContext()).blurRadius(blurAmount.toFloat())
.build()
)
.thumbnail(lastRequest).also {
lastRequest = it.clone()
it.crossfadeListener()
.into(binding.colorBackground)
lastRequest = this
}
}

View file

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

View file

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