mirror of
https://github.com/ultrasonic/ultrasonic
synced 2025-02-28 01:17:44 +01:00
Provide configuration for image load request.
Signed-off-by: Yahor Berdnikau <egorr.berd@gmail.com>
This commit is contained in:
parent
c23420a83a
commit
c0b6500b47
@ -6,15 +6,46 @@ import com.squareup.picasso.Picasso
|
||||
import org.moire.ultrasonic.api.subsonic.SubsonicAPIClient
|
||||
|
||||
class SubsonicImageLoader(
|
||||
private val context: Context,
|
||||
context: Context,
|
||||
apiClient: SubsonicAPIClient
|
||||
) {
|
||||
private val picasso = Picasso.Builder(context)
|
||||
.addRequestHandler(CoverArtRequestHandler(apiClient))
|
||||
.build().apply { setIndicatorsEnabled(BuildConfig.DEBUG) }
|
||||
|
||||
fun loadCoverArt(entityId: String, view: ImageView) {
|
||||
picasso.load(createLoadCoverArtRequest(entityId))
|
||||
.into(view)
|
||||
fun load(request: ImageRequest) = when (request) {
|
||||
is ImageRequest.CoverArt -> loadCoverArt(request)
|
||||
}
|
||||
|
||||
private fun loadCoverArt(request: ImageRequest.CoverArt) {
|
||||
picasso.load(createLoadCoverArtRequest(request.entityId))
|
||||
.apply {
|
||||
if (request.placeHolderDrawableRes != null) {
|
||||
placeholder(request.placeHolderDrawableRes)
|
||||
}
|
||||
}
|
||||
.apply {
|
||||
if (request.errorDrawableRes != null) {
|
||||
error(request.errorDrawableRes)
|
||||
}
|
||||
}
|
||||
.into(request.imageView)
|
||||
}
|
||||
}
|
||||
|
||||
sealed class ImageRequest(
|
||||
val placeHolderDrawableRes: Int? = null,
|
||||
val errorDrawableRes: Int? = null,
|
||||
val imageView: ImageView
|
||||
) {
|
||||
class CoverArt(
|
||||
val entityId: String,
|
||||
imageView: ImageView,
|
||||
placeHolderDrawableRes: Int? = null,
|
||||
errorDrawableRes: Int? = null
|
||||
) : ImageRequest(
|
||||
placeHolderDrawableRes,
|
||||
errorDrawableRes,
|
||||
imageView
|
||||
)
|
||||
}
|
||||
|
@ -2,7 +2,9 @@ package org.moire.ultrasonic.subsonic
|
||||
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import org.moire.ultrasonic.R
|
||||
import org.moire.ultrasonic.domain.MusicDirectory
|
||||
import org.moire.ultrasonic.subsonic.loader.image.ImageRequest
|
||||
import org.moire.ultrasonic.subsonic.loader.image.SubsonicImageLoader
|
||||
import org.moire.ultrasonic.util.ImageLoader
|
||||
import org.moire.ultrasonic.util.LegacyImageLoader
|
||||
@ -30,10 +32,13 @@ class SubsonicImageLoaderProxy(
|
||||
if (id != null &&
|
||||
view != null &&
|
||||
view is ImageView) {
|
||||
subsonicImageLoader.loadCoverArt(
|
||||
entityId = id,
|
||||
view = view
|
||||
val request = ImageRequest.CoverArt(
|
||||
id,
|
||||
view,
|
||||
placeHolderDrawableRes = R.drawable.unknown_album,
|
||||
errorDrawableRes = R.drawable.unknown_album
|
||||
)
|
||||
subsonicImageLoader.load(request)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user