From 3065e31c314f49aefabea73caf3b295b004f61c9 Mon Sep 17 00:00:00 2001 From: Apoorv Nigam Date: Wed, 31 Jan 2024 13:45:04 +0530 Subject: [PATCH] TP-55650 | round off savings experiment change (#9573) --- .../navi/naviwidgets/interfaces/GoldConversionWidgetInfo.kt | 1 + .../java/com/navi/naviwidgets/models/GoldConversionWidget.kt | 3 +++ .../com/navi/naviwidgets/widgets/GoldConversionWidgetLayout.kt | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/navi-widgets/src/main/java/com/navi/naviwidgets/interfaces/GoldConversionWidgetInfo.kt b/navi-widgets/src/main/java/com/navi/naviwidgets/interfaces/GoldConversionWidgetInfo.kt index ad543aa8b8..c3d56a93fe 100644 --- a/navi-widgets/src/main/java/com/navi/naviwidgets/interfaces/GoldConversionWidgetInfo.kt +++ b/navi-widgets/src/main/java/com/navi/naviwidgets/interfaces/GoldConversionWidgetInfo.kt @@ -46,4 +46,5 @@ interface GoldConversionWidgetInfo { fun textIconCode() : String? fun textLottieCode() : String? fun dynamicText(): DynamicText? + fun isRoundOffSavingsEnabled(): Boolean? } diff --git a/navi-widgets/src/main/java/com/navi/naviwidgets/models/GoldConversionWidget.kt b/navi-widgets/src/main/java/com/navi/naviwidgets/models/GoldConversionWidget.kt index bfe550efb9..50ac5dc152 100644 --- a/navi-widgets/src/main/java/com/navi/naviwidgets/models/GoldConversionWidget.kt +++ b/navi-widgets/src/main/java/com/navi/naviwidgets/models/GoldConversionWidget.kt @@ -98,6 +98,7 @@ data class GoldConversionWidget( override fun textIconCode(): String? = widgetData?.textIconCode override fun textLottieCode(): String? = widgetData?.textLottieCode override fun dynamicText(): DynamicText? = widgetData?.dynamicText + override fun isRoundOffSavingsEnabled(): Boolean? = widgetData?.isRoundOffSavingsEnabled } data class GoldConversionData( @@ -152,6 +153,8 @@ data class GoldConversionData( val textLottieCode: String? = null, @SerializedName("dynamicText") val dynamicText: DynamicText? = null, + @SerializedName("isRoundOffSavingsEnabled") + val isRoundOffSavingsEnabled: Boolean? = false ) : Serializable data class AmountConstraint( diff --git a/navi-widgets/src/main/java/com/navi/naviwidgets/widgets/GoldConversionWidgetLayout.kt b/navi-widgets/src/main/java/com/navi/naviwidgets/widgets/GoldConversionWidgetLayout.kt index 0d78a045a5..6e82f4dc82 100644 --- a/navi-widgets/src/main/java/com/navi/naviwidgets/widgets/GoldConversionWidgetLayout.kt +++ b/navi-widgets/src/main/java/com/navi/naviwidgets/widgets/GoldConversionWidgetLayout.kt @@ -99,6 +99,7 @@ class GoldConversionWidgetLayout @JvmOverloads constructor( private const val KEY_COLOR_SELECTED = "selected" private const val DEFAULT_COLOR_VARIATION_SELECTED = "#1F002A" private const val DEFAULT_COLOR_VARIATION_UNSELECTED = "#EBEBEB" + private const val PRECISION_THRESHOLD = 0.000001 } fun update( @@ -647,7 +648,7 @@ class GoldConversionWidgetLayout @JvmOverloads constructor( private fun decimalFormatOfWeight(weight: Double, roundDown: Boolean = true) = when (unitOfGold) { context.getString(R.string.milligram_unit) -> { - if(weight < 0.2 || !roundDown) { + if((weight - 0.2 < PRECISION_THRESHOLD && info.isRoundOffSavingsEnabled().orFalse()) || !roundDown) { decimalFormatWithOneDecimal.roundingMode = RoundingMode.UP } else decimalFormatWithOneDecimal.roundingMode = RoundingMode.DOWN