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' 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(); 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..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 @@ -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(); @@ -146,15 +146,14 @@ public void onKeysLoaded(@Nullable final HyperwalletTransferMethodConfigurationK if (!mView.isActive()) { return; } - List currencies = key.getCurrencies(countryCode) != null ? - new ArrayList<>(key.getCurrencies(countryCode)) : - new ArrayList(); + String selectedCurrencyCode = getDefaultCurrencyCode(key, countryCode); + if (selectedCurrencyCode == null) { + return; + } mView.showTransferMethodCountry(countryCode); - mView.showTransferMethodCurrency(currencies.get(0).getCode()); - - loadFeeAndProcessingTimeAndShowTransferMethods(countryCode, currencies.get(0).getCode(), - user); + mView.showTransferMethodCurrency(selectedCurrencyCode); + loadFeeAndProcessingTimeAndShowTransferMethods(countryCode, selectedCurrencyCode, user); } @Override @@ -180,7 +179,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 +225,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); } @@ -293,6 +292,34 @@ public void onError(@NonNull final Errors errors) { }); } + // Helper method to get the DefaultCurrencyCode + 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) { + for (Currency currency : currencies) { + if (currency.getCode().equals(defaultCurrencyCode)) { + return currency.getCode(); + } + } + } + if (!keys.getCurrencies(countryCode).isEmpty()) { + return keys.getCurrencies(countryCode).iterator().next().getCode(); + } + return null; + } + + private List getTransferMethodSelectionItems( @NonNull final String countryCode, @NonNull final String currencyCode, @NonNull final String userProfileType, @@ -309,7 +336,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