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.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)

View File

@ -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<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;
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<String> 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) {