From b3a02ccf73e35caaec43883fc1ec4e58de90cc59 Mon Sep 17 00:00:00 2001
From: Taras <tarassmakula@gmail.com>
Date: Thu, 4 Aug 2022 17:35:23 +0300
Subject: [PATCH] Create view holder

---
 .../list/SubscriptionViewHolder.kt            | 36 +++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 app/src/main/java/org/futo/circles/feature/sign_up/subscription_stage/list/SubscriptionViewHolder.kt

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 000000000..0166f60d1
--- /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
-- 
GitLab