package com.berider.app.onboarding.epoxy import android.widget.ImageView import android.widget.ProgressBar import android.widget.TextView import com.airbnb.epoxy.EpoxyAttribute import com.airbnb.epoxy.EpoxyModelClass import com.airbnb.epoxy.EpoxyModelWithHolder import com.airbnb.epoxy.TypedEpoxyController import com.berider.app.common.epoxy.BaseEpoxyHolder import com.berider.app.common.utils.getStringViaLocale import com.berider.app.common.utils.makeVisible import com.berider.app.common.utils.setImageToView import com.berider.app.models.domain.onboarding.OnboardingPage import com.berider.app.onboarding.R /** * Created by pavel.petkevich@skodaautodigilab.com on 07.April.2020 */ @EpoxyModelClass abstract class PageModel : EpoxyModelWithHolder() { @EpoxyAttribute lateinit var page: OnboardingPage override fun getDefaultLayout(): Int = R.layout.onboarding_page override fun bind(holder: Holder) { super.bind(holder) with(holder) { progressOnb.apply { makeVisible() imgOnbPage.setImageToView(page.imageURL) { makeVisible(false) } } txtOnbTitle.text = page.getStringViaLocale(OnboardingPage.TITLE_PARAM) txtOnbContent.text = page.getStringViaLocale(OnboardingPage.CONTENT_PARAM) } } class Holder : BaseEpoxyHolder() { val progressOnb: ProgressBar by bind(R.id.progressOnb) val imgOnbPage: ImageView by bind(R.id.imgOnbPage) val txtOnbTitle: TextView by bind(R.id.txtOnbTitle) val txtOnbContent: TextView by bind(R.id.txtOnbContent) } } class PageController : TypedEpoxyController>() { companion object { fun setData(data: List?) = PageController().apply { setData(data) } } override fun buildModels(pages: List) { pages.forEach { page { id(it.id) page(it) } } } }