Skip to content
Snippets Groups Projects
Commit 07340c10 authored by Taras's avatar Taras
Browse files

Add subscription manager to fragment

parent d30f23dd
No related branches found
No related tags found
No related merge requests found
...@@ -7,8 +7,10 @@ import org.futo.circles.R ...@@ -7,8 +7,10 @@ import org.futo.circles.R
import org.futo.circles.core.fragment.ParentBackPressOwnerFragment import org.futo.circles.core.fragment.ParentBackPressOwnerFragment
import org.futo.circles.databinding.SubscriptionStageFragmentBinding import org.futo.circles.databinding.SubscriptionStageFragmentBinding
import org.futo.circles.extensions.observeResponse import org.futo.circles.extensions.observeResponse
import org.futo.circles.extensions.showError
import org.futo.circles.feature.sign_up.subscription_stage.list.SubscriptionsAdapter import org.futo.circles.feature.sign_up.subscription_stage.list.SubscriptionsAdapter
import org.futo.circles.subscriptions.SubscriptionData import org.futo.circles.subscriptions.ItemPurchasedListener
import org.futo.circles.subscriptions.google.GoogleSubscriptionsManager
import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.androidx.viewmodel.ext.android.viewModel
class SubscriptionStageFragment : class SubscriptionStageFragment :
...@@ -17,12 +19,30 @@ class SubscriptionStageFragment : ...@@ -17,12 +19,30 @@ class SubscriptionStageFragment :
private val binding by viewBinding(SubscriptionStageFragmentBinding::bind) private val binding by viewBinding(SubscriptionStageFragmentBinding::bind)
private val viewModel by viewModel<SubscriptionStageViewModel>() private val viewModel by viewModel<SubscriptionStageViewModel>()
private val listAdapter by lazy { private val subscriptionManager by lazy {
SubscriptionsAdapter( GoogleSubscriptionsManager(
onItemClicked = { data -> onSubscriptionSelected(data) }, requireActivity(), object : ItemPurchasedListener {
override fun onItemPurchased(purchase: String) {
viewModel.validateSubscriptionReceipt(purchase)
}
override fun onPurchaseFailed(errorCode: Int) {
showError(getString(R.string.purchase_failed_format, errorCode))
}
}
) )
} }
private val listAdapter by lazy {
SubscriptionsAdapter(onItemClicked = { id -> onSubscriptionSelected(id) })
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel.loadSubscriptionsList(subscriptionManager)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
setupViews() setupViews()
...@@ -35,9 +55,13 @@ class SubscriptionStageFragment : ...@@ -35,9 +55,13 @@ class SubscriptionStageFragment :
private fun setupObservers() { private fun setupObservers() {
viewModel.subscribeLiveData.observeResponse(this) viewModel.subscribeLiveData.observeResponse(this)
viewModel.purchaseLiveData.observeResponse(this)
viewModel.subscriptionsListLiveData.observeResponse(this, success = {
listAdapter.submitList(it)
})
} }
private fun onSubscriptionSelected(subscriptionData: SubscriptionData) { private fun onSubscriptionSelected(productId: String) {
viewModel.purchaseProduct(subscriptionManager, productId)
} }
} }
\ 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