mirror of
https://github.com/cmclark00/RetroMusicPlayer.git
synced 2025-05-20 17:15:21 +01:00
Added CrossFade effect to Blur, Blur Card & Circle player
This commit is contained in:
parent
4d31c4ccc3
commit
c919033a2c
4 changed files with 84 additions and 44 deletions
|
@ -1,8 +1,10 @@
|
|||
package code.name.monkey.retromusic.glide
|
||||
|
||||
import android.graphics.drawable.Drawable
|
||||
import androidx.core.graphics.drawable.toDrawable
|
||||
import code.name.monkey.appthemehelper.ThemeStore.Companion.accentColor
|
||||
import code.name.monkey.appthemehelper.util.TintHelper
|
||||
import code.name.monkey.retromusic.App
|
||||
import code.name.monkey.retromusic.App.Companion.getContext
|
||||
import code.name.monkey.retromusic.Constants.USER_BANNER
|
||||
import code.name.monkey.retromusic.Constants.USER_PROFILE
|
||||
|
@ -23,9 +25,15 @@ import com.bumptech.glide.RequestBuilder
|
|||
import com.bumptech.glide.annotation.GlideExtension
|
||||
import com.bumptech.glide.annotation.GlideOption
|
||||
import com.bumptech.glide.annotation.GlideType
|
||||
import com.bumptech.glide.load.DataSource
|
||||
import com.bumptech.glide.load.Key
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||
import com.bumptech.glide.load.engine.GlideException
|
||||
import com.bumptech.glide.request.BaseRequestOptions
|
||||
import com.bumptech.glide.request.RequestListener
|
||||
import com.bumptech.glide.request.target.Target
|
||||
import com.bumptech.glide.request.transition.DrawableCrossFadeFactory
|
||||
import com.bumptech.glide.request.transition.Transition
|
||||
import com.bumptech.glide.signature.MediaStoreSignature
|
||||
import java.io.File
|
||||
|
||||
|
@ -194,4 +202,33 @@ object RetroGlideExtension {
|
|||
fun <TranscodeType> getDefaultTransition(): GenericTransitionOptions<TranscodeType> {
|
||||
return GenericTransitionOptions<TranscodeType>().transition(DEFAULT_ANIMATION)
|
||||
}
|
||||
}
|
||||
|
||||
// https://github.com/bumptech/glide/issues/527#issuecomment-148840717
|
||||
fun GlideRequest<Drawable>.crossfadeListener(): GlideRequest<Drawable> {
|
||||
return listener(object : RequestListener<Drawable> {
|
||||
override fun onLoadFailed(
|
||||
e: GlideException?,
|
||||
model: Any?,
|
||||
target: Target<Drawable>?,
|
||||
isFirstResource: Boolean
|
||||
): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
override fun onResourceReady(
|
||||
resource: Drawable?,
|
||||
model: Any?,
|
||||
target: Target<Drawable>?,
|
||||
dataSource: DataSource?,
|
||||
isFirstResource: Boolean
|
||||
): Boolean {
|
||||
return if (isFirstResource) {
|
||||
false // thumbnail was not shown, do as usual
|
||||
} else DrawableCrossFadeFactory.Builder()
|
||||
.setCrossFadeEnabled(true).build()
|
||||
.build(dataSource, isFirstResource)
|
||||
.transition(resource, target as Transition.ViewAdapter)
|
||||
}
|
||||
})
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue