merge fix

This commit is contained in:
moon 2026-06-28 21:27:38 +06:30
parent a6377fb16d
commit bb054c1b86
3 changed files with 70 additions and 16 deletions

View File

@ -18,6 +18,7 @@ import com.mob.utsmyanmar.ui.dashboard.DashboardScreen2
import com.mob.utsmyanmar.ui.dashboard.SeeMoreScreen import com.mob.utsmyanmar.ui.dashboard.SeeMoreScreen
import com.mob.utsmyanmar.ui.device_info.DeviceInfoViewModel import com.mob.utsmyanmar.ui.device_info.DeviceInfoViewModel
import com.mob.utsmyanmar.ui.functions.FunctionsScreen 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.input_amount.AmountRoute
import com.mob.utsmyanmar.ui.pinpad.PinPadRoute import com.mob.utsmyanmar.ui.pinpad.PinPadRoute
import com.mob.utsmyanmar.ui.pinpad.PinPadViewModel import com.mob.utsmyanmar.ui.pinpad.PinPadViewModel
@ -109,6 +110,9 @@ fun AppNavGraph(
navController.navigate(Routes.Functions.route) { navController.navigate(Routes.Functions.route) {
launchSingleTop = true 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) { composable(Routes.Processing.route) {
val sharedViewModel: SharedViewModel = hiltViewModel(activity) val sharedViewModel: SharedViewModel = hiltViewModel(activity)
val transProcessViewModel: TransProcessViewModel = hiltViewModel(activity) val transProcessViewModel: TransProcessViewModel = hiltViewModel(activity)

View File

@ -5,6 +5,9 @@ import android.os.RemoteException;
import com.sunmi.peripheral.printer.SunmiPrinterService; import com.sunmi.peripheral.printer.SunmiPrinterService;
import com.utsmyanmar.paylibs.PayLibsUtils; import com.utsmyanmar.paylibs.PayLibsUtils;
import java.util.ArrayList;
import java.util.List;
public class PrintHelper { public class PrintHelper {
private SunmiPrinterService sunmiPrinterService; private SunmiPrinterService sunmiPrinterService;
@ -40,4 +43,31 @@ public class PrintHelper {
paperRollStatusCallback.unknownStatusOccur(result); paperRollStatusCallback.unknownStatusOccur(result);
} }
} }
public static List<String> wrapAddressText(String text, int maxLen) {
List<String> 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;
}
} }

View File

@ -1,12 +1,13 @@
package com.utsmyanmar.paylibs.print.printx; package com.utsmyanmar.paylibs.print.printx;
import static com.utsmyanmar.paylibs.print.PrintHelper.wrapAddressText;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.os.Build; import android.os.Build;
import android.os.RemoteException; import android.os.RemoteException;
import android.text.TextUtils; import android.text.TextUtils;
import com.sunmi.pay.hardware.aidl.AidlConstants;
import com.sunmi.peripheral.printer.InnerResultCallback; import com.sunmi.peripheral.printer.InnerResultCallback;
import com.sunmi.peripheral.printer.SunmiPrinterService; import com.sunmi.peripheral.printer.SunmiPrinterService;
import com.utsmyanmar.paylibs.Constant; 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.MsgField;
import com.utsmyanmar.paylibs.model.PayDetail; import com.utsmyanmar.paylibs.model.PayDetail;
import com.utsmyanmar.paylibs.model.SettleData; import com.utsmyanmar.paylibs.model.SettleData;
import com.utsmyanmar.paylibs.model.enums.TransCVM;
import com.utsmyanmar.paylibs.print.PrintUtils; import com.utsmyanmar.paylibs.print.PrintUtils;
import com.utsmyanmar.paylibs.system.BaseErrorCode; 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.ByteUtil;
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation; import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
import com.utsmyanmar.paylibs.utils.enums.CardScheme; 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.enums.HostType;
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionType; import com.utsmyanmar.paylibs.utils.iso_utils.TransactionType;
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType; import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
import com.utsmyanmar.paylibs.utils.print_utils.BitmapUtils; import com.utsmyanmar.paylibs.utils.print_utils.BitmapUtils;
import java.util.Arrays; import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
@ -801,28 +799,33 @@ public abstract class BaseXPrint {
String receiptHeader = ""; String receiptHeader = "";
String merchantName = ""; String merchantName = "";
String merchantAddress = ""; String merchantAddress = "";
String merchantAddress2 = "";
String merchantPhoneNo = ""; String merchantPhoneNo = "";
String terminalName = "";
List<String> wrappedAddressText = new ArrayList<>();
merchantName = SystemParamsOperation.getInstance().getMerchantName(); merchantName = SystemParamsOperation.getInstance().getMerchantName();
receiptHeader = SystemParamsOperation.getInstance().getReceiptHeader(); receiptHeader = SystemParamsOperation.getInstance().getReceiptHeader();
merchantAddress = SystemParamsOperation.getInstance().getMerchantAddress(); merchantAddress = SystemParamsOperation.getInstance().getMerchantAddress();
merchantAddress2 = SystemParamsOperation.getInstance().getMerchantAddress2();
merchantPhoneNo = SystemParamsOperation.getInstance().getMerchantPhoneNo(); merchantPhoneNo = SystemParamsOperation.getInstance().getMerchantPhoneNo();
if (receiptHeader == null || TextUtils.equals(receiptHeader, "") || receiptHeader.trim().isEmpty() ) { if (receiptHeader == null || TextUtils.equals(receiptHeader, "") || receiptHeader.trim().isEmpty()) {
receiptHeader = merchantName; receiptHeader = merchantName;
} }
if (TextUtils.equals(merchantAddress, "") || merchantAddress == null) { if (TextUtils.equals(merchantAddress, "") || merchantAddress == null || merchantAddress.isEmpty()) {
merchantAddress = "MERCHANT ADDRESS1"; merchantAddress = "";
} } else {
if (TextUtils.equals(merchantAddress2, "") || merchantAddress2 == null) { merchantAddress = merchantAddress
merchantAddress2 = "MERCHANT ADDRESS2"; .replace("\\r\\n", "\n")
.replace("\\n", "\n")
.replace("\r\n", "\n");
wrappedAddressText = wrapAddressText(merchantAddress, 29);
} }
if (TextUtils.equals(merchantPhoneNo, "") || merchantPhoneNo == null) { if (TextUtils.equals(merchantPhoneNo, "") || merchantPhoneNo == null) {
merchantPhoneNo = "MERCHANT PHONENO"; merchantPhoneNo = "";
} }
try { try {
sunmiPrinterService.sendRAWData(boldOn(), innerResultCallback); sunmiPrinterService.sendRAWData(boldOn(), innerResultCallback);
@ -832,8 +835,7 @@ public abstract class BaseXPrint {
// sunmiPrinterService.printTextWithFont(merchantName + "\n", "", 24, null); // sunmiPrinterService.printTextWithFont(merchantName + "\n", "", 24, null);
sunmiPrinterService.sendRAWData(boldOff(), innerResultCallback); sunmiPrinterService.sendRAWData(boldOff(), innerResultCallback);
sunmiPrinterService.setFontSize(textSize, innerResultCallback); sunmiPrinterService.setFontSize(textSize, innerResultCallback);
sunmiPrinterService.printText(merchantAddress + "\n", innerResultCallback); sunmiPrinterService.printText(wrappedAddressText + "\n", innerResultCallback);
sunmiPrinterService.printText(merchantAddress2 + "\n", innerResultCallback);
sunmiPrinterService.printText(merchantPhoneNo + "\n", innerResultCallback); sunmiPrinterService.printText(merchantPhoneNo + "\n", innerResultCallback);
sunmiPrinterService.lineWrap(1, innerResultCallback); sunmiPrinterService.lineWrap(1, innerResultCallback);
} catch (RemoteException e) { } catch (RemoteException e) {