diff --git a/app/src/main/java/com/utsmm/kbz/MainFragment.java b/app/src/main/java/com/utsmm/kbz/MainFragment.java index 09462d7..0840b7c 100644 --- a/app/src/main/java/com/utsmm/kbz/MainFragment.java +++ b/app/src/main/java/com/utsmm/kbz/MainFragment.java @@ -471,6 +471,10 @@ public class MainFragment extends DataBindingFragment { values.add(normalizeCurrency(cardPrimaryCurrency.name)); } + if (!SystemParamsOperation.getInstance().getDuelCurrencyStatus()) { + return new ArrayList<>(values); + } + String secondaryCurrency = normalizeCurrency(SystemParamsOperation.getInstance().getThirdHostCurrency()); if (!TextUtils.isEmpty(SystemParamsOperation.getInstance().getThirdHostName()) && !TextUtils.isEmpty(secondaryCurrency)) { values.add(secondaryCurrency); @@ -484,8 +488,10 @@ public class MainFragment extends DataBindingFragment { String selected = normalizeCurrency(selectedCurrency); String secondaryCurrency = normalizeCurrency(SystemParamsOperation.getInstance().getThirdHostCurrency()); + boolean dualCurrencyEnabled = SystemParamsOperation.getInstance().getDuelCurrencyStatus(); - boolean useSecondaryCardHost = !TextUtils.isEmpty(SystemParamsOperation.getInstance().getThirdHostName()) + boolean useSecondaryCardHost = dualCurrencyEnabled + && !TextUtils.isEmpty(SystemParamsOperation.getInstance().getThirdHostName()) && !TextUtils.isEmpty(secondaryCurrency) && secondaryCurrency.equals(selected); diff --git a/app/src/main/java/com/utsmm/kbz/ui/dashboard/DashboardTransFragment.java b/app/src/main/java/com/utsmm/kbz/ui/dashboard/DashboardTransFragment.java index 89b1983..9758c02 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/dashboard/DashboardTransFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/dashboard/DashboardTransFragment.java @@ -315,6 +315,10 @@ public class DashboardTransFragment extends DataBindingFragment { values.add(normalizeCurrency(cardPrimaryCurrency.name)); } + if (!SystemParamsOperation.getInstance().getDuelCurrencyStatus()) { + return new ArrayList<>(values); + } + String secondaryCurrency = normalizeCurrency(SystemParamsOperation.getInstance().getThirdHostCurrency()); if (!TextUtils.isEmpty(SystemParamsOperation.getInstance().getThirdHostName()) && !TextUtils.isEmpty(secondaryCurrency)) { values.add(secondaryCurrency); @@ -328,8 +332,10 @@ public class DashboardTransFragment extends DataBindingFragment { String selected = normalizeCurrency(selectedCurrency); String secondaryCurrency = normalizeCurrency(SystemParamsOperation.getInstance().getThirdHostCurrency()); + boolean dualCurrencyEnabled = SystemParamsOperation.getInstance().getDuelCurrencyStatus(); - boolean useSecondaryCardHost = !TextUtils.isEmpty(SystemParamsOperation.getInstance().getThirdHostName()) + boolean useSecondaryCardHost = dualCurrencyEnabled + && !TextUtils.isEmpty(SystemParamsOperation.getInstance().getThirdHostName()) && !TextUtils.isEmpty(secondaryCurrency) && secondaryCurrency.equals(selected); diff --git a/app/src/main/java/com/utsmm/kbz/util/tms/TMSSetupsImpl.java b/app/src/main/java/com/utsmm/kbz/util/tms/TMSSetupsImpl.java index b3d79a8..1c25442 100644 --- a/app/src/main/java/com/utsmm/kbz/util/tms/TMSSetupsImpl.java +++ b/app/src/main/java/com/utsmm/kbz/util/tms/TMSSetupsImpl.java @@ -149,6 +149,9 @@ public class TMSSetupsImpl implements TMSSetups{ List siriusHosts = siriusResponse.getHosts(); List siriusProperties = siriusResponse.getProperties(); + boolean isDualCurrencyEnabled = isDualCurrencyEnabled(siriusProperties); + + SystemParamsOperation.getInstance().setDuelCurrencyStatus(isDualCurrencyEnabled); ArrayList imgUrls = new ArrayList<>(); @@ -207,7 +210,7 @@ public class TMSSetupsImpl implements TMSSetups{ } // For dual-currency card flow, prefer MMK as PRIMARY HOST. - if (cardHosts.size() >= 2) { + if (isDualCurrencyEnabled && cardHosts.size() >= 2) { SiriusHost first = cardHosts.get(0); SiriusHost second = cardHosts.get(1); boolean firstIsMMK = "MMK".equalsIgnoreCase(first.getCurrency()); @@ -237,7 +240,7 @@ public class TMSSetupsImpl implements TMSSetups{ } // SECONDARY HOST (Card #2) - if (cardHosts.size() > 1) { + if (isDualCurrencyEnabled && cardHosts.size() > 1) { SiriusHost secondaryCard = cardHosts.get(1); SystemParamsOperation.getInstance().setThirdHostName(secondaryCard.getName() == null ? "" : secondaryCard.getName()); SystemParamsOperation.getInstance().setThirdHostTerminalId(secondaryCard.getTid() == null ? "" : secondaryCard.getTid()); @@ -647,6 +650,24 @@ public class TMSSetupsImpl implements TMSSetups{ return EReceiptHelper.sha256(dataToHash); } + private boolean isDualCurrencyEnabled(List siriusProperties) { + if (siriusProperties == null) { + return false; + } + + for (SiriusProperty siriusProperty : siriusProperties) { + if (siriusProperty == null) { + continue; + } + + if (TextUtils.equals("is_duel_currency", siriusProperty.getName())) { + return parseBoolean(siriusProperty.getProperty()); + } + } + + return false; + } + private String convertToString(ArrayList list) {