Skip to content

Commit

Permalink
Update demo app Clients from lateinit vars to nullable vars (#256)
Browse files Browse the repository at this point in the history
  • Loading branch information
tdchow authored Apr 29, 2024
1 parent d858b0a commit 8533f5d
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ class ApproveOrderViewModel @Inject constructor(
private val _uiState = MutableStateFlow(ApproveOrderUiState())
val uiState = _uiState.asStateFlow()

private lateinit var cardClient: CardClient
private var cardClient: CardClient? = null
private lateinit var payPalDataCollector: PayPalDataCollector

fun createOrder() {
Expand Down Expand Up @@ -85,7 +85,7 @@ class ApproveOrderViewModel @Inject constructor(
payPalDataCollector = PayPalDataCollector(coreConfig)

cardClient = CardClient(activity, coreConfig)
cardClient.approveOrderListener = object : ApproveOrderListener {
cardClient?.approveOrderListener = object : ApproveOrderListener {
override fun onApproveOrderSuccess(result: CardResult) {
approveOrderState = ActionState.Success(result)
}
Expand All @@ -108,7 +108,7 @@ class ApproveOrderViewModel @Inject constructor(
}

val cardRequest = mapUIStateToCardRequestWithOrderId(orderId)
cardClient.approveOrder(activity, cardRequest)
cardClient?.approveOrder(activity, cardRequest)
}
}
}
Expand Down Expand Up @@ -210,7 +210,6 @@ class ApproveOrderViewModel @Inject constructor(

override fun onCleared() {
super.onCleared()

cardClient.removeObservers()
cardClient?.removeObservers()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class PayPalWebViewModel @Inject constructor(
private val TAG = PayPalWebViewModel::class.qualifiedName
}

private lateinit var paypalClient: PayPalWebCheckoutClient
private var paypalClient: PayPalWebCheckoutClient? = null
private lateinit var payPalDataCollector: PayPalDataCollector

private val _uiState = MutableStateFlow(PayPalWebUiState())
Expand Down Expand Up @@ -115,9 +115,9 @@ class PayPalWebViewModel @Inject constructor(

paypalClient =
PayPalWebCheckoutClient(activity, coreConfig, "com.paypal.android.demo")
paypalClient.listener = this@PayPalWebViewModel
paypalClient?.listener = this@PayPalWebViewModel

paypalClient.start(PayPalWebCheckoutRequest(orderId, fundingSource))
paypalClient?.start(PayPalWebCheckoutRequest(orderId, fundingSource))
}
}
}
Expand Down Expand Up @@ -157,7 +157,6 @@ class PayPalWebViewModel @Inject constructor(

override fun onCleared() {
super.onCleared()

paypalClient.removeObservers()
paypalClient?.removeObservers()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class VaultCardViewModel @Inject constructor(
val createPaymentTokenUseCase: CreateCardPaymentTokenUseCase
) : ViewModel() {

private lateinit var cardClient: CardClient
private var cardClient: CardClient? = null

private val _uiState = MutableStateFlow(VaultCardUiState())
val uiState = _uiState.asStateFlow()
Expand Down Expand Up @@ -142,7 +142,7 @@ class VaultCardViewModel @Inject constructor(
val clientId = clientIdResult.value
val configuration = CoreConfig(clientId = clientId)
cardClient = CardClient(activity, configuration)
cardClient.cardVaultListener = object : CardVaultListener {
cardClient?.cardVaultListener = object : CardVaultListener {

override fun onVaultSuccess(result: CardVaultResult) {
updateSetupTokenState = ActionState.Success(result)
Expand All @@ -156,7 +156,7 @@ class VaultCardViewModel @Inject constructor(
val card = parseCard(_uiState.value)
val returnUrl = "com.paypal.android.demo://example.com/returnUrl"
val cardVaultRequest = CardVaultRequest(setupTokenId, card, returnUrl)
cardClient.vault(activity, cardVaultRequest)
cardClient?.vault(activity, cardVaultRequest)
}
}
}
Expand Down Expand Up @@ -189,7 +189,7 @@ class VaultCardViewModel @Inject constructor(
authChallengeState = ActionState.Loading

// change listener behavior to handle auth result
cardClient.cardVaultListener = object : CardVaultListener {
cardClient?.cardVaultListener = object : CardVaultListener {
override fun onVaultSuccess(result: CardVaultResult) {
viewModelScope.launch {
refreshSetupTokenState =
Expand All @@ -202,11 +202,11 @@ class VaultCardViewModel @Inject constructor(
authChallengeState = ActionState.Failure(error)
}
}
cardClient.presentAuthChallenge(activity, authChallenge)
cardClient?.presentAuthChallenge(activity, authChallenge)
}

override fun onCleared() {
super.onCleared()
cardClient.removeObservers()
cardClient?.removeObservers()
}
}

0 comments on commit 8533f5d

Please sign in to comment.