diff --git a/app/src/main/java/com/utsmm/kbz/ui/settings/HostConfigViewModel.java b/app/src/main/java/com/utsmm/kbz/ui/settings/HostConfigViewModel.java index d690c53..37009f8 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/settings/HostConfigViewModel.java +++ b/app/src/main/java/com/utsmm/kbz/ui/settings/HostConfigViewModel.java @@ -44,6 +44,8 @@ public class HostConfigViewModel extends ViewModel { // Third Host public MutableLiveData thirdHostName = new MutableLiveData<>(); + public MutableLiveData thirdHostTid = new MutableLiveData<>(); + public MutableLiveData thirdHostMid = new MutableLiveData<>(); public MutableLiveData thirdHostShortCode = new MutableLiveData<>(); public MutableLiveData thirdHostPrimaryIp = new MutableLiveData<>(); public MutableLiveData thirdHostPrimaryPort = new MutableLiveData<>(); @@ -96,6 +98,8 @@ public class HostConfigViewModel extends ViewModel { if (sp.getThirdHostName() != null && !sp.getThirdHostName().isEmpty()) { thirdHostName.setValue(sp.getThirdHostName()); + thirdHostTid.setValue(sp.getThirdHostTerminalId()); + thirdHostMid.setValue(sp.getThirdHostMerchantId()); thirdHostShortCode.setValue(sp.getThirdHostShortCode()); String[] thp = split(sp.getThirdHostIpAddress()); diff --git a/app/src/main/res/layout/fragment_host_config.xml b/app/src/main/res/layout/fragment_host_config.xml index 6f5a56c..9466ee8 100644 --- a/app/src/main/res/layout/fragment_host_config.xml +++ b/app/src/main/res/layout/fragment_host_config.xml @@ -4,9 +4,6 @@ xmlns:tools="http://schemas.android.com/tools"> - - - @@ -99,9 +96,7 @@ + android:orientation="vertical"> - + - + - + - + - + - + - + @@ -175,9 +170,7 @@ + android:orientation="vertical"> - - + + + android:text='@{": " + viewModel.thirdHostTid}'/> - + + + + + + - + - + - + - + @@ -249,9 +248,7 @@ + android:orientation="vertical"> - + - + - + - + - + - + @@ -339,7 +336,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:visibility="@{sharedViewModel.printerDisabled ? View.GONE : View.VISIBLE}" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"> diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java index c3abb26..108bcf8 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java @@ -1315,49 +1315,77 @@ public abstract class BaseXPrint { protected void printTerminalConfiguration() { SystemParamsOperation sp = SystemParamsOperation.getInstance(); + // ---------- PRIMARY HOST ---------- printer.appendPrnStr("PRIMARY HOST", fontNormal, AlignEnum.LEFT, true); - printer.appendPrnStr("Name : " + sp.getHostName(), fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("TID : " + sp.getTerminalId(), fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("MID : " + sp.getMerchantId(), fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Name : " + safe(sp.getHostName()), fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("TID : " + safe(sp.getTerminalId()), fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("MID : " + safe(sp.getMerchantId()), fontNormal, AlignEnum.LEFT, false); String[] ipPort = splitIpAndPort(sp.getIpAddress()); - printer.appendPrnStr("Primary Ip : " + ipPort[0], fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Primary IP : " + ipPort[0], fontNormal, AlignEnum.LEFT, false); printer.appendPrnStr("Primary Port : " + ipPort[1], fontNormal, AlignEnum.LEFT, false); String[] secIpPort = splitIpAndPort(sp.getSecIpAddress()); - printer.appendPrnStr("Secondary Ip : " + secIpPort[0], fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Secondary IP : " + secIpPort[0], fontNormal, AlignEnum.LEFT, false); printer.appendPrnStr("Secondary Port: " + secIpPort[1], fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("Currency Code : " + sp.getCurrencyType(), fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Currency : " + normalizeHostCurrency(sp.getCurrencyType() == null ? "" : sp.getCurrencyType().toString()), fontNormal, AlignEnum.LEFT, false); dotBreak(); - // ---------- SECONDARY HOST (optional) ---------- - if (!TextUtils.isEmpty(sp.getSecHostName())) { - printer.appendPrnStr("QR HOST", fontNormal, AlignEnum.LEFT, true); - printer.appendPrnStr("Name : " + sp.getSecHostName(), fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("SHORT CODE : " + sp.getShortCode(), fontNormal, AlignEnum.LEFT, false); - String[] secHostIp = splitIpAndPort(sp.getSecHostIpAddress()); - printer.appendPrnStr("Primary Ip : " + secHostIp[0], fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("Primary Port : " + secHostIp[1], fontNormal, AlignEnum.LEFT, false); - String[] secHostSecIp = splitIpAndPort(sp.getSecHostSecIpAddress()); - printer.appendPrnStr("Secondary Ip : " + secHostSecIp[0], fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("Secondary Port: " + secHostSecIp[1], fontNormal, AlignEnum.LEFT, false); - String qrHostCurrency = TextUtils.isEmpty(sp.getSecHostCurrency()) ? String.valueOf(sp.getCurrencyType()) : sp.getSecHostCurrency(); - printer.appendPrnStr("Currency Code : " + qrHostCurrency, fontNormal, AlignEnum.LEFT, false); - dotBreak(); - printer.appendPrnStr("App Version : " + getAppVersion(), fontNormal, AlignEnum.LEFT, false); - } - // ---------- THIRD HOST (optional) ---------- - if (!TextUtils.isEmpty(sp.getThirdHostName())) { - printer.appendPrnStr("SECONDARY HOST", fontNormal, AlignEnum.LEFT, true); - printer.appendPrnStr("Name : " + sp.getThirdHostName(), fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("SHORT CODE : " + sp.getThirdHostShortCode(), fontNormal, AlignEnum.LEFT, false); - String[] thirdHostIp = splitIpAndPort(sp.getThirdHostIpAddress()); - printer.appendPrnStr("Primary Ip : " + thirdHostIp[0], fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("Primary Port : " + thirdHostIp[1], fontNormal, AlignEnum.LEFT, false); - String[] thirdHostSecIp = splitIpAndPort(sp.getThirdHostSecIpAddress()); - printer.appendPrnStr("Secondary Ip : " + thirdHostSecIp[0], fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("Secondary Port: " + thirdHostSecIp[1], fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("Currency Code : " + sp.getThirdHostCurrency(), fontNormal, AlignEnum.LEFT, false); - dotBreak(); + // ---------- SECONDARY HOST ---------- + printer.appendPrnStr("SECONDARY HOST", fontNormal, AlignEnum.LEFT, true); + printer.appendPrnStr("Name : " + safe(sp.getThirdHostName()), fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("TID : " + safe(sp.getThirdHostTerminalId()), fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("MID : " + safe(sp.getThirdHostMerchantId()), fontNormal, AlignEnum.LEFT, false); + String[] thirdHostIp = splitIpAndPort(sp.getThirdHostIpAddress()); + printer.appendPrnStr("Primary IP : " + thirdHostIp[0], fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Primary Port : " + thirdHostIp[1], fontNormal, AlignEnum.LEFT, false); + String[] thirdHostSecIp = splitIpAndPort(sp.getThirdHostSecIpAddress()); + printer.appendPrnStr("Secondary IP : " + thirdHostSecIp[0], fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Secondary Port: " + thirdHostSecIp[1], fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Currency : " + normalizeHostCurrency(safe(sp.getThirdHostCurrency())), fontNormal, AlignEnum.LEFT, false); + dotBreak(); + + // ---------- QR HOST ---------- + printer.appendPrnStr("QR HOST", fontNormal, AlignEnum.LEFT, true); + printer.appendPrnStr("Name : " + safe(sp.getSecHostName()), fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Short Code : " + safe(sp.getShortCode()), fontNormal, AlignEnum.LEFT, false); + String[] qrHostIp = splitIpAndPort(sp.getSecHostIpAddress()); + printer.appendPrnStr("Primary IP : " + qrHostIp[0], fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Primary Port : " + qrHostIp[1], fontNormal, AlignEnum.LEFT, false); + String[] qrHostSecIp = splitIpAndPort(sp.getSecHostSecIpAddress()); + printer.appendPrnStr("Secondary IP : " + qrHostSecIp[0], fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Secondary Port: " + qrHostSecIp[1], fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Currency : " + normalizeHostCurrency(safe(sp.getSecHostCurrency())), fontNormal, AlignEnum.LEFT, false); + dotBreak(); + + printer.appendPrnStr("App Version : " + getAppVersion(), fontNormal, AlignEnum.LEFT, false); + } + + private String safe(String value) { + return value == null ? "" : value; + } + + private String normalizeHostCurrency(String raw) { + if (TextUtils.isEmpty(raw)) return ""; + String value = raw.trim().toUpperCase(); + switch (value) { + case "104": + case "MMK": + return "MMK"; + case "840": + case "USD": + return "USD"; + case "156": + case "CNY": + case "RMB": + return "CNY"; + case "764": + case "THB": + return "THB"; + case "643": + case "RUB": + return "RUB"; + default: + return value; } }