From 5d05be9aebf61f755b173b337a52280c62b94ca7 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 26 Jul 2023 09:54:56 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../java/com/tangem/core/ui/utils/InputNumberFormatter.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/ui/src/main/java/com/tangem/core/ui/utils/InputNumberFormatter.kt b/core/ui/src/main/java/com/tangem/core/ui/utils/InputNumberFormatter.kt index 486b1cf9a2..7ed7c4a7c4 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/utils/InputNumberFormatter.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/utils/InputNumberFormatter.kt @@ -20,7 +20,7 @@ class InputNumberFormatter( val thousandsSeparator = symbols.groupingSeparator val decimalSeparator = symbols.decimalSeparator - val lastChar = text.last() + val lastChar = text.lastOrNull() val trimmedText = if (text.isNotEmpty() && (lastChar == thousandsSeparator || lastChar == POINT_SEPARATOR)) { text.dropLast(1) + decimalSeparator } else { @@ -32,8 +32,10 @@ class InputNumberFormatter( } val filteredChars = trimmedText.replace(thousandsSeparator.toString(), "").filterIndexed { index, c -> - val isOneOrZeroPoint = c == decimalSeparator && index != 0 && trimmedText.count { it == decimalSeparator } <= 1 - val isIndexPointIndex = c == decimalSeparator && index != 0 && trimmedText.indexOf(decimalSeparator) == index + val isOneOrZeroPoint = + c == decimalSeparator && index != 0 && trimmedText.count { it == decimalSeparator } <= 1 + val isIndexPointIndex = + c == decimalSeparator && index != 0 && trimmedText.indexOf(decimalSeparator) == index c.isDigit() || isIndexPointIndex || isOneOrZeroPoint } // If dot is present, take first digits before decimal and first decimals digits after decimal