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" />