diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt index 8a5d75431..9a63bd49c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt @@ -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)) } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/blur/BlurPlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/blur/BlurPlayerFragment.kt index 6f9b3798d..675e85e4d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/blur/BlurPlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/blur/BlurPlayerFragment.kt @@ -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() { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurFragment.kt index dc78a10cd..f7161a0ec 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurFragment.kt @@ -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 } } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/circle/CirclePlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/circle/CirclePlayerFragment.kt index 1e68528bd..a7b3b8256 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/circle/CirclePlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/circle/CirclePlayerFragment.kt @@ -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() { diff --git a/app/src/main/java/code/name/monkey/retromusic/glide/RetroGlideExtension.kt b/app/src/main/java/code/name/monkey/retromusic/glide/RetroGlideExtension.kt index e16971768..f8854828b 100644 --- a/app/src/main/java/code/name/monkey/retromusic/glide/RetroGlideExtension.kt +++ b/app/src/main/java/code/name/monkey/retromusic/glide/RetroGlideExtension.kt @@ -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(