diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 10290a7..3bb6657 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -43,8 +43,8 @@ android { dimension = "env" applicationIdSuffix = ".uat" versionNameSuffix = "-UAT" - versionCode = 3 - versionName = "2.1" + versionCode = 10 + versionName = "2.8" buildConfigField("String", "ENV", "\"UAT\"") resValue("string", "app_name", "MOB-UAT") } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5947c89..ce0bac5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -29,6 +29,8 @@ Unit = {}, - // signatureBlob is null for Digital mode (using stored signature) or when nothing was drawn onConfirm: (SignatureMode, Bitmap?, signatureBlob: ByteArray?) -> Unit = { _, _, _ -> } ) { val paths = remember { mutableStateListOf>() } val currentPath = remember { mutableStateListOf() } - var selectedMode by remember { mutableStateOf(SignatureMode.Manual) } + var selectedMode by remember { mutableStateOf(SignatureMode.Digital) } var canvasSize by remember { mutableStateOf(Size.Zero) } var strokeWidth = 6f @@ -67,16 +66,15 @@ fun SignaturePad( currentPath.clear() } - fun buildBitmap(): Bitmap? { - if (selectedMode == SignatureMode.Digital) return null + if (selectedMode == SignatureMode.Manual) return null if (paths.isEmpty() && currentPath.isEmpty()) return null if (canvasSize.width <= 0f || canvasSize.height <= 0f) return null val bitmap = createBitmap(canvasSize.width.toInt(), canvasSize.height.toInt(), Bitmap.Config.RGB_565) val canvas = AndroidCanvas(bitmap) - canvas.drawColor(android.graphics.Color.WHITE) // fill white background first + canvas.drawColor(android.graphics.Color.WHITE) val paint = Paint().apply { color = android.graphics.Color.BLACK @@ -129,15 +127,23 @@ fun SignaturePad( ) { Box( modifier = Modifier - .fillMaxWidth(0.85f) // narrower than full width, adjust as needed - .height(180.dp) // fixed height instead of weight(1f) + .fillMaxWidth(0.85f) + .height(180.dp) .align(Alignment.CenterHorizontally) - .background(Color.White, RoundedCornerShape(16.dp)) + .background( + color = if (selectedMode == SignatureMode.Digital) { + Color.White + } else { + Color.White.copy(alpha = 0.55f) + }, + shape = RoundedCornerShape(16.dp) + ) .padding(12.dp) .onSizeChanged { size -> canvasSize = Size(size.width.toFloat(), size.height.toFloat()) } - .pointerInput(Unit) { + .pointerInput(selectedMode) { + if (selectedMode == SignatureMode.Manual) return@pointerInput detectDragGestures( onDragStart = { startOffset -> currentPath.add(startOffset) @@ -193,7 +199,7 @@ fun SignaturePad( ) { SignatureModeOption( title = "Manual Sign", - subtitle = "Customer signs on screen", + subtitle = "Signature on Paper", selected = selectedMode == SignatureMode.Manual, onClick = { selectedMode = SignatureMode.Manual }, modifier = Modifier.fillMaxWidth() @@ -203,7 +209,7 @@ fun SignaturePad( SignatureModeOption( title = "Digital Sign", - subtitle = "Use stored signature", + subtitle = "Draw on pad", selected = selectedMode == SignatureMode.Digital, onClick = { selectedMode = SignatureMode.Digital }, modifier = Modifier.fillMaxWidth() @@ -226,10 +232,6 @@ fun SignaturePad( Button( onClick = { val bitmap = buildBitmap() - if (selectedMode == SignatureMode.Manual && bitmap == null) { - // nothing drawn yet on Manual mode — block confirm - return@Button - } val signatureBlob = bitmap?.let { bitmapToBlob(it) } onConfirm(selectedMode, bitmap, signatureBlob) }, @@ -297,4 +299,4 @@ fun SignaturePadPreview() { MOBPOSTheme { SignaturePad() } -} \ No newline at end of file +} diff --git a/app/src/main/res/xml/network_security_config.xml b/app/src/main/res/xml/network_security_config.xml new file mode 100644 index 0000000..f12aa05 --- /dev/null +++ b/app/src/main/res/xml/network_security_config.xml @@ -0,0 +1,8 @@ + + + + + posuat.myanmarorientalbank.com:5033 + + + diff --git a/paylibs/src/main/assets/cascadiaCodeRegular.ttf b/paylibs/src/main/assets/cascadiaCodeRegular.ttf new file mode 100644 index 0000000..cd86abc Binary files /dev/null and b/paylibs/src/main/assets/cascadiaCodeRegular.ttf differ diff --git a/paylibs/src/main/assets/gabaritoVariableFont.ttf b/paylibs/src/main/assets/gabaritoVariableFont.ttf new file mode 100644 index 0000000..56bd620 Binary files /dev/null and b/paylibs/src/main/assets/gabaritoVariableFont.ttf differ diff --git a/paylibs/src/main/assets/jetBrainsMonoRegular.ttf b/paylibs/src/main/assets/jetBrainsMonoRegular.ttf new file mode 100644 index 0000000..436c982 Binary files /dev/null and b/paylibs/src/main/assets/jetBrainsMonoRegular.ttf differ diff --git a/paylibs/src/main/assets/libreBaskervilleRegular.ttf b/paylibs/src/main/assets/libreBaskervilleRegular.ttf new file mode 100644 index 0000000..1f3aece Binary files /dev/null and b/paylibs/src/main/assets/libreBaskervilleRegular.ttf differ diff --git a/paylibs/src/main/assets/losevkaCharonMonoRegular.ttf b/paylibs/src/main/assets/losevkaCharonMonoRegular.ttf new file mode 100644 index 0000000..48738cf Binary files /dev/null and b/paylibs/src/main/assets/losevkaCharonMonoRegular.ttf differ 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 692b7aa..1724437 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 @@ -50,7 +50,7 @@ public abstract class BaseXPrint { protected String currentTime; - protected static final String typeface_name = "jbm_semibold.ttf"; + protected static final String typeface_name = "jetBrainsMonoRegular.ttf"; protected static final String MPU_AID = "A0000004820000000001"; protected static final String HOST_NAME_VM = "VISA/ MASTERCARD"; diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsSettings.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsSettings.java index aac1055..6145d9e 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsSettings.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsSettings.java @@ -38,7 +38,7 @@ public class SystemParamsSettings implements Serializable { private boolean checkExpSwitch = false; -// private String tmsAddress = "http://posuat.myanmarorientalbank.com:5033"; +// private String tmsAddress = "http://posuat.myanmarorientalbank.com:5033/api/v1"; private String tmsAddress = "https://sirius-nest.utsmyanmar.com/api/v1"; // private String tmsAddress = "http://128.199.170.203";