Skip to content

Commit

Permalink
fix(bank-sdk): Fix example crashing when opened by health SDK
Browse files Browse the repository at this point in the history
PIA-4605
  • Loading branch information
abolfazlimahdi committed Oct 24, 2023
1 parent 15c049c commit 459a6c7
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import net.gini.android.bank.api.GiniBankAPI
import net.gini.android.bank.api.GiniBankAPIBuilder
import net.gini.android.bank.sdk.exampleapp.R
import net.gini.android.capture.network.GiniCaptureDefaultNetworkService
import net.gini.android.core.api.DocumentMetadata
Expand All @@ -27,6 +29,16 @@ annotation class GiniCaptureNetworkServiceDebugEnabled
@InstallIn(SingletonComponent::class)
class GiniExampleModule {

@Singleton
@Provides
fun bindGiniBankAPI(
@ApplicationContext context: Context, logger: Logger
): GiniBankAPI {
val (clientId, clientSecret) = getClientIdAndClientSecret(context, logger)
return GiniBankAPIBuilder(context, clientId, clientSecret, "emailDomain")
.build()
}

@Singleton
@GiniCaptureNetworkServiceDebugDisabled
@Provides
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import dagger.hilt.android.AndroidEntryPoint
import net.gini.android.bank.api.models.ResolvePaymentInput
import net.gini.android.bank.sdk.exampleapp.core.ResultWrapper
import net.gini.android.bank.sdk.exampleapp.databinding.ActivityPayBinding
import net.gini.android.bank.sdk.pay.getRequestId
import net.gini.android.core.api.models.PaymentRequest

@AndroidEntryPoint
class PayActivity : AppCompatActivity() {

// Replace PayViewModel with PayViewModelJava to try out
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,22 @@ package net.gini.android.bank.sdk.exampleapp.ui.pay
import android.content.Context
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
import net.gini.android.bank.api.GiniBankAPI
import net.gini.android.bank.api.models.ResolvePaymentInput
import net.gini.android.bank.api.models.ResolvedPayment
import net.gini.android.bank.sdk.GiniBank
import net.gini.android.bank.sdk.exampleapp.core.ResultWrapper
import net.gini.android.bank.sdk.exampleapp.core.wrapToResult
import net.gini.android.core.api.models.PaymentRequest
import javax.inject.Inject

class PayViewModel(
private val giniBank: GiniBank
@HiltViewModel
class PayViewModel @Inject constructor(
private val giniBankAPI: GiniBankAPI
) : ViewModel(), PayViewModelInterface {

private val _paymentRequest = MutableStateFlow<ResultWrapper<PaymentRequest>>(ResultWrapper.Loading())
Expand All @@ -25,26 +29,30 @@ class PayViewModel(

private var requestId: String? = null

init {
GiniBank.setGiniApi(giniBankAPI)
}

override fun fetchPaymentRequest(requestId: String) {
this.requestId = requestId
_paymentRequest.value = ResultWrapper.Loading()
viewModelScope.launch {
_paymentRequest.value = wrapToResult { giniBank.getPaymentRequest(requestId) }
_paymentRequest.value = wrapToResult { GiniBank.getPaymentRequest(requestId) }
}
}

override fun onPay(paymentDetails: ResolvePaymentInput) {
_paymentState.value = ResultWrapper.Loading()
requestId?.let { id ->
viewModelScope.launch {
_paymentState.value = wrapToResult { giniBank.resolvePaymentRequest(id, paymentDetails) }
_paymentState.value = wrapToResult { GiniBank.resolvePaymentRequest(id, paymentDetails) }
}
}
}

override fun returnToPaymentInitiatorApp(context: Context) {
val payment = _paymentState.value
if (payment is ResultWrapper.Success)
giniBank.returnToPaymentInitiatorApp(context, payment.value)
GiniBank.returnToPaymentInitiatorApp(context, payment.value)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,13 @@ import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.viewModelScope
import dev.chrisbanes.insetter.applyInsetter
import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.launch
import net.gini.android.health.sdk.GiniHealth
import net.gini.android.health.sdk.exampleapp.R
import net.gini.android.health.sdk.exampleapp.databinding.ActivityReviewBinding
import net.gini.android.health.sdk.GiniHealth
import net.gini.android.health.sdk.review.ReviewConfiguration
import net.gini.android.health.sdk.review.ReviewFragment
import net.gini.android.health.sdk.review.ReviewFragmentListener
import org.koin.androidx.scope.activityScope
import org.koin.androidx.viewmodel.ext.android.viewModel

class ReviewActivity : AppCompatActivity() {
Expand Down

0 comments on commit 459a6c7

Please sign in to comment.