From fb0f0345273177a6e212cd95c973964880845c73 Mon Sep 17 00:00:00 2001 From: ssabeerahamed Date: Wed, 17 Mar 2021 15:38:35 +0530 Subject: [PATCH 1/9] DTSERWFOUR-461-Update decimal places for FX --- .../android/ui/common/util/CurrencyParser.java | 10 ++++++++++ .../ui/receipt/view/ReceiptDetailFragment.java | 11 +++++++++-- .../android/ui/transfer/TransferPPCFundsTest.java | 2 +- .../android/ui/transfer/TransferUserFundsTest.java | 10 +++++----- .../ui/transfer/view/ScheduleTransferFragment.java | 3 ++- 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java index 6f11835e7..2d123d300 100644 --- a/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java +++ b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java @@ -12,6 +12,7 @@ import java.io.IOException; import java.io.InputStream; +import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.text.NumberFormat; @@ -127,4 +128,13 @@ public CurrencyDetails getCurrency(String currencyCode) { } return null; } + + public static String getRateWithFourDecimal(String rate) + { + NumberFormat nf = NumberFormat.getNumberInstance(); + nf.setMaximumFractionDigits(4); + nf.setRoundingMode(RoundingMode.FLOOR); + double amount = Double.parseDouble(rate); + return nf.format(amount); + } } diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java index 71c4753a8..89e99ee9e 100644 --- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java +++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java @@ -26,6 +26,7 @@ import static com.hyperwallet.android.model.receipt.Receipt.Entries.CREDIT; import static com.hyperwallet.android.model.receipt.Receipt.Entries.DEBIT; +import static com.hyperwallet.android.ui.common.util.CurrencyParser.getRateWithFourDecimal; import android.content.Context; import android.os.Build; @@ -213,8 +214,14 @@ private void setDetailsView(@NonNull final Receipt receipt, @NonNull final View } if (!TextUtils.isEmpty(receiptDetails.getNotes())) { - setViewInformation(R.id.receipt_notes_information, R.id.notes_value, - view, receiptDetails.getNotes()); + if (receipt.getForeignExchangeRate() != null) { + String fxRate = getRateWithFourDecimal(receipt.getForeignExchangeRate()); + setViewInformation(R.id.receipt_notes_information, R.id.notes_value, + view, receiptDetails.getNotes().replace(receipt.getForeignExchangeRate(), fxRate)); + } else { + setViewInformation(R.id.receipt_notes_information, R.id.notes_value, + view, receiptDetails.getNotes()); + } } } } diff --git a/transferui/src/androidTest/java/com/hyperwallet/android/ui/transfer/TransferPPCFundsTest.java b/transferui/src/androidTest/java/com/hyperwallet/android/ui/transfer/TransferPPCFundsTest.java index b42be417b..f2fd9eb7c 100644 --- a/transferui/src/androidTest/java/com/hyperwallet/android/ui/transfer/TransferPPCFundsTest.java +++ b/transferui/src/androidTest/java/com/hyperwallet/android/ui/transfer/TransferPPCFundsTest.java @@ -293,7 +293,7 @@ public void onReceive(Context context, Intent intent) { allOf(withId(R.id.exchange_rate_label), withText(R.string.mobileFXRateLabel)))))); onView(withId(R.id.list_foreign_exchange)).check( matches(atPosition(0, - hasDescendant(allOf(withId(R.id.exchange_rate_value), withText("$1 USD = $1.291253 CAD")))))); + hasDescendant(allOf(withId(R.id.exchange_rate_value), withText("$1 USD = $1.2912 CAD")))))); onView(withId(R.id.amount_label)).check(matches(withText(R.string.mobileConfirmDetailsAmount))); onView(withId(R.id.amount_value)).check(matches(withText("$152.20 CAD"))); onView(withId(R.id.fee_label)).check(matches(withText(R.string.mobileConfirmDetailsFee))); diff --git a/transferui/src/androidTest/java/com/hyperwallet/android/ui/transfer/TransferUserFundsTest.java b/transferui/src/androidTest/java/com/hyperwallet/android/ui/transfer/TransferUserFundsTest.java index 357ca78e2..109569dda 100644 --- a/transferui/src/androidTest/java/com/hyperwallet/android/ui/transfer/TransferUserFundsTest.java +++ b/transferui/src/androidTest/java/com/hyperwallet/android/ui/transfer/TransferUserFundsTest.java @@ -486,7 +486,7 @@ public void onReceive(Context context, Intent intent) { allOf(withId(R.id.exchange_rate_label), withText(R.string.mobileFXRateLabel)))))); onView(withId(R.id.list_foreign_exchange)).check( matches(atPosition(0, - hasDescendant(allOf(withId(R.id.exchange_rate_value), withText("$1 USD = $1.291253 CAD")))))); + hasDescendant(allOf(withId(R.id.exchange_rate_value), withText("$1 USD = $1.2912 CAD")))))); onView(withId(R.id.amount_label)).check(matches(withText(R.string.mobileConfirmDetailsAmount))); onView(withId(R.id.amount_value)).check(matches(withText("$152.20 CAD"))); onView(withId(R.id.fee_label)).check(matches(withText(R.string.mobileConfirmDetailsFee))); @@ -806,7 +806,7 @@ public void onReceive(Context context, Intent intent) { allOf(withId(R.id.exchange_rate_label), withText(R.string.mobileFXRateLabel)))))); onView(withId(R.id.list_foreign_exchange)).check( matches(atPosition(0, - hasDescendant(allOf(withId(R.id.exchange_rate_value), withText("$1 CAD = $0.774400 USD")))))); + hasDescendant(allOf(withId(R.id.exchange_rate_value), withText("$1 CAD = $0.7744 USD")))))); onView(withId(R.id.list_foreign_exchange)).check( matches(atPosition(1, hasDescendant( @@ -823,7 +823,7 @@ public void onReceive(Context context, Intent intent) { allOf(withId(R.id.exchange_rate_label), withText(R.string.mobileFXRateLabel)))))); onView(withId(R.id.list_foreign_exchange)).check( matches(atPosition(1, - hasDescendant(allOf(withId(R.id.exchange_rate_value), withText("€1 EUR = $1.126100 USD")))))); + hasDescendant(allOf(withId(R.id.exchange_rate_value), withText("€1 EUR = $1.1261 USD")))))); onView(withId(R.id.amount_label)).check(matches(withText(R.string.mobileConfirmDetailsAmount))); onView(withId(R.id.amount_value)).check(matches(withText("$290.05 USD"))); @@ -919,7 +919,7 @@ public void onReceive(Context context, Intent intent) { allOf(withId(R.id.exchange_rate_label), withText(R.string.mobileFXRateLabel)))))); onView(withId(R.id.list_foreign_exchange)).check( matches(atPosition(0, - hasDescendant(allOf(withId(R.id.exchange_rate_value), withText("$1 CAD = $0.784400 USD")))))); + hasDescendant(allOf(withId(R.id.exchange_rate_value), withText("$1 CAD = $0.7844 USD")))))); onView(withId(R.id.list_foreign_exchange)).check( matches(atPosition(1, hasDescendant( @@ -936,7 +936,7 @@ public void onReceive(Context context, Intent intent) { allOf(withId(R.id.exchange_rate_label), withText(R.string.mobileFXRateLabel)))))); onView(withId(R.id.list_foreign_exchange)).check( matches(atPosition(1, - hasDescendant(allOf(withId(R.id.exchange_rate_value), withText("€1 EUR = $1.136100 USD")))))); + hasDescendant(allOf(withId(R.id.exchange_rate_value), withText("€1 EUR = $1.1361 USD")))))); onView(withId(R.id.amount_label)).check(matches(withText(R.string.mobileConfirmDetailsAmount))); onView(withId(R.id.amount_value)).check(matches(withText("$194.05 USD"))); diff --git a/transferui/src/main/java/com/hyperwallet/android/ui/transfer/view/ScheduleTransferFragment.java b/transferui/src/main/java/com/hyperwallet/android/ui/transfer/view/ScheduleTransferFragment.java index 3ba2724b9..f5c6c9400 100644 --- a/transferui/src/main/java/com/hyperwallet/android/ui/transfer/view/ScheduleTransferFragment.java +++ b/transferui/src/main/java/com/hyperwallet/android/ui/transfer/view/ScheduleTransferFragment.java @@ -20,6 +20,7 @@ import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.TRANSFER_METHOD_COUNTRY; import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.TYPE; import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodTypes.PREPAID_CARD; +import static com.hyperwallet.android.ui.common.util.CurrencyParser.getRateWithFourDecimal; import static com.hyperwallet.android.ui.common.view.TransferMethodUtils.getStringFontIcon; import static com.hyperwallet.android.ui.common.view.TransferMethodUtils.getStringResourceByName; import static com.hyperwallet.android.ui.common.view.TransferMethodUtils.getTransferMethodDetail; @@ -327,7 +328,7 @@ void bind(@NonNull final ForeignExchange fx) { buyValue.setText(itemView.getContext().getString(R.string.amount_currency_format, buyFormattedAmount, fx.getDestinationCurrency())); exchangeRateValue.setText(itemView.getContext().getString(R.string.exchange_rate_format, - sourceCurrency.getSymbol(),fx.getSourceCurrency(), destinationCurrency.getSymbol(),fx.getRate(), fx.getDestinationCurrency())); + sourceCurrency.getSymbol(),fx.getSourceCurrency(), destinationCurrency.getSymbol(),getRateWithFourDecimal(fx.getRate()), fx.getDestinationCurrency())); } } } From 95209a9a21a6aeb79d3ae69a60019ac3bddeb98a Mon Sep 17 00:00:00 2001 From: ssabeerahamed Date: Thu, 18 Mar 2021 14:17:55 +0530 Subject: [PATCH 2/9] address review comments --- .../ui/common/util/CurrencyParser.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java index 2d123d300..80b5b730d 100644 --- a/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java +++ b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java @@ -19,6 +19,7 @@ import java.util.ArrayList; import java.util.Currency; import java.util.List; +import java.util.Locale; public class CurrencyParser { private static CurrencyParser instance; @@ -129,12 +130,17 @@ public CurrencyDetails getCurrency(String currencyCode) { return null; } - public static String getRateWithFourDecimal(String rate) - { - NumberFormat nf = NumberFormat.getNumberInstance(); - nf.setMaximumFractionDigits(4); - nf.setRoundingMode(RoundingMode.FLOOR); - double amount = Double.parseDouble(rate); - return nf.format(amount); + public static String getRateWithFourDecimal(String rate) { + StringBuilder builder = new StringBuilder(); + String[] amount = rate.split("\\."); + if(amount.length == 2) { + String wholeNumber = amount[0]; + String decimal = amount[1]; + if (decimal.length() > 4) { + decimal = decimal.substring(0, 4); + } + return builder.append(wholeNumber).append(".").append(decimal).toString(); + } + return rate; } } From 2fc502a64dabe9186dbef2386c344268b134e028 Mon Sep 17 00:00:00 2001 From: ssabeerahamed Date: Thu, 18 Mar 2021 15:27:50 +0530 Subject: [PATCH 3/9] address review comments --- .../com/hyperwallet/android/ui/common/util/CurrencyParser.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java index 80b5b730d..4cf200920 100644 --- a/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java +++ b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java @@ -12,14 +12,12 @@ import java.io.IOException; import java.io.InputStream; -import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.text.NumberFormat; import java.util.ArrayList; import java.util.Currency; import java.util.List; -import java.util.Locale; public class CurrencyParser { private static CurrencyParser instance; From d975abcb0c7989ddddbd19e083df4039ba837160 Mon Sep 17 00:00:00 2001 From: ssabeerahamed Date: Thu, 18 Mar 2021 15:57:00 +0530 Subject: [PATCH 4/9] update unit test. --- .../android/ui/common/util/CurrencyParserTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/commonui/src/test/java/com/hyperwallet/android/ui/common/util/CurrencyParserTest.java b/commonui/src/test/java/com/hyperwallet/android/ui/common/util/CurrencyParserTest.java index 9637542e8..30f424894 100644 --- a/commonui/src/test/java/com/hyperwallet/android/ui/common/util/CurrencyParserTest.java +++ b/commonui/src/test/java/com/hyperwallet/android/ui/common/util/CurrencyParserTest.java @@ -118,4 +118,13 @@ public void testGetNumberOfFractionDigits_NoDigitDecimal(){ int noOfDigits = CurrencyParser.getInstance(context).getNumberOfFractionDigits("JPY"); assertThat(noOfDigits, is(0)); } + + @Test + public void testFXRateWithFourDecimal() + { + assertThat("1.2345",is(CurrencyParser.getRateWithFourDecimal("1.234567"))); + assertThat("1.234",is(CurrencyParser.getRateWithFourDecimal("1.234"))); + assertThat("1.0000",is(CurrencyParser.getRateWithFourDecimal("1.000056"))); + assertThat("1",is(CurrencyParser.getRateWithFourDecimal("1"))); + } } From fb0896c4e732fc0c093756088fe357076fff3ee4 Mon Sep 17 00:00:00 2001 From: ssabeerahamed Date: Thu, 18 Mar 2021 20:09:30 +0530 Subject: [PATCH 5/9] Address review comments --- .../ui/common/util/CurrencyParser.java | 22 +++++++++++-------- .../ui/common/util/CurrencyParserTest.java | 1 + 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java index 4cf200920..9d8c10ae1 100644 --- a/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java +++ b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java @@ -129,16 +129,20 @@ public CurrencyDetails getCurrency(String currencyCode) { } public static String getRateWithFourDecimal(String rate) { - StringBuilder builder = new StringBuilder(); - String[] amount = rate.split("\\."); - if(amount.length == 2) { - String wholeNumber = amount[0]; - String decimal = amount[1]; - if (decimal.length() > 4) { - decimal = decimal.substring(0, 4); + if (rate != null) { + StringBuilder builder = new StringBuilder(); + String[] amount = rate.split("\\."); + if (amount.length == 2) { + String wholeNumber = amount[0]; + String decimal = amount[1]; + if (decimal.length() > 4) { + decimal = decimal.substring(0, 4); + } + return builder.append(wholeNumber).append(".").append(decimal).toString(); } - return builder.append(wholeNumber).append(".").append(decimal).toString(); + return rate; + } else { + return ""; } - return rate; } } diff --git a/commonui/src/test/java/com/hyperwallet/android/ui/common/util/CurrencyParserTest.java b/commonui/src/test/java/com/hyperwallet/android/ui/common/util/CurrencyParserTest.java index 30f424894..26c30ea41 100644 --- a/commonui/src/test/java/com/hyperwallet/android/ui/common/util/CurrencyParserTest.java +++ b/commonui/src/test/java/com/hyperwallet/android/ui/common/util/CurrencyParserTest.java @@ -126,5 +126,6 @@ public void testFXRateWithFourDecimal() assertThat("1.234",is(CurrencyParser.getRateWithFourDecimal("1.234"))); assertThat("1.0000",is(CurrencyParser.getRateWithFourDecimal("1.000056"))); assertThat("1",is(CurrencyParser.getRateWithFourDecimal("1"))); + assertThat("",is(CurrencyParser.getRateWithFourDecimal(null))); } } From 40d20855b9b0b54d8e12ca92bc327e2e867845bb Mon Sep 17 00:00:00 2001 From: ssabeerahamed Date: Tue, 23 Mar 2021 14:15:50 +0530 Subject: [PATCH 6/9] Address review comments --- .../ui/common/util/CurrencyParser.java | 19 +++++++++++++------ .../ui/common/util/CurrencyParserTest.java | 13 ++++++++----- .../receipt/view/ReceiptDetailFragment.java | 6 ++---- .../view/ScheduleTransferFragment.java | 5 +++-- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java index 9d8c10ae1..3247487c0 100644 --- a/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java +++ b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java @@ -128,19 +128,26 @@ public CurrencyDetails getCurrency(String currencyCode) { return null; } - public static String getRateWithFourDecimal(String rate) { - if (rate != null) { + /** + * truncate decimals for given value + * + * @param value Any value in string. + * @param noOfDecimals number of decimal to be truncate. + * @return Returns truncated decimal value. + */ + public static String getValueWithTruncateDecimals(String value, int noOfDecimals) { + if (value != null) { StringBuilder builder = new StringBuilder(); - String[] amount = rate.split("\\."); + String[] amount = value.split("\\."); if (amount.length == 2) { String wholeNumber = amount[0]; String decimal = amount[1]; - if (decimal.length() > 4) { - decimal = decimal.substring(0, 4); + if (decimal.length() > noOfDecimals) { + decimal = decimal.substring(0, noOfDecimals); } return builder.append(wholeNumber).append(".").append(decimal).toString(); } - return rate; + return value; } else { return ""; } diff --git a/commonui/src/test/java/com/hyperwallet/android/ui/common/util/CurrencyParserTest.java b/commonui/src/test/java/com/hyperwallet/android/ui/common/util/CurrencyParserTest.java index 26c30ea41..6c76b40da 100644 --- a/commonui/src/test/java/com/hyperwallet/android/ui/common/util/CurrencyParserTest.java +++ b/commonui/src/test/java/com/hyperwallet/android/ui/common/util/CurrencyParserTest.java @@ -122,10 +122,13 @@ public void testGetNumberOfFractionDigits_NoDigitDecimal(){ @Test public void testFXRateWithFourDecimal() { - assertThat("1.2345",is(CurrencyParser.getRateWithFourDecimal("1.234567"))); - assertThat("1.234",is(CurrencyParser.getRateWithFourDecimal("1.234"))); - assertThat("1.0000",is(CurrencyParser.getRateWithFourDecimal("1.000056"))); - assertThat("1",is(CurrencyParser.getRateWithFourDecimal("1"))); - assertThat("",is(CurrencyParser.getRateWithFourDecimal(null))); + assertThat("1.2345",is(CurrencyParser.getValueWithTruncateDecimals("1.234567",4))); + assertThat("1.234",is(CurrencyParser.getValueWithTruncateDecimals("1.234",4))); + assertThat("1.0000",is(CurrencyParser.getValueWithTruncateDecimals("1.000056",4))); + assertThat("1",is(CurrencyParser.getValueWithTruncateDecimals("1",4))); + assertThat("",is(CurrencyParser.getValueWithTruncateDecimals(null,4))); + assertThat("1.234",is(CurrencyParser.getValueWithTruncateDecimals("1.234567",3))); + assertThat("1.23",is(CurrencyParser.getValueWithTruncateDecimals("1.234567",2))); + assertThat("1.2",is(CurrencyParser.getValueWithTruncateDecimals("1.234567",1))); } } diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java index 89e99ee9e..725289a96 100644 --- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java +++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java @@ -17,16 +17,14 @@ package com.hyperwallet.android.ui.receipt.view; import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH; -import static android.text.format.DateUtils.FORMAT_ABBREV_WEEKDAY; import static android.text.format.DateUtils.FORMAT_SHOW_DATE; import static android.text.format.DateUtils.FORMAT_SHOW_TIME; -import static android.text.format.DateUtils.FORMAT_SHOW_WEEKDAY; import static android.text.format.DateUtils.FORMAT_SHOW_YEAR; import static android.text.format.DateUtils.formatDateTime; import static com.hyperwallet.android.model.receipt.Receipt.Entries.CREDIT; import static com.hyperwallet.android.model.receipt.Receipt.Entries.DEBIT; -import static com.hyperwallet.android.ui.common.util.CurrencyParser.getRateWithFourDecimal; +import static com.hyperwallet.android.ui.common.util.CurrencyParser.getValueWithTruncateDecimals; import android.content.Context; import android.os.Build; @@ -215,7 +213,7 @@ private void setDetailsView(@NonNull final Receipt receipt, @NonNull final View if (!TextUtils.isEmpty(receiptDetails.getNotes())) { if (receipt.getForeignExchangeRate() != null) { - String fxRate = getRateWithFourDecimal(receipt.getForeignExchangeRate()); + String fxRate = getValueWithTruncateDecimals(receipt.getForeignExchangeRate(),4); setViewInformation(R.id.receipt_notes_information, R.id.notes_value, view, receiptDetails.getNotes().replace(receipt.getForeignExchangeRate(), fxRate)); } else { diff --git a/transferui/src/main/java/com/hyperwallet/android/ui/transfer/view/ScheduleTransferFragment.java b/transferui/src/main/java/com/hyperwallet/android/ui/transfer/view/ScheduleTransferFragment.java index f5c6c9400..0e542efcb 100644 --- a/transferui/src/main/java/com/hyperwallet/android/ui/transfer/view/ScheduleTransferFragment.java +++ b/transferui/src/main/java/com/hyperwallet/android/ui/transfer/view/ScheduleTransferFragment.java @@ -20,7 +20,7 @@ import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.TRANSFER_METHOD_COUNTRY; import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.TYPE; import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodTypes.PREPAID_CARD; -import static com.hyperwallet.android.ui.common.util.CurrencyParser.getRateWithFourDecimal; +import static com.hyperwallet.android.ui.common.util.CurrencyParser.getValueWithTruncateDecimals; import static com.hyperwallet.android.ui.common.view.TransferMethodUtils.getStringFontIcon; import static com.hyperwallet.android.ui.common.view.TransferMethodUtils.getStringResourceByName; import static com.hyperwallet.android.ui.common.view.TransferMethodUtils.getTransferMethodDetail; @@ -328,7 +328,8 @@ void bind(@NonNull final ForeignExchange fx) { buyValue.setText(itemView.getContext().getString(R.string.amount_currency_format, buyFormattedAmount, fx.getDestinationCurrency())); exchangeRateValue.setText(itemView.getContext().getString(R.string.exchange_rate_format, - sourceCurrency.getSymbol(),fx.getSourceCurrency(), destinationCurrency.getSymbol(),getRateWithFourDecimal(fx.getRate()), fx.getDestinationCurrency())); + sourceCurrency.getSymbol(),fx.getSourceCurrency(), destinationCurrency.getSymbol(), + getValueWithTruncateDecimals(fx.getRate(), 4), fx.getDestinationCurrency())); } } } From fd249b7e98a7b8cf968f396ebd76ab0aa3bd0a4f Mon Sep 17 00:00:00 2001 From: ssabeerahamed Date: Wed, 24 Mar 2021 11:46:32 +0530 Subject: [PATCH 7/9] Address review comments --- .../android/ui/common/util/CurrencyParser.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java index 3247487c0..46998a5fc 100644 --- a/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java +++ b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/CurrencyParser.java @@ -137,17 +137,15 @@ public CurrencyDetails getCurrency(String currencyCode) { */ public static String getValueWithTruncateDecimals(String value, int noOfDecimals) { if (value != null) { - StringBuilder builder = new StringBuilder(); - String[] amount = value.split("\\."); - if (amount.length == 2) { - String wholeNumber = amount[0]; - String decimal = amount[1]; - if (decimal.length() > noOfDecimals) { - decimal = decimal.substring(0, noOfDecimals); - } - return builder.append(wholeNumber).append(".").append(decimal).toString(); + String returnValue = value; + int decimalLength = 0; + if (value.contains(".")) { + decimalLength = value.substring(value.indexOf(".")).length(); } - return value; + if (decimalLength > noOfDecimals) { + returnValue = value.substring(0, value.indexOf(".") + noOfDecimals + 1); + } + return returnValue; } else { return ""; } From 2b1d53bc6c942eb56f03e327a4ea5bd4aadea2f9 Mon Sep 17 00:00:00 2001 From: ssabeerahamed Date: Thu, 25 Mar 2021 15:16:01 +0530 Subject: [PATCH 8/9] Fix info overlap on smaller screens. --- transferui/src/main/res/layout/foreign_exchange.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/transferui/src/main/res/layout/foreign_exchange.xml b/transferui/src/main/res/layout/foreign_exchange.xml index 8ce465d7d..7bfc7b0bc 100644 --- a/transferui/src/main/res/layout/foreign_exchange.xml +++ b/transferui/src/main/res/layout/foreign_exchange.xml @@ -104,7 +104,7 @@ @@ -127,7 +128,6 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" - android:textDirection="ltr" tools:text="@string/foreign_exchange_rate_placeholder" /> Date: Thu, 25 Mar 2021 15:51:36 +0530 Subject: [PATCH 9/9] Fix info overlap on smaller screens. --- transferui/src/main/res/layout/foreign_exchange.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/transferui/src/main/res/layout/foreign_exchange.xml b/transferui/src/main/res/layout/foreign_exchange.xml index 7bfc7b0bc..a1ae8be66 100644 --- a/transferui/src/main/res/layout/foreign_exchange.xml +++ b/transferui/src/main/res/layout/foreign_exchange.xml @@ -108,6 +108,7 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/grid_margin_left" android:layout_marginTop="@dimen/grid_margin_top" + android:layout_marginEnd="@dimen/grid_margin_left" android:layout_marginBottom="@dimen/grid_margin_bottom" android:text="@string/mobileFXRateLabel" android:textAppearance="@style/TextAppearance.Hyperwallet.Body1"