diff --git a/app/src/main/java/org/futo/circles/feature/sign_up/subscription_stage/list/SubscriptionViewHolder.kt b/app/src/main/java/org/futo/circles/feature/sign_up/subscription_stage/list/SubscriptionViewHolder.kt new file mode 100644 index 0000000000000000000000000000000000000000..0166f60d1940cd0e43c041ff0a445a4b02666754 --- /dev/null +++ b/app/src/main/java/org/futo/circles/feature/sign_up/subscription_stage/list/SubscriptionViewHolder.kt @@ -0,0 +1,36 @@ +package org.futo.circles.feature.sign_up.subscription_stage.list + +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import org.futo.circles.core.list.ViewBindingHolder +import org.futo.circles.core.list.context +import org.futo.circles.databinding.SubscriptionListItemBinding +import org.futo.circles.extensions.onClick +import org.futo.circles.subscriptions.SubscriptionData +import org.futo.circles.subscriptions.formatIsoPeriod + + +class SubscriptionViewHolder( + parent: ViewGroup, + private val onSubscriptionClicked: (Int) -> Unit +) : RecyclerView.ViewHolder(inflate(parent, SubscriptionListItemBinding::inflate)) { + + private companion object : ViewBindingHolder + + private val binding = baseBinding as SubscriptionListItemBinding + + init { + onClick(itemView) { position -> onSubscriptionClicked(position) } + } + + fun bind(data: SubscriptionData) { + with(binding) { + tvName.text = data.details.name + tvDetails.text = data.details.description + val productOffer = + data.details.subscriptionOfferDetails?.last()?.pricingPhases?.pricingPhaseList?.last() + tvPrice.text = productOffer?.formattedPrice ?: "" + tvDuration.text = productOffer?.billingPeriod?.formatIsoPeriod(context) ?: "" + } + } +} \ No newline at end of file