Fix crash in custom boost input.

This commit is contained in:
Cody Henthorne
2021-11-24 10:47:08 -05:00
committed by Greyson Parrelli
parent 98fab95683
commit 510a295198
3 changed files with 19 additions and 2 deletions

View File

@@ -266,7 +266,8 @@ data class Boost(
if (withoutSymbol != withoutLeadingZeroes) {
text?.removeTextChangedListener(this)
s.replace(s.indexOf(withoutSymbol), withoutSymbol.length, withoutLeadingZeroes)
val start = s.indexOf(withoutSymbol)
s.replace(start, start + withoutSymbol.length, withoutLeadingZeroes)
text?.addTextChangedListener(this)
}

View File

@@ -22,6 +22,7 @@ import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.util.InternetConnectionObserver
import org.thoughtcrime.securesms.util.PlatformCurrencyUtil
import org.thoughtcrime.securesms.util.livedata.Store
import java.lang.NumberFormatException
import java.math.BigDecimal
import java.text.DecimalFormat
import java.text.DecimalFormatSymbols
@@ -201,7 +202,12 @@ class BoostViewModel(
} else {
val decimalFormat = DecimalFormat.getInstance() as DecimalFormat
decimalFormat.isParseBigDecimal = true
decimalFormat.parse(amount) as BigDecimal
try {
decimalFormat.parse(amount) as BigDecimal
} catch (e: NumberFormatException) {
BigDecimal.ZERO
}
}
store.update { it.copy(customAmount = FiatMoney(bigDecimalAmount, it.customAmount.currency)) }