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..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
@@ -127,4 +127,27 @@ public CurrencyDetails getCurrency(String currencyCode) {
}
return 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) {
+ String returnValue = value;
+ int decimalLength = 0;
+ if (value.contains(".")) {
+ decimalLength = value.substring(value.indexOf(".")).length();
+ }
+ if (decimalLength > noOfDecimals) {
+ returnValue = value.substring(0, value.indexOf(".") + noOfDecimals + 1);
+ }
+ return returnValue;
+ } 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 9637542e8..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
@@ -118,4 +118,17 @@ public void testGetNumberOfFractionDigits_NoDigitDecimal(){
int noOfDigits = CurrencyParser.getInstance(context).getNumberOfFractionDigits("JPY");
assertThat(noOfDigits, is(0));
}
+
+ @Test
+ public void testFXRateWithFourDecimal()
+ {
+ 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/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java
index ac990fc48..b5e54f048 100644
--- a/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java
+++ b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java
@@ -2,6 +2,7 @@
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.action.ViewActions.longClick;
import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant;
@@ -28,6 +29,7 @@
import androidx.test.core.app.ApplicationProvider;
import androidx.test.espresso.IdlingRegistry;
import androidx.test.espresso.contrib.RecyclerViewActions;
+import androidx.test.espresso.matcher.RootMatchers;
import androidx.test.espresso.matcher.ViewMatchers;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.rule.ActivityTestRule;
@@ -565,6 +567,39 @@ public void testListReceipt_checkDateTextOnLocaleChange() {
onView(withId(R.id.list_receipts)).check(matches(atPosition(0, hasDescendant(withText("2 maggio 2019")))));
}
+ @Test
+ public void testListReceipt_selectTransactionDetails() {
+ mMockWebServer.mockResponse().withHttpResponseCode(HTTP_OK).withBody(sResourceManager
+ .getResourceContent("receipt_list_response.json")).mock();
+ mMockWebServer.mockResponse().withHttpResponseCode(HTTP_NO_CONTENT).withBody("").mock();
+ // run test
+ mActivityTestRule.launchActivity(null);
+ // assert
+ onView(allOf(instanceOf(TextView.class), withParent(withId(R.id.toolbar))))
+ .check(matches(withText(R.string.title_activity_receipt_list)));
+ onView(withId(R.id.list_receipts)).check(matches(isDisplayed()));
+ onView(withId(R.id.list_receipts)).perform(RecyclerViewActions.actionOnItemAtPosition(3, click()));
+ onView(withId(R.id.transaction_header_text)).check(matches(withText(R.string.mobileTransactionTypeLabel)));
+ onView(withId(R.id.transaction_type_icon)).check(matches(withText(R.string.debit)));
+ onView(withId(R.id.transaction_title)).check(matches(withText(R.string.transfer_to_prepaid_card)));
+ onView(withId(R.id.transaction_title)).perform(longClick());
+ onView(withText("Copy")).inRoot(RootMatchers.isPlatformPopup()).check(matches(isDisplayed()));
+ onView(withId(R.id.transaction_amount)).perform(longClick());
+ onView(withText("Copy")).inRoot(RootMatchers.isPlatformPopup()).check(matches(isDisplayed()));
+ onView(withId(R.id.transaction_currency)).perform(longClick());
+ onView(withText("Copy")).inRoot(RootMatchers.isPlatformPopup()).check(matches(isDisplayed()));
+ onView(withId(R.id.transaction_date)).perform(longClick());
+ onView(withText("Copy")).inRoot(RootMatchers.isPlatformPopup()).check(matches(isDisplayed()));
+ onView(withId(R.id.receipt_id_label)).perform(longClick());
+ onView(withText("Copy")).inRoot(RootMatchers.isPlatformPopup()).check(matches(isDisplayed()));
+ onView(withId(R.id.receipt_id_value)).perform(longClick());
+ onView(withText("Copy")).inRoot(RootMatchers.isPlatformPopup()).check(matches(isDisplayed()));
+ onView(withId(R.id.date_label)).perform(longClick());
+ onView(withText("Copy")).inRoot(RootMatchers.isPlatformPopup()).check(matches(isDisplayed()));
+ onView(withId(R.id.date_value)).perform(longClick());
+ onView(withText("Copy")).inRoot(RootMatchers.isPlatformPopup()).check(matches(isDisplayed()));
+ }
+
@Test
public void testListReceipt_displaysNetworkErrorDialogOnConnectionTimeout() {
mMockWebServer.getServer().enqueue(new MockResponse().setResponseCode(HTTP_OK).setBody(sResourceManager
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..70025ac55 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,15 +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.getValueWithTruncateDecimals;
import android.content.Context;
import android.os.Build;
@@ -117,6 +116,22 @@ private void setTransactionView(@NonNull final Receipt receipt, @NonNull final V
TextView transactionCurrency = view.findViewById(R.id.transaction_currency);
String currencyString = Currency.getInstance(receipt.getCurrency()).getSymbol(Locale.getDefault());
+ transactionTitle.setTextIsSelectable(true);
+ transactionTitle.setLongClickable(true);
+ transactionTitle.setFocusable(true);
+
+ transactionDate.setTextIsSelectable(true);
+ transactionDate.setLongClickable(true);
+ transactionDate.setFocusable(true);
+
+ transactionAmount.setTextIsSelectable(true);
+ transactionAmount.setLongClickable(true);
+ transactionAmount.setFocusable(true);
+
+ transactionCurrency.setTextIsSelectable(true);
+ transactionCurrency.setLongClickable(true);
+ transactionCurrency.setFocusable(true);
+
if (CREDIT.equals(receipt.getEntry())) {
transactionAmount.setTextColor(transactionAmount.getContext()
.getResources().getColor(R.color.positiveColor));
@@ -213,8 +228,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 = getValueWithTruncateDecimals(receipt.getForeignExchangeRate(),4);
+ 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/receiptui/src/main/res/layout/fragment_receipt_detail.xml b/receiptui/src/main/res/layout/fragment_receipt_detail.xml
index 53689e370..3c4471751 100644
--- a/receiptui/src/main/res/layout/fragment_receipt_detail.xml
+++ b/receiptui/src/main/res/layout/fragment_receipt_detail.xml
@@ -92,6 +92,9 @@
android:layout_alignParentTop="true"
android:layout_marginTop="@dimen/grid_margin_top"
android:text="@string/mobileJournalNumberLabel"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Body1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -108,6 +111,9 @@
android:layout_toEndOf="@+id/receipt_id_label"
android:layout_marginTop="@dimen/grid_margin_top"
android:layout_marginBottom="0dp"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
tools:text="@string/text_placeholder"
android:textAppearance="@style/TextAppearance.Hyperwallet.Caption"
app:layout_constraintEnd_toEndOf="parent"
@@ -127,6 +133,9 @@
android:layout_height="wrap_content"
android:paddingTop="@dimen/item_text_top_bottom_margin"
android:text="@string/date"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Body1" />
@@ -158,6 +170,9 @@
android:layout_alignParentTop="true"
android:layout_marginTop="@dimen/item_text_top_bottom_margin"
android:text="@string/mobileMerchantTxnLabel"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Body1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent" />
@@ -175,6 +190,9 @@
android:layout_toEndOf="@+id/client_id_label"
android:gravity="end"
tools:text="@string/text_placeholder"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Caption"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
@@ -196,6 +214,9 @@
android:layout_alignParentTop="true"
android:layout_marginTop="@dimen/item_text_top_bottom_margin"
android:text="@string/mobileCharityName"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Body1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
@@ -210,6 +231,9 @@
android:layout_toEndOf="@+id/charity_label"
android:gravity="end"
tools:text="@string/text_placeholder"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Caption"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
@@ -231,6 +255,9 @@
android:layout_alignParentTop="true"
android:layout_marginTop="@dimen/item_text_top_bottom_margin"
android:text="@string/mobileCheckNumber"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Body1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent" />
@@ -246,6 +273,9 @@
android:layout_toEndOf="@+id/check_number_label"
android:gravity="end"
tools:text="@string/text_placeholder"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Caption"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
@@ -267,6 +297,9 @@
android:layout_alignParentTop="true"
android:layout_marginTop="@dimen/item_text_top_bottom_margin"
android:text="@string/mobilePromoWebsite"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Body1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent" />
@@ -282,6 +315,9 @@
android:layout_toEndOf="@+id/website_label"
android:gravity="end"
tools:text="@string/text_placeholder"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Caption"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
@@ -326,6 +362,9 @@
android:layout_marginTop="@dimen/grid_margin_top"
android:layout_marginBottom="@dimen/grid_margin_bottom"
tools:text="@string/text_placeholder"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Caption"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
@@ -374,6 +413,9 @@
android:layout_alignParentTop="true"
android:layout_marginTop="@dimen/grid_margin_top"
android:text="@string/amount"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Body1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -391,6 +433,9 @@
android:layout_marginTop="@dimen/grid_margin_top"
android:layout_marginBottom="0dp"
tools:text="@string/text_placeholder"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Caption"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -412,6 +457,9 @@
android:layout_alignParentTop="true"
android:layout_marginTop="@dimen/grid_margin_top"
android:text="@string/mobileFeeLabel"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Body1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -429,6 +477,9 @@
android:layout_marginTop="@dimen/grid_margin_top"
android:layout_marginBottom="0dp"
tools:text="@string/text_placeholder"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Caption"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -450,6 +501,9 @@
android:layout_alignParentTop="true"
android:layout_marginTop="@dimen/grid_margin_top"
android:text="@string/mobileTransactionDetailsTotal"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Body1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -467,6 +521,9 @@
android:layout_marginTop="@dimen/grid_margin_top"
android:layout_marginBottom="0dp"
tools:text="@string/text_placeholder"
+ android:textIsSelectable="true"
+ android:focusable="true"
+ android:longClickable="true"
android:textAppearance="@style/TextAppearance.Hyperwallet.Caption"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
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..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,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.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;
@@ -327,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(),fx.getRate(), fx.getDestinationCurrency()));
+ sourceCurrency.getSymbol(),fx.getSourceCurrency(), destinationCurrency.getSymbol(),
+ getValueWithTruncateDecimals(fx.getRate(), 4), fx.getDestinationCurrency()));
}
}
}
diff --git a/transferui/src/main/res/layout/foreign_exchange.xml b/transferui/src/main/res/layout/foreign_exchange.xml
index 8ce465d7d..a1ae8be66 100644
--- a/transferui/src/main/res/layout/foreign_exchange.xml
+++ b/transferui/src/main/res/layout/foreign_exchange.xml
@@ -104,14 +104,16 @@
@@ -127,7 +129,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" />