blob: c372e0998827a9a058fb39b1ff90a8236e6b1439 [file] [log] [blame]
package com.airbnb.lottie.samples.views
import android.content.Context
import android.util.AttributeSet
import android.widget.FrameLayout
import androidx.annotation.ColorInt
import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.TextProp
import com.airbnb.lottie.samples.R
import com.airbnb.lottie.samples.databinding.ItemViewShowcaseAnimationBinding
import com.airbnb.lottie.samples.utils.setImageUrl
import com.airbnb.lottie.samples.utils.viewBinding
@ModelView(autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT)
class AnimationItemView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : FrameLayout(context, attrs, defStyleAttr) {
private val binding: ItemViewShowcaseAnimationBinding by viewBinding()
@ModelProp
fun setPreviewUrl(url: String?) {
binding.imageView.setImageUrl(url)
}
@TextProp
fun setTitle(title: CharSequence?) {
binding.titleView.text = title
}
@ModelProp
fun setPreviewBackgroundColor(@ColorInt bgColor: Int?) {
if (bgColor == null) {
binding.imageView.setBackgroundResource(R.color.loading_placeholder)
binding.imageView.setImageDrawable(null)
} else {
binding.imageView.setBackgroundColor(bgColor)
}
}
@ModelProp(options = [ModelProp.Option.DoNotHash])
override fun setOnClickListener(l: OnClickListener?) {
binding.container.setOnClickListener(l)
}
}