From bb054c1b865a39ce5c5da1d0b98e45ac651e696a Mon Sep 17 00:00:00 2001 From: moon <56061215+MgKyawLay@users.noreply.github.com> Date: Sun, 28 Jun 2026 21:27:38 +0630 Subject: [PATCH] merge fix --- .../utsmyanmar/ui/navigation/AppNavGraph.kt | 22 ++++++++++++ .../utsmyanmar/paylibs/print/PrintHelper.java | 30 ++++++++++++++++ .../paylibs/print/printx/BaseXPrint.java | 34 ++++++++++--------- 3 files changed, 70 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/navigation/AppNavGraph.kt b/app/src/main/java/com/mob/utsmyanmar/ui/navigation/AppNavGraph.kt index 8a77c6d..efb3ef1 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/navigation/AppNavGraph.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/navigation/AppNavGraph.kt @@ -18,6 +18,7 @@ import com.mob.utsmyanmar.ui.dashboard.DashboardScreen2 import com.mob.utsmyanmar.ui.dashboard.SeeMoreScreen import com.mob.utsmyanmar.ui.device_info.DeviceInfoViewModel import com.mob.utsmyanmar.ui.functions.FunctionsScreen +import com.mob.utsmyanmar.ui.history_functions.HistoryRoute import com.mob.utsmyanmar.ui.input_amount.AmountRoute import com.mob.utsmyanmar.ui.pinpad.PinPadRoute import com.mob.utsmyanmar.ui.pinpad.PinPadViewModel @@ -109,6 +110,9 @@ fun AppNavGraph( navController.navigate(Routes.Functions.route) { launchSingleTop = true } + }, + onNavigateHistory = { + navController.navigate(Routes.History.route) } ) } @@ -435,6 +439,24 @@ fun AppNavGraph( ) } + composable(Routes.History.route) { + val sharedViewModel: SharedViewModel = hiltViewModel(activity) + val transResultViewModel: TransactionResultViewModel = hiltViewModel(activity) + HistoryRoute( + sharedViewModel = sharedViewModel, + onBack = { navController.popBackStack() }, + onNavigatePrintReceipt = { + transResultViewModel.onEvent( + TransactionResultEvent.Start, + sharedViewModel + ) + navController.navigate(Routes.PrintReceipt.route) { + launchSingleTop = true + } + } + ) + } + composable(Routes.Processing.route) { val sharedViewModel: SharedViewModel = hiltViewModel(activity) val transProcessViewModel: TransProcessViewModel = hiltViewModel(activity) diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/PrintHelper.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/PrintHelper.java index f2dd782..9b731d5 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/PrintHelper.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/PrintHelper.java @@ -5,6 +5,9 @@ import android.os.RemoteException; import com.sunmi.peripheral.printer.SunmiPrinterService; import com.utsmyanmar.paylibs.PayLibsUtils; +import java.util.ArrayList; +import java.util.List; + public class PrintHelper { private SunmiPrinterService sunmiPrinterService; @@ -40,4 +43,31 @@ public class PrintHelper { paperRollStatusCallback.unknownStatusOccur(result); } } + + public static List wrapAddressText(String text, int maxLen) { + List lines = new ArrayList<>(); + String[] paragraphs = text.split("\\r?\\n"); + + for (String paragraph : paragraphs) { + String[] words = paragraph.split("\\s+"); + StringBuilder currentLine = new StringBuilder(); + + for (String word : words) { + if (currentLine.length() == 0) { + currentLine.append(word); + } else if (currentLine.length() + word.length() + 1 <= maxLen) { + currentLine.append(" ").append(word); + } else { + lines.add(currentLine.toString()); + currentLine = new StringBuilder(word); + } + } + + if (currentLine.length() > 0) { + lines.add(currentLine.toString()); + } + } + + return lines; + } } 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 204aa17..dfc33a6 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 @@ -1,12 +1,13 @@ package com.utsmyanmar.paylibs.print.printx; +import static com.utsmyanmar.paylibs.print.PrintHelper.wrapAddressText; + import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Build; import android.os.RemoteException; import android.text.TextUtils; -import com.sunmi.pay.hardware.aidl.AidlConstants; import com.sunmi.peripheral.printer.InnerResultCallback; import com.sunmi.peripheral.printer.SunmiPrinterService; import com.utsmyanmar.paylibs.Constant; @@ -14,20 +15,17 @@ import com.utsmyanmar.paylibs.PayLibsUtils; import com.utsmyanmar.paylibs.model.MsgField; import com.utsmyanmar.paylibs.model.PayDetail; import com.utsmyanmar.paylibs.model.SettleData; -import com.utsmyanmar.paylibs.model.enums.TransCVM; import com.utsmyanmar.paylibs.print.PrintUtils; import com.utsmyanmar.paylibs.system.BaseErrorCode; -import com.utsmyanmar.paylibs.utils.POSUtil; import com.utsmyanmar.paylibs.utils.core_utils.ByteUtil; import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation; import com.utsmyanmar.paylibs.utils.enums.CardScheme; -import com.utsmyanmar.paylibs.utils.enums.CurrencyType; import com.utsmyanmar.paylibs.utils.enums.HostType; import com.utsmyanmar.paylibs.utils.iso_utils.TransactionType; import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType; import com.utsmyanmar.paylibs.utils.print_utils.BitmapUtils; -import java.util.Arrays; +import java.util.ArrayList; import java.util.Comparator; import java.util.LinkedHashMap; import java.util.List; @@ -801,28 +799,33 @@ public abstract class BaseXPrint { String receiptHeader = ""; String merchantName = ""; String merchantAddress = ""; - String merchantAddress2 = ""; String merchantPhoneNo = ""; + String terminalName = ""; + List wrappedAddressText = new ArrayList<>(); merchantName = SystemParamsOperation.getInstance().getMerchantName(); receiptHeader = SystemParamsOperation.getInstance().getReceiptHeader(); merchantAddress = SystemParamsOperation.getInstance().getMerchantAddress(); - merchantAddress2 = SystemParamsOperation.getInstance().getMerchantAddress2(); merchantPhoneNo = SystemParamsOperation.getInstance().getMerchantPhoneNo(); - if (receiptHeader == null || TextUtils.equals(receiptHeader, "") || receiptHeader.trim().isEmpty() ) { + if (receiptHeader == null || TextUtils.equals(receiptHeader, "") || receiptHeader.trim().isEmpty()) { receiptHeader = merchantName; } - if (TextUtils.equals(merchantAddress, "") || merchantAddress == null) { - merchantAddress = "MERCHANT ADDRESS1"; - } - if (TextUtils.equals(merchantAddress2, "") || merchantAddress2 == null) { - merchantAddress2 = "MERCHANT ADDRESS2"; + if (TextUtils.equals(merchantAddress, "") || merchantAddress == null || merchantAddress.isEmpty()) { + merchantAddress = ""; + } else { + merchantAddress = merchantAddress + .replace("\\r\\n", "\n") + .replace("\\n", "\n") + .replace("\r\n", "\n"); + + wrappedAddressText = wrapAddressText(merchantAddress, 29); } if (TextUtils.equals(merchantPhoneNo, "") || merchantPhoneNo == null) { - merchantPhoneNo = "MERCHANT PHONENO"; + merchantPhoneNo = ""; } + try { sunmiPrinterService.sendRAWData(boldOn(), innerResultCallback); @@ -832,8 +835,7 @@ public abstract class BaseXPrint { // sunmiPrinterService.printTextWithFont(merchantName + "\n", "", 24, null); sunmiPrinterService.sendRAWData(boldOff(), innerResultCallback); sunmiPrinterService.setFontSize(textSize, innerResultCallback); - sunmiPrinterService.printText(merchantAddress + "\n", innerResultCallback); - sunmiPrinterService.printText(merchantAddress2 + "\n", innerResultCallback); + sunmiPrinterService.printText(wrappedAddressText + "\n", innerResultCallback); sunmiPrinterService.printText(merchantPhoneNo + "\n", innerResultCallback); sunmiPrinterService.lineWrap(1, innerResultCallback); } catch (RemoteException e) {