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 e115434d27db79b372d7e000d3205469165b5535..b0da6cb95836f02976e75e41ff34f3faf7123ffb 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