/
ProductPhotoViewHolder.kt
39 lines (33 loc) 路 1.3 KB
/
ProductPhotoViewHolder.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package openfoodfacts.github.scrachx.openfood.features.product.view.photos
import android.view.View
import androidx.recyclerview.widget.RecyclerView
import com.squareup.picasso.Picasso
import logcat.LogPriority
import logcat.logcat
import openfoodfacts.github.scrachx.openfood.databinding.ImagesItemBinding
import openfoodfacts.github.scrachx.openfood.images.IMAGE_EDIT_SIZE
import openfoodfacts.github.scrachx.openfood.images.getImageUrl
import openfoodfacts.github.scrachx.openfood.models.Barcode
import javax.inject.Inject
class ProductPhotoViewHolder(
private val binding: ImagesItemBinding,
private val picasso: Picasso
) : RecyclerView.ViewHolder(binding.root) {
fun setImage(barcode: Barcode, imageName: String) {
val imageUrl = getImageUrl(barcode, imageName, IMAGE_EDIT_SIZE)
logcat(LogPriority.DEBUG) { "Loading image $imageUrl..." }
picasso.load(imageUrl)
.resize(IMAGE_SIZE, IMAGE_SIZE)
.centerInside()
.into(binding.imageView)
}
fun setOnClickListener(listener: (View) -> Unit) {
binding.imageView.setOnClickListener(listener)
}
fun setOnEditClickListener(listener: (View) -> Unit) {
binding.editBtn.setOnClickListener(listener)
}
companion object {
private const val IMAGE_SIZE = 400
}
}