From a34518ffbdf42e2ed3539df83e0b4f435ed3d727 Mon Sep 17 00:00:00 2001
From: Taras <tarassmakula@gmail.com>
Date: Fri, 5 Aug 2022 17:08:51 +0300
Subject: [PATCH] Handle view model logic

---
 .../SubscriptionStageViewModel.kt              | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/app/src/main/java/org/futo/circles/feature/sign_up/subscription_stage/SubscriptionStageViewModel.kt b/app/src/main/java/org/futo/circles/feature/sign_up/subscription_stage/SubscriptionStageViewModel.kt
index e115434d2..b0da6cb95 100644
--- a/app/src/main/java/org/futo/circles/feature/sign_up/subscription_stage/SubscriptionStageViewModel.kt
+++ b/app/src/main/java/org/futo/circles/feature/sign_up/subscription_stage/SubscriptionStageViewModel.kt
@@ -1,9 +1,13 @@
 package org.futo.circles.feature.sign_up.subscription_stage
 
+import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
 import org.futo.circles.core.SingleEventLiveData
 import org.futo.circles.extensions.Response
 import org.futo.circles.extensions.launchBg
+import org.futo.circles.extensions.launchUi
+import org.futo.circles.model.SubscriptionListItem
+import org.futo.circles.subscriptions.SubscriptionManager
 import org.matrix.android.sdk.api.auth.registration.RegistrationResult
 
 class SubscriptionStageViewModel(
@@ -11,6 +15,8 @@ class SubscriptionStageViewModel(
 ) : ViewModel() {
 
     val subscribeLiveData = SingleEventLiveData<Response<RegistrationResult>>()
+    val purchaseLiveData = SingleEventLiveData<Response<Unit>>()
+    val subscriptionsListLiveData = MutableLiveData<Response<List<SubscriptionListItem>>>()
 
     fun validateSubscriptionReceipt(receipt: String) {
         launchBg {
@@ -18,4 +24,16 @@ class SubscriptionStageViewModel(
         }
     }
 
+    fun loadSubscriptionsList(subscriptionManager: SubscriptionManager) {
+        launchBg {
+            subscriptionsListLiveData.postValue(subscriptionManager.getDetails(dataSource.getProductIdsList()))
+        }
+    }
+
+    fun purchaseProduct(subscriptionManager: SubscriptionManager, productId: String) {
+        launchUi {
+            purchaseLiveData.postValue(subscriptionManager.purchaseProduct(productId))
+        }
+    }
+
 }
\ No newline at end of file
-- 
GitLab