Skip to content

Commit cf77368

Browse files
authored
Merge pull request #407 from code-payments/chore/tips-localize-min-against-selected-currency
chore(tips): localize minimum threshold against selected currency; no…
2 parents 61c980a + 848970c commit cf77368

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

app/src/main/java/com/getcode/view/main/tip/TipPaymentViewModel.kt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,17 +86,18 @@ class TipPaymentViewModel @Inject constructor(
8686
}
8787
}
8888

89-
private val minUsdLimit: Kin
90-
get() {
91-
return KinAmount.fromFiatAmount(minUsdFiatLimit, exchange.rateForUsd()!!).kin
89+
private val minLimit: (rate: Rate) -> Kin = { rate ->
90+
KinAmount.fromFiatAmount(minFiatLimit(rate), rate).kin
9291
}
9392

9493
private val maxFiatLimit: (rate: Rate) -> Double = { rate ->
9594
(transactionRepository.sendLimitFor(rate.currency) ?: SendLimit.Zero).nextTransaction
9695
}
9796

98-
private val minUsdFiatLimit: Double
99-
get() = (transactionRepository.sendLimitFor(CurrencyCode.USD) ?: SendLimit.Zero).maxPerTransaction / 250.0
97+
private val minFiatLimit: (rate: Rate) -> Double = { rate ->
98+
(transactionRepository.sendLimitFor(rate.currency)
99+
?: SendLimit.Zero).maxPerTransaction / 250.0
100+
}
100101

101102

102103
private val hasAvailableTransactionLimit: (amount: KinAmount, rate: Rate) -> Boolean = { amount, _ ->
@@ -111,7 +112,7 @@ class TipPaymentViewModel @Inject constructor(
111112
get() = transactionRepository.hasAvailableDailyLimit()
112113

113114
private val isTipLargeEnough: (amount: KinAmount) -> Boolean = { amount ->
114-
amount.kin >= minUsdLimit
115+
amount.kin >= minLimit(amount.rate)
115116
}
116117

117118
suspend fun onSubmit(): KinAmount? {
@@ -160,7 +161,7 @@ class TipPaymentViewModel @Inject constructor(
160161

161162
if (!isTipLargeEnough(amount)) {
162163
// min amount is based on send limit for USD
163-
val kin = KinAmount.fromFiatAmount(minUsdFiatLimit, exchange.rateForUsd()!!).kin
164+
val kin = KinAmount.fromFiatAmount(minFiatLimit(amount.rate), amount.rate).kin
164165
// convert min amount in USD to selected currency
165166
val normalizedAmount = KinAmount.newInstance(kin, rate)
166167
// format for display

0 commit comments

Comments
 (0)