Skip to content
Snippets Groups Projects
Commit 13477f43 authored by Taras's avatar Taras
Browse files

Add logic to path subscription stage

parent 0037515c
No related branches found
No related tags found
No related merge requests found
package org.futo.circles.feature.sign_up.subscription_stage
class SubscriptionStageDataSource {
import org.futo.circles.extensions.Response
import org.futo.circles.extensions.createResult
import org.futo.circles.feature.sign_up.SignUpDataSource
import org.futo.circles.provider.MatrixInstanceProvider
import org.matrix.android.sdk.api.auth.registration.RegistrationResult
import org.matrix.android.sdk.api.auth.registration.Stage
class SubscriptionStageDataSource(
private val signUpDataSource: SignUpDataSource
) {
private val wizard by lazy {
MatrixInstanceProvider.matrix.authenticationService().getRegistrationWizard()
}
suspend fun validateSubscriptionReceipt(receipt: String): Response<RegistrationResult> {
val type = (signUpDataSource.currentStage as? Stage.Other)?.type ?: ""
val result = createResult {
wizard.registrationCustom(
mapOf(
"type" to type,
"product" to receipt
)
)
}
(result as? Response.Success)?.let { signUpDataSource.stageCompleted(result.data) }
return result
}
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import by.kirich1409.viewbindingdelegate.viewBinding
import org.futo.circles.R
import org.futo.circles.core.fragment.ParentBackPressOwnerFragment
import org.futo.circles.databinding.SubscriptionStageFragmentBinding
import org.futo.circles.extensions.observeResponse
import org.koin.androidx.viewmodel.ext.android.viewModel
class SubscriptionStageFragment :
......@@ -27,6 +28,6 @@ class SubscriptionStageFragment :
}
private fun setupObservers() {
viewModel.subscribeLiveData.observeResponse(this)
}
}
\ No newline at end of file
package org.futo.circles.feature.sign_up.subscription_stage
import androidx.lifecycle.ViewModel
import org.futo.circles.core.SingleEventLiveData
import org.futo.circles.extensions.Response
import org.futo.circles.extensions.launchBg
import org.matrix.android.sdk.api.auth.registration.RegistrationResult
class SubscriptionStageViewModel(
private val dataSource: SubscriptionStageDataSource
) : ViewModel() {
val subscribeLiveData = SingleEventLiveData<Response<RegistrationResult>>()
fun validateSubscriptionReceipt(receipt: String) {
launchBg {
subscribeLiveData.postValue(dataSource.validateSubscriptionReceipt(receipt))
}
}
class SubscriptionStageViewModel:ViewModel() {
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment