From 3b17d3a4ff9cea547e711c7ab2d2c9a692d01055 Mon Sep 17 00:00:00 2001 From: Aditya Narayan Malik Date: Fri, 21 Feb 2025 15:45:23 +0530 Subject: [PATCH] NTP-39209 | Narayan | Fixed string locale issue on formatting (#15046) --- .../launcher/viewmodel/NaviPayLauncherViewModel.kt | 7 ++++++- .../src/main/kotlin/com/navi/pay/utils/NaviPayExt.kt | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/onboarding/launcher/viewmodel/NaviPayLauncherViewModel.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/onboarding/launcher/viewmodel/NaviPayLauncherViewModel.kt index e3f53d176b..9ee7d2513e 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/onboarding/launcher/viewmodel/NaviPayLauncherViewModel.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/onboarding/launcher/viewmodel/NaviPayLauncherViewModel.kt @@ -55,6 +55,7 @@ import com.navi.pay.utils.UPI_LITE_MANDATE_EXECUTION_SUCCESS import com.navi.pay.utils.toPlainAmount import com.navi.pay.utils.value import dagger.hilt.android.lifecycle.HiltViewModel +import java.util.Locale import javax.inject.Inject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -501,7 +502,11 @@ constructor( private fun mapToMandateEntity(notificationData: HashMap): MandateEntity { val formattedAmount = try { - String.format("%.2f", notificationData["amount"].toString().toDoubleOrNull() ?: 0.0) + String.format( + locale = Locale.US, + "%.2f", + notificationData["amount"].toString().toDoubleOrNull() ?: 0.0, + ) } catch (_: Exception) { "0.00" } diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayExt.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayExt.kt index 89e9ba835d..c394fe510c 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayExt.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayExt.kt @@ -58,6 +58,7 @@ import com.navi.pay.common.viewmodel.NaviPayBaseVM import com.navi.pay.management.common.sendmoney.model.view.SendMoneyScreenSource import java.math.BigDecimal import java.math.RoundingMode +import java.util.Locale import kotlin.math.roundToInt import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async @@ -122,7 +123,7 @@ fun String.getFormattedAmountWithDecimal(): String { if (amount.isNotBlank()) { val numericValue = amount.toDoubleOrNull() if (numericValue != null) { - amount = String.format("%.2f", numericValue) + amount = String.format(locale = Locale.US, "%.2f", numericValue) } } return amount