From fd5bb6d69c6f2a1b5cd39f40c3c9a07dba5357c1 Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Mon, 11 Dec 2023 17:25:28 +0200
Subject: [PATCH] Test subscription paiment

---
 .../SelectSignUpTypeDataSource.kt             | 20 ++++++++++++++++++-
 .../SubscriptionStageFragment.kt              |  4 +++-
 .../GoogleSubscriptionsManager.kt             |  2 ++
 3 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/sign_up_type/SelectSignUpTypeDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/sign_up_type/SelectSignUpTypeDataSource.kt
index e4fcd63c8..dbfe4134e 100644
--- a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/sign_up_type/SelectSignUpTypeDataSource.kt
+++ b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/sign_up_type/SelectSignUpTypeDataSource.kt
@@ -4,9 +4,11 @@ import android.content.Context
 import dagger.hilt.android.qualifiers.ApplicationContext
 import org.futo.circles.auth.R
 import org.futo.circles.auth.feature.sign_up.SignUpDataSource
+import org.futo.circles.auth.feature.sign_up.SignUpDataSource.Companion.REGISTRATION_SUBSCRIPTION_TYPE
 import org.futo.circles.core.extensions.createResult
 import org.futo.circles.core.provider.MatrixInstanceProvider
 import org.futo.circles.core.utils.HomeServerUtils.buildHomeServerConfigFromDomain
+import org.matrix.android.sdk.api.auth.registration.Stage
 import javax.inject.Inject
 
 class SelectSignUpTypeDataSource @Inject constructor(
@@ -26,7 +28,23 @@ class SelectSignUpTypeDataSource @Inject constructor(
         val stages = authService.getRegistrationWizard().getAllRegistrationFlows().firstOrNull()
             ?: throw IllegalArgumentException(context.getString(R.string.wrong_signup_config))
 
-        signUpDataSource.startSignUpStages(stages, domain)
+        val list = mutableListOf<Stage>().apply {
+            add(
+                Stage.Other(
+                    true, REGISTRATION_SUBSCRIPTION_TYPE, mapOf(
+                        "subscription_ids" to listOf(
+                            "org.futo.circles.standard01month",
+                            "org.futo.circles.standard12month",
+                            "org.futo.circles.standard01month.eu",
+                            "org.futo.circles.standard12month.eu"
+                        )
+                    )
+                )
+            )
+            addAll(stages)
+        }
+
+        signUpDataSource.startSignUpStages(list, domain)
     }
 
 }
\ No newline at end of file
diff --git a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/subscription_stage/SubscriptionStageFragment.kt b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/subscription_stage/SubscriptionStageFragment.kt
index 00d2e66f1..29e14f4e6 100644
--- a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/subscription_stage/SubscriptionStageFragment.kt
+++ b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/subscription_stage/SubscriptionStageFragment.kt
@@ -1,6 +1,7 @@
 package org.futo.circles.auth.feature.sign_up.subscription_stage
 
 import android.os.Bundle
+import android.util.Log
 import android.view.View
 import androidx.fragment.app.viewModels
 import by.kirich1409.viewbindingdelegate.viewBinding
@@ -11,9 +12,9 @@ import org.futo.circles.auth.feature.sign_up.subscription_stage.list.Subscriptio
 import org.futo.circles.auth.model.SubscriptionReceiptData
 import org.futo.circles.auth.subscriptions.ItemPurchasedListener
 import org.futo.circles.auth.subscriptions.SubscriptionProvider
+import org.futo.circles.core.base.fragment.ParentBackPressOwnerFragment
 import org.futo.circles.core.extensions.observeResponse
 import org.futo.circles.core.extensions.showError
-import org.futo.circles.core.base.fragment.ParentBackPressOwnerFragment
 import javax.inject.Inject
 
 @AndroidEntryPoint
@@ -30,6 +31,7 @@ class SubscriptionStageFragment :
         subscriptionProvider.getManager(
             this, object : ItemPurchasedListener {
                 override fun onItemPurchased(subscriptionReceiptData: SubscriptionReceiptData) {
+                    Log.d("Mylog", subscriptionReceiptData.toString())
                     viewModel.validateSubscription(subscriptionReceiptData)
                 }
 
diff --git a/auth/src/main/java/org/futo/circles/auth/subscriptions/GoogleSubscriptionsManager.kt b/auth/src/main/java/org/futo/circles/auth/subscriptions/GoogleSubscriptionsManager.kt
index cce071d6b..6730d6e1d 100644
--- a/auth/src/main/java/org/futo/circles/auth/subscriptions/GoogleSubscriptionsManager.kt
+++ b/auth/src/main/java/org/futo/circles/auth/subscriptions/GoogleSubscriptionsManager.kt
@@ -1,5 +1,6 @@
 package org.futo.circles.auth.subscriptions
 
+import android.util.Log
 import androidx.fragment.app.Fragment
 import androidx.lifecycle.DefaultLifecycleObserver
 import androidx.lifecycle.LifecycleOwner
@@ -208,6 +209,7 @@ class GoogleSubscriptionsManager(
     }
 
     private fun Purchase.toSubscriptionReceiptData(): SubscriptionReceiptData? {
+        Log.d("MyLog", "Full purchase response ${this}")
         val productId = products.lastOrNull() ?: return null
         return SubscriptionReceiptData(productId, purchaseToken)
     }
-- 
GitLab