From 90ba453dd881f1958d70aa97b4e25bbe5163cfa5 Mon Sep 17 00:00:00 2001 From: Aswini Date: Wed, 19 Mar 2025 22:46:41 -0700 Subject: [PATCH 1/5] select defaultcurrencyCode. --- .../view/SelectTransferMethodPresenter.java | 76 ++++++++++++++++--- 1 file changed, 64 insertions(+), 12 deletions(-) diff --git a/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/SelectTransferMethodPresenter.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/SelectTransferMethodPresenter.java index 28583e43e..4cff6a793 100644 --- a/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/SelectTransferMethodPresenter.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/SelectTransferMethodPresenter.java @@ -48,8 +48,8 @@ public class SelectTransferMethodPresenter implements SelectTransferMethodContra private final SelectTransferMethodContract.View mView; public SelectTransferMethodPresenter(SelectTransferMethodContract.View view, - @NonNull final TransferMethodConfigurationRepository transferMethodConfigurationRepository, - @NonNull final UserRepository userRepository) { + @NonNull final TransferMethodConfigurationRepository transferMethodConfigurationRepository, + @NonNull final UserRepository userRepository) { this.mView = view; this.mTransferMethodConfigurationRepository = transferMethodConfigurationRepository; this.mUserRepository = userRepository; @@ -57,7 +57,7 @@ public SelectTransferMethodPresenter(SelectTransferMethodContract.View view, @Override public void loadTransferMethodConfigurationKeys(final boolean forceUpdate, @Nullable final String countryCode, - @Nullable final String currencyCode) { + @Nullable final String currencyCode) { mView.showProgressBar(); @@ -150,11 +150,27 @@ public void onKeysLoaded(@Nullable final HyperwalletTransferMethodConfigurationK new ArrayList<>(key.getCurrencies(countryCode)) : new ArrayList(); + Country selectedCountry = null; + for (Country country : key.getCountries()) { + if (country.getCode().equals(countryCode)) { + selectedCountry = country; + break; + } + } + // Attempt to get the default currency code for the selected country + String selectedCurrencyCode = getDefaultCurrencyCode(selectedCountry, key, countryCode); + + if (selectedCurrencyCode == null) { + // If no default currency code is found, use the first currency in the list + selectedCurrencyCode = currencies.get(0).getCode(); + } + + // Show the selected country and currency in the UI mView.showTransferMethodCountry(countryCode); - mView.showTransferMethodCurrency(currencies.get(0).getCode()); + mView.showTransferMethodCurrency(selectedCurrencyCode); - loadFeeAndProcessingTimeAndShowTransferMethods(countryCode, currencies.get(0).getCode(), - user); + // Load fee, processing time, and other transfer methods + loadFeeAndProcessingTimeAndShowTransferMethods(countryCode, selectedCurrencyCode, user); } @Override @@ -180,7 +196,7 @@ private void showErrorLoadCurrency(@NonNull Errors errors) { @Override public void loadTransferMethodTypes(final boolean forceUpdate, - @NonNull final String countryCode, @NonNull final String currencyCode) { + @NonNull final String countryCode, @NonNull final String currencyCode) { mView.showProgressBar(); if (forceUpdate) { @@ -226,7 +242,7 @@ public void onError(@NonNull Errors errors) { @Override public void openAddTransferMethod(@NonNull final String country, @NonNull final String currency, - @NonNull final String transferMethodType, @NonNull final String profileType) { + @NonNull final String transferMethodType, @NonNull final String profileType) { mView.showAddTransferMethod(country, currency, transferMethodType, profileType); } @@ -268,14 +284,28 @@ public void onKeysLoaded(@Nullable HyperwalletTransferMethodConfigurationKey key if (!mView.isActive()) { return; } - Set currencyCodes = key.getCurrencies(countryCode) != null ? key.getCurrencies(countryCode) : new HashSet(); + // Find the country based on the country code + Country selectedCountry = null; + for (Country country : key.getCountries()) { + if (country.getCode().equals(countryCode)) { + selectedCountry = country; + break; + } + } + // Attempt to get the default currency code for the selected country + String selectedDefaultCurrencyCode = getDefaultCurrencyCode(selectedCountry, key, countryCode); + + if (selectedDefaultCurrencyCode == null) { + // If no default currency code is found, use the first currency in the list + selectedDefaultCurrencyCode = currencyCodes.iterator().next().getCode(); // Get the first currency code + } TreeMap currencyNameCodeMap = new TreeMap<>(); - String selectedCurrencyName = ""; + String selectedCurrencyName = null; for (Currency currency : currencyCodes) { - if (currency.getCode().equals(currencyCode)) { + if (currency.getCode().equals(selectedDefaultCurrencyCode)) { selectedCurrencyName = currency.getName(); } currencyNameCodeMap.put(currency.getName(), currency.getCode()); @@ -293,6 +323,28 @@ public void onError(@NonNull final Errors errors) { }); } + // Helper method to get the DefaultCurrencyCode + private String getDefaultCurrencyCode(@NonNull Country country, @Nullable HyperwalletTransferMethodConfigurationKey keys, + @NonNull String countryCode) { + //Get the default currency code from the selected country + String defaultCurrencyCode = country.getDefaultCurrency(); + // If the country has a default currency code, check if it's in the list of available currencies + if (defaultCurrencyCode != null) { + Set currencies = keys.getCurrencies(countryCode); + for (Currency currency : currencies) { + if (currency.getCode().equals(defaultCurrencyCode)) { + return currency.getCode(); // Return the country's currency code, if it exists in the list + } + } + } + // If the default currency is not found, return the first currency from the list (if available) + if (!keys.getCurrencies(countryCode).isEmpty()) { + return keys.getCurrencies(countryCode).iterator().next().getCode(); // Return the first currency code in the list + } + return null; + } + + private List getTransferMethodSelectionItems( @NonNull final String countryCode, @NonNull final String currencyCode, @NonNull final String userProfileType, @@ -309,7 +361,7 @@ private List getTransferMethodSelectionItems( } private void loadFeeAndProcessingTimeAndShowTransferMethods(final String countryCode, final String currencyCode, - final User user) { + final User user) { mTransferMethodConfigurationRepository.getTransferMethodTypesFeeAndProcessingTime(countryCode, currencyCode, new TransferMethodConfigurationRepository.LoadKeysCallback() { @Override From 473ca74938bb9b3aed610762bb31e07422e04ffd Mon Sep 17 00:00:00 2001 From: Aswini Date: Thu, 20 Mar 2025 16:37:01 -0700 Subject: [PATCH 2/5] Addressed review comments. --- .../view/SelectTransferMethodPresenter.java | 64 ++++++------------- 1 file changed, 21 insertions(+), 43 deletions(-) diff --git a/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/SelectTransferMethodPresenter.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/SelectTransferMethodPresenter.java index 4cff6a793..0e940065e 100644 --- a/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/SelectTransferMethodPresenter.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/SelectTransferMethodPresenter.java @@ -146,30 +146,13 @@ public void onKeysLoaded(@Nullable final HyperwalletTransferMethodConfigurationK if (!mView.isActive()) { return; } - List currencies = key.getCurrencies(countryCode) != null ? - new ArrayList<>(key.getCurrencies(countryCode)) : - new ArrayList(); - - Country selectedCountry = null; - for (Country country : key.getCountries()) { - if (country.getCode().equals(countryCode)) { - selectedCountry = country; - break; - } - } - // Attempt to get the default currency code for the selected country - String selectedCurrencyCode = getDefaultCurrencyCode(selectedCountry, key, countryCode); + String selectedCurrencyCode = getDefaultCurrencyCode(key, countryCode); if (selectedCurrencyCode == null) { - // If no default currency code is found, use the first currency in the list - selectedCurrencyCode = currencies.get(0).getCode(); + return; } - - // Show the selected country and currency in the UI mView.showTransferMethodCountry(countryCode); mView.showTransferMethodCurrency(selectedCurrencyCode); - - // Load fee, processing time, and other transfer methods loadFeeAndProcessingTimeAndShowTransferMethods(countryCode, selectedCurrencyCode, user); } @@ -284,24 +267,13 @@ public void onKeysLoaded(@Nullable HyperwalletTransferMethodConfigurationKey key if (!mView.isActive()) { return; } - Set currencyCodes = key.getCurrencies(countryCode) != null ? - key.getCurrencies(countryCode) : new HashSet(); - // Find the country based on the country code - Country selectedCountry = null; - for (Country country : key.getCountries()) { - if (country.getCode().equals(countryCode)) { - selectedCountry = country; - break; - } - } - // Attempt to get the default currency code for the selected country - String selectedDefaultCurrencyCode = getDefaultCurrencyCode(selectedCountry, key, countryCode); + String selectedDefaultCurrencyCode = getDefaultCurrencyCode(key, countryCode); if (selectedDefaultCurrencyCode == null) { - // If no default currency code is found, use the first currency in the list - selectedDefaultCurrencyCode = currencyCodes.iterator().next().getCode(); // Get the first currency code + return; } - + Set currencyCodes = key.getCurrencies(countryCode) != null ? + key.getCurrencies(countryCode) : new HashSet(); TreeMap currencyNameCodeMap = new TreeMap<>(); String selectedCurrencyName = null; for (Currency currency : currencyCodes) { @@ -324,22 +296,28 @@ public void onError(@NonNull final Errors errors) { } // Helper method to get the DefaultCurrencyCode - private String getDefaultCurrencyCode(@NonNull Country country, @Nullable HyperwalletTransferMethodConfigurationKey keys, - @NonNull String countryCode) { - //Get the default currency code from the selected country - String defaultCurrencyCode = country.getDefaultCurrency(); - // If the country has a default currency code, check if it's in the list of available currencies + private String getDefaultCurrencyCode(@NonNull final HyperwalletTransferMethodConfigurationKey keys, @NonNull final String countryCode) { + Country selectedCountry = null; + for (Country country : keys.getCountries()) { + if (country.getCode().equals(countryCode)) { + selectedCountry = country; + break; + } + } + if (selectedCountry == null) { + return null; + } + Set currencies = keys.getCurrencies(countryCode); + String defaultCurrencyCode = selectedCountry.getDefaultCurrency(); if (defaultCurrencyCode != null) { - Set currencies = keys.getCurrencies(countryCode); for (Currency currency : currencies) { if (currency.getCode().equals(defaultCurrencyCode)) { - return currency.getCode(); // Return the country's currency code, if it exists in the list + return currency.getCode(); } } } - // If the default currency is not found, return the first currency from the list (if available) if (!keys.getCurrencies(countryCode).isEmpty()) { - return keys.getCurrencies(countryCode).iterator().next().getCode(); // Return the first currency code in the list + return keys.getCurrencies(countryCode).iterator().next().getCode(); } return null; } From da2057c587bb2984fcbbebb31bced2c1e773d838 Mon Sep 17 00:00:00 2001 From: Aswini Date: Tue, 25 Mar 2025 10:46:59 -0700 Subject: [PATCH 3/5] updated core SDK version. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index af660ad29..fd8b7af79 100644 --- a/build.gradle +++ b/build.gradle @@ -73,7 +73,7 @@ subprojects { targetVersion = 34 codeVersion = 1 - hyperwalletCoreVersion = '1.0.0-beta12' + hyperwalletCoreVersion = '1.0.3' hyperwalletInsightVersion = '1.0.0-beta02' // androidMaterialVersion = '1.0.0' From 3c9681e583df18d2271125f9cdea1f246213d06a Mon Sep 17 00:00:00 2001 From: Aswini Date: Tue, 25 Mar 2025 11:42:03 -0700 Subject: [PATCH 4/5] fixed lint errors. --- .../android/ui/receipt/view/ListReceiptsFragment.java | 4 ++-- .../android/ui/receipt/view/TabbedListReceiptsFragment.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListReceiptsFragment.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListReceiptsFragment.java index f66ee74b2..5c22cabef 100644 --- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListReceiptsFragment.java +++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListReceiptsFragment.java @@ -195,7 +195,7 @@ public void onChanged(Boolean loading) { } }); - mReceiptViewModel.errors().observe(this, new Observer>() { + mReceiptViewModel.errors().observe(getViewLifecycleOwner(), new Observer>() { @Override public void onChanged(Event errorsEvent) { if (errorsEvent != null && !errorsEvent.isContentConsumed()) { @@ -204,7 +204,7 @@ public void onChanged(Event errorsEvent) { } }); - mReceiptViewModel.getDetailNavigation().observe(this, new Observer>() { + mReceiptViewModel.getDetailNavigation().observe(getViewLifecycleOwner(), new Observer>() { @Override public void onChanged(@NonNull final Event event) { navigate(event); diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/TabbedListReceiptsFragment.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/TabbedListReceiptsFragment.java index 0b053769b..5dfceb128 100644 --- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/TabbedListReceiptsFragment.java +++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/TabbedListReceiptsFragment.java @@ -108,7 +108,7 @@ private void retryCurrentListFragment() { } private void registerObservers() { - mTabbedListReceiptsViewModel.getPrepaidCards().observe(this, new Observer>() { + mTabbedListReceiptsViewModel.getPrepaidCards().observe(getViewLifecycleOwner(), new Observer>() { @Override public void onChanged(List prepaidCards) { if (!prepaidCards.isEmpty()) { @@ -137,7 +137,7 @@ public void onChanged(List prepaidCards) { } }); - mTabbedListReceiptsViewModel.getRetryListReceipts().observe(this, new Observer() { + mTabbedListReceiptsViewModel.getRetryListReceipts().observe(getViewLifecycleOwner(), new Observer() { @Override public void onChanged(Boolean aBoolean) { retryCurrentListFragment(); From 90f4e172f3f367126652754b54f9bb954b8eb62a Mon Sep 17 00:00:00 2001 From: Aswini Date: Tue, 25 Mar 2025 13:46:24 -0700 Subject: [PATCH 5/5] reverted changes for loadCurrencySelection method. --- .../view/SelectTransferMethodPresenter.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/SelectTransferMethodPresenter.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/SelectTransferMethodPresenter.java index 0e940065e..fcc06b2f5 100644 --- a/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/SelectTransferMethodPresenter.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/SelectTransferMethodPresenter.java @@ -267,17 +267,14 @@ public void onKeysLoaded(@Nullable HyperwalletTransferMethodConfigurationKey key if (!mView.isActive()) { return; } - String selectedDefaultCurrencyCode = getDefaultCurrencyCode(key, countryCode); - if (selectedDefaultCurrencyCode == null) { - return; - } Set currencyCodes = key.getCurrencies(countryCode) != null ? key.getCurrencies(countryCode) : new HashSet(); + TreeMap currencyNameCodeMap = new TreeMap<>(); - String selectedCurrencyName = null; + String selectedCurrencyName = ""; for (Currency currency : currencyCodes) { - if (currency.getCode().equals(selectedDefaultCurrencyCode)) { + if (currency.getCode().equals(currencyCode)) { selectedCurrencyName = currency.getName(); } currencyNameCodeMap.put(currency.getName(), currency.getCode());