[Glide] Fixed showing previous loaded covers for songs without covers
This commit is contained in:
parent
10ee02929b
commit
7b1f9cc1f3
5 changed files with 39 additions and 28 deletions
|
@ -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))
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
.transform(
|
||||
BlurTransformation.Builder(requireContext())
|
||||
.blurRadius(blurAmount.toFloat())
|
||||
.build()
|
||||
)
|
||||
.simpleSongCoverOptions(MusicPlayerRemote.currentSong)
|
||||
.transform(
|
||||
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() {
|
||||
|
|
|
@ -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()
|
||||
.transform(
|
||||
BlurTransformation.Builder(requireContext())
|
||||
.blurRadius(blurAmount.toFloat())
|
||||
.build()
|
||||
)
|
||||
.simpleSongCoverOptions(MusicPlayerRemote.currentSong)
|
||||
.transform(
|
||||
BlurTransformation.Builder(requireContext()).blurRadius(blurAmount.toFloat())
|
||||
.build()
|
||||
)
|
||||
.thumbnail(lastRequest).also {
|
||||
lastRequest = it.clone()
|
||||
it.crossfadeListener()
|
||||
.into(binding.colorBackground)
|
||||
lastRequest = this
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue