diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/cardwaiting/CardWaitingViewModel.kt b/app/src/main/java/com/mob/utsmyanmar/ui/cardwaiting/CardWaitingViewModel.kt index bb7c804..fdd28f8 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/cardwaiting/CardWaitingViewModel.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/cardwaiting/CardWaitingViewModel.kt @@ -16,14 +16,13 @@ import com.utsmyanmar.ecr.ECRHelper import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType import kotlinx.coroutines.Job -import kotlinx.coroutines.delay import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch -import sunmi.sunmiui.utils.LogUtil class CardWaitingViewModel( private val cardReadViewModel: CardReaderViewModel, diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardMenuItems.kt b/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardMenuItems.kt index c02ddc5..089de04 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardMenuItems.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardMenuItems.kt @@ -1,5 +1,8 @@ package com.mob.utsmyanmar.ui.dashboard +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.AccountBalanceWallet import androidx.compose.material.icons.filled.CreditCard @@ -7,7 +10,6 @@ import androidx.compose.material.icons.filled.Lock import androidx.compose.material.icons.filled.LockOpen import androidx.compose.material.icons.filled.Replay import androidx.compose.material.icons.filled.SwapHoriz -import androidx.compose.foundation.layout.size import androidx.compose.material3.Icon import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -15,6 +17,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import com.mob.utsmyanmar.R import com.mob.utsmyanmar.ui.theme.Color +import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation class DashboardMenuItem( val title: String, @@ -22,121 +25,210 @@ class DashboardMenuItem( val onClick: () -> Unit ) +var sp = SystemParamsOperation.getInstance(); + +val mmqrEnabled = sp.mmqrStatus; +val settlementEnabled = false +val voidEnabled = true +val refundEnabled = true +val preAuthEnabled = true +val preAuthVoidEnabled = true +val preAuthCompleteEnabled = true +val preAuthCompleteVoidEnabled = true +val cashAdvEnabled = true + fun buildMenuItems( onNavigateAmount: (String) -> Unit, onNavigateSignOn: () -> Unit, onNavigateSettlement: () -> Unit, onNavigateHistory: () -> Unit, onNavigateAction: (String) -> Unit -): List = listOf( - DashboardMenuItem( - "Sale", - { - Icon( - painterResource(R.drawable.ic_terminal), - contentDescription = null, - modifier = Modifier.size(40.dp), - tint = Color.LegacyRed - ) - }) { onNavigateAmount("Sale") }, - DashboardMenuItem( - "History", - { - Icon( - painterResource(R.drawable.ic_history), - contentDescription = null, - modifier = Modifier.size(32.dp), - tint = Color.LegacyRed - ) - }) { onNavigateHistory() }, - DashboardMenuItem( - "Sign On", - { - Icon( - painterResource(R.drawable.ic_sign_on), - contentDescription = null, - modifier = Modifier.size(32.dp), - tint = Color.LegacyRed - ) - }) { onNavigateSignOn() }, - DashboardMenuItem( - "Settlement", - { - Icon( - painterResource(R.drawable.ic_settlement), - contentDescription = null, - modifier = Modifier.size(32.dp), - tint = Color.LegacyRed - ) - }) { onNavigateSettlement() }, - DashboardMenuItem( - "Void", - { - Icon( - Icons.Default.Lock, - contentDescription = null, - modifier = Modifier.size(32.dp), - tint = Color.LegacyRed - ) - }) { onNavigateAction("Void") }, - DashboardMenuItem( - "Refund", - { - Icon( - Icons.Default.Replay, - contentDescription = null, - modifier = Modifier.size(32.dp), - tint = Color.LegacyRed - ) - }) { onNavigateAction("Refund") }, - DashboardMenuItem( - "Pre-Auth", - { - Icon( - Icons.Default.Lock, - contentDescription = null, - modifier = Modifier.size(32.dp), - tint = Color.LegacyRed - ) - }) { onNavigateAmount("Pre-Auth") }, - DashboardMenuItem( - "Pre-Auth Void", - { - Icon( - Icons.Default.LockOpen, - contentDescription = null, - modifier = Modifier.size(32.dp), - tint = Color.LegacyRed - ) - }) { onNavigateAction("Pre-Auth Void") }, - DashboardMenuItem( - "Pre-Auth Complete", - { - Icon( - Icons.Default.CreditCard, - contentDescription = null, - modifier = Modifier.size(32.dp), - tint = Color.LegacyRed - ) - }) { onNavigateAction("Pre-Auth Complete") }, - DashboardMenuItem( - "Pre-Auth Comp Void", - { - Icon( - Icons.Default.SwapHoriz, - contentDescription = null, - modifier = Modifier.size(32.dp), - tint = Color.LegacyRed - ) - }) { onNavigateAction("Pre-Auth Complete Void") }, - DashboardMenuItem( - "Cash Adv", - { - Icon( - Icons.Default.AccountBalanceWallet, - contentDescription = null, - modifier = Modifier.size(32.dp), - tint = Color.LegacyRed - ) - }) { onNavigateAmount("Cash Adv") }, -) +): List = buildList { + + add( + DashboardMenuItem( + "Sale", + { + Icon( + painterResource(R.drawable.ic_terminal), + contentDescription = null, + modifier = Modifier.size(40.dp), + tint = Color.LegacyRed + ) + } + ) { onNavigateAmount("Sale") } + ) + + + if (mmqrEnabled) { + add( + DashboardMenuItem( + "MMQR", + { + Image( + painter = painterResource(R.drawable.ic_mmqr_logo), + contentDescription = null, + modifier = Modifier.height(48.dp) + ) + } + ) { } + ) + } + add( + DashboardMenuItem( + "History", + { + Icon( + painterResource(R.drawable.ic_history), + contentDescription = null, + modifier = Modifier.size(32.dp), + tint = Color.LegacyRed + ) + } + ) { onNavigateHistory() } + ) + + add( + DashboardMenuItem( + "Sign On", + { + Icon( + painterResource(R.drawable.ic_sign_on), + contentDescription = null, + modifier = Modifier.size(32.dp), + tint = Color.LegacyRed + ) + } + ) { onNavigateSignOn() } + ) + + if (settlementEnabled) { + add( + DashboardMenuItem( + "Settlement", + { + Icon( + painterResource(R.drawable.ic_settlement), + contentDescription = null, + modifier = Modifier.size(32.dp), + tint = Color.LegacyRed + ) + } + ) { onNavigateSettlement() } + ) + } + + if (voidEnabled) { + add( + DashboardMenuItem( + "Void", + { + Icon( + Icons.Default.Lock, + contentDescription = null, + modifier = Modifier.size(32.dp), + tint = Color.LegacyRed + ) + } + ) { onNavigateAction("Void") } + ) + } + + if (refundEnabled) { + add( + DashboardMenuItem( + "Refund", + { + Icon( + Icons.Default.Replay, + contentDescription = null, + modifier = Modifier.size(32.dp), + tint = Color.LegacyRed + ) + } + ) { onNavigateAction("Refund") } + ) + } + + if (preAuthEnabled) { + add( + DashboardMenuItem( + "Pre-Auth", + { + Icon( + Icons.Default.Lock, + contentDescription = null, + modifier = Modifier.size(32.dp), + tint = Color.LegacyRed + ) + } + ) { onNavigateAmount("Pre-Auth") } + ) + } + + if (preAuthVoidEnabled) { + add( + DashboardMenuItem( + "Pre-Auth Void", + { + Icon( + Icons.Default.LockOpen, + contentDescription = null, + modifier = Modifier.size(32.dp), + tint = Color.LegacyRed + ) + } + ) { onNavigateAction("Pre-Auth Void") } + ) + } + + if (preAuthCompleteEnabled) { + add( + DashboardMenuItem( + "Pre-Auth Complete", + { + Icon( + Icons.Default.CreditCard, + contentDescription = null, + modifier = Modifier.size(32.dp), + tint = Color.LegacyRed + ) + } + ) { onNavigateAction("Pre-Auth Complete") } + ) + } + + if (preAuthCompleteVoidEnabled) { + add( + DashboardMenuItem( + "Pre-Auth Comp Void", + { + Icon( + Icons.Default.SwapHoriz, + contentDescription = null, + modifier = Modifier.size(32.dp), + tint = Color.LegacyRed + ) + } + ) { onNavigateAction("Pre-Auth Complete Void") } + ) + } + + if (cashAdvEnabled) { + add( + DashboardMenuItem( + "Cash Adv", + { + Icon( + Icons.Default.AccountBalanceWallet, + contentDescription = null, + modifier = Modifier.size(32.dp), + tint = Color.LegacyRed + ) + } + ) { onNavigateAmount("Cash Adv") } + ) + } + + +} diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/processing_card/ProcessingCardViewModel.kt b/app/src/main/java/com/mob/utsmyanmar/ui/processing_card/ProcessingCardViewModel.kt index 4f91265..36c8d68 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/processing_card/ProcessingCardViewModel.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/processing_card/ProcessingCardViewModel.kt @@ -7,7 +7,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.mob.utsmyanmar.model.CardTransactionType import com.mob.utsmyanmar.ui.pinpad.PinPadViewModel -import com.mob.utsmyanmar.utils.MockCardData import com.mob.utsmyanmar.utils.MockData import com.mob.utsmyanmar.utils.TransactionUtil import com.mob.utsmyanmar.viewmodel.CardReaderViewModel diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/transaction_result/TransactionResultViewModel.kt b/app/src/main/java/com/mob/utsmyanmar/ui/transaction_result/TransactionResultViewModel.kt index 3db29eb..9b55dca 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/transaction_result/TransactionResultViewModel.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/transaction_result/TransactionResultViewModel.kt @@ -6,7 +6,6 @@ import com.mob.utsmyanmar.model.ecr.ECRResultStatus import com.mob.utsmyanmar.utils.CoreUtils import com.mob.utsmyanmar.viewmodel.SharedViewModel import com.utsmyanmar.baselib.emv.EmvParamOperation -import com.utsmyanmar.baselib.network.model.sirius.SiriusRequest import com.utsmyanmar.ecr.ECRHelper import com.utsmyanmar.ecr.ECRProcess import com.utsmyanmar.ecr.data.model.TransactionsResp diff --git a/app/src/main/java/com/mob/utsmyanmar/utils/tms/TMSSetupsImpl.kt b/app/src/main/java/com/mob/utsmyanmar/utils/tms/TMSSetupsImpl.kt index 2a4bb51..0750b52 100644 --- a/app/src/main/java/com/mob/utsmyanmar/utils/tms/TMSSetupsImpl.kt +++ b/app/src/main/java/com/mob/utsmyanmar/utils/tms/TMSSetupsImpl.kt @@ -131,7 +131,7 @@ class TMSSetupsImpl : TMSSetups { } //Properties - for (prop in siriusProperty.orEmpty()) { + for (prop in siriusProperty) { val name = prop.name val data = prop.property @@ -221,6 +221,7 @@ class TMSSetupsImpl : TMSSetups { "speedup_contactless_enable" -> ops.setSpeedUpContactless(parseBoolean(data)) "manual_entry_pin_enable" -> ops.isManualEntryPinEnable = parseBoolean(data) "cmhl_enabled" -> ops.setCMHLEnable(parseBoolean(data)) + "mmqr_enable" -> ops.setMmqrStatus(parseBoolean(data)) } } ops.carouselUrls = imgUrls.joinToString(",") diff --git a/app/src/main/java/com/mob/utsmyanmar/viewmodel/EmvTransactionProcessViewModel.kt b/app/src/main/java/com/mob/utsmyanmar/viewmodel/EmvTransactionProcessViewModel.kt index 79b3941..737559f 100644 --- a/app/src/main/java/com/mob/utsmyanmar/viewmodel/EmvTransactionProcessViewModel.kt +++ b/app/src/main/java/com/mob/utsmyanmar/viewmodel/EmvTransactionProcessViewModel.kt @@ -4,6 +4,7 @@ import android.os.Handler import android.os.Looper import android.os.Message import android.text.TextUtils +import com.mob.utsmyanmar.model.TransResultStatus import com.utsmyanmar.baselib.emv.EmvParamOperation import com.utsmyanmar.baselib.repo.Repository import com.utsmyanmar.baselib.util.enums.EmvResultStatus @@ -24,7 +25,6 @@ import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType import dagger.hilt.android.lifecycle.HiltViewModel import sunmi.sunmiui.utils.LogUtil import javax.inject.Inject -import com.mob.utsmyanmar.model.TransResultStatus @HiltViewModel class EmvTransactionProcessViewModel @Inject constructor( diff --git a/app/src/main/java/com/mob/utsmyanmar/viewmodel/TransProcessViewModel.kt b/app/src/main/java/com/mob/utsmyanmar/viewmodel/TransProcessViewModel.kt index 813b9fe..c1852df 100644 --- a/app/src/main/java/com/mob/utsmyanmar/viewmodel/TransProcessViewModel.kt +++ b/app/src/main/java/com/mob/utsmyanmar/viewmodel/TransProcessViewModel.kt @@ -25,7 +25,6 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch import javax.inject.Inject -import kotlin.time.Duration.Companion.milliseconds @HiltViewModel class TransProcessViewModel @Inject constructor( diff --git a/ecr/src/main/java/com/utsmyanmar/ecr/ECRProcess.kt b/ecr/src/main/java/com/utsmyanmar/ecr/ECRProcess.kt index ee31084..f7142b6 100644 --- a/ecr/src/main/java/com/utsmyanmar/ecr/ECRProcess.kt +++ b/ecr/src/main/java/com/utsmyanmar/ecr/ECRProcess.kt @@ -1,17 +1,12 @@ package com.utsmyanmar.ecr -import androidx.annotation.Keep import com.google.gson.Gson import com.utsmyanmar.ecr.data.ResultOf -import com.utsmyanmar.ecr.data.TransType import com.utsmyanmar.ecr.data.mapper.RequestTransMapper import com.utsmyanmar.ecr.data.mapper.ResponseTransMapper import com.utsmyanmar.ecr.data.model.RequestTrans -import com.utsmyanmar.ecr.data.model.ResponseTrans import com.utsmyanmar.ecr.data.model.Transactions import com.utsmyanmar.ecr.data.model.TransactionsResp -import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation -import java.lang.Exception //@Keep object ECRProcess { diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsOperation.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsOperation.java index 79371ae..f1bf39a 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsOperation.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsOperation.java @@ -1,16 +1,16 @@ package com.utsmyanmar.paylibs.utils.core_utils; +import static com.utsmyanmar.paylibs.utils.core_utils.SystemParamsSettings.TRANSACTION_MANAGER_KEY; + import android.text.TextUtils; +import com.utsmyanmar.paylibs.utils.enums.CurrencyType; + import java.util.ArrayList; import java.util.Locale; import sunmi.sunmiui.utils.LogUtil; -import static com.utsmyanmar.paylibs.utils.core_utils.SystemParamsSettings.TRANSACTION_MANAGER_KEY; - -import com.utsmyanmar.paylibs.utils.enums.CurrencyType; - public class SystemParamsOperation { public static final String TAG = "SystemParamsOperation"; @@ -33,54 +33,6 @@ public class SystemParamsOperation { return instance; } - /* public void init(String serialNumStart, - String batchNumStart, - int purchaseOrderStyle, - int correctFrequency, - int transactionNumber, - boolean printNegative, - int nonConnection, - boolean stateSecret, - boolean shieldAuthorizationCard, - int nonConnectionChoice, - boolean eCashVisaExemption) { - SystemParamsSettings bean = getSystemParamsSettings(); - bean.setSerialNum(serialNumStart); - bean.setBatchNumStart(batchNumStart); - bean.setPurchaseOrderStyle(purchaseOrderStyle); - bean.setCorrectFrequency(correctFrequency); - bean.setTransactionNumber(transactionNumber); - bean.setPrintNegative(printNegative); - bean.setNonConnection(nonConnection); - bean.setStateSecret(stateSecret); - bean.setShieldAuthorizationCard(shieldAuthorizationCard); - bean.setNonConnectionChoice(nonConnectionChoice); - bean.setCashVisaExemption(eCashVisaExemption); - saveSystemParamsSettings(bean); - }*/ - - /*public boolean isDownloadParamsOnce() { - SystemParamsSettings params = getSystemParamsSettings(); - return params.isDownloadParamsOnce(); - } - - public void saveDownloadParamsOnce(boolean downloadParamsOnce) { - SystemParamsSettings params = getSystemParamsSettings(); - params.setDownloadParamsOnce(downloadParamsOnce); - saveSystemParamsSettings(params); - } - - public boolean isNeedDownLoadICParams() { - SystemParamsSettings params = getSystemParamsSettings(); - return params.isNeedDownLoadICParams(); - } - - public void saveNeedDownLoadICParams(boolean needDownLoadICParams) { - SystemParamsSettings params = getSystemParamsSettings(); - params.setNeedDownLoadICParams(needDownLoadICParams); - saveSystemParamsSettings(params); - }*/ - public boolean isInjectOnce(){ SystemParamsSettings params = getSystemParamsSettings(); return params.isInjectOnce(); @@ -91,13 +43,6 @@ public class SystemParamsOperation { params.setInjectOnce(injectOnce); saveSystemParamsSettings(params); } - - - /** - * Set serial number - * - * @param serialNumber Starting serial number - */ public void saveSerialNumber(String serialNumber) { if (TextUtils.isEmpty(serialNumber)) { return; @@ -106,12 +51,6 @@ public class SystemParamsOperation { params.setSerialNum(serialNumber); saveSystemParamsSettings(params); } - - /** - * Set invoice number - * - * @param invoiceNumber Starting invoice number - */ public void saveInvoiceNumber(String invoiceNumber) { if (TextUtils.isEmpty(invoiceNumber)) { return; @@ -120,13 +59,6 @@ public class SystemParamsOperation { params.setInvoiceNum(invoiceNumber); saveSystemParamsSettings(params); } - - - /** - * Set batch number - * - * @param batchNumber Starting batch number - */ public void saveBatchNumber(String batchNumber) { if (TextUtils.isEmpty(batchNumber)) { return; @@ -136,11 +68,6 @@ public class SystemParamsOperation { saveSystemParamsSettings(params); } - - - /** - * Serial number increment - */ private void incrementSerialNum() { SystemParamsSettings params = getSystemParamsSettings(); String currentSerialNum = params.getCurrentSerialNum(); @@ -172,10 +99,6 @@ public class SystemParamsOperation { params.setSerialNum(transNumFormat); saveSystemParamsSettings(params); } - - /** - * Invoice number increment - */ private void incrementInvoiceNum() { SystemParamsSettings params = getSystemParamsSettings(); String currentInvoiceNum = params.getCurrentInvoiceNum(); @@ -952,6 +875,17 @@ public class SystemParamsOperation { saveSystemParamsSettings(params); } + public void setMmqrStatus(boolean status) { + SystemParamsSettings params = getSystemParamsSettings(); + params.setMmqrEnabled(status); + saveSystemParamsSettings(params); + } + + public boolean getMmqrStatus(){ + SystemParamsSettings params = getSystemParamsSettings(); + return params.getMmqrEnabled(); + } + public boolean isCMHLEnabled(){ SystemParamsSettings params = getSystemParamsSettings(); return params.isCmhlEnabled(); 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 475bdb7..f896c77 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 @@ -233,6 +233,7 @@ public class SystemParamsSettings implements Serializable { private byte[] pik_value; private byte[] pik_kcv; + private boolean mmqrEnabled; protected String getSecHostName() { return secHostName; @@ -902,6 +903,14 @@ public class SystemParamsSettings implements Serializable { this.emvEnabled = emvEnabled; } + public void setMmqrEnabled(boolean status) { + this.mmqrEnabled = status; + } + + public boolean getMmqrEnabled(){ + return mmqrEnabled; + } + /* // 流水号起始 private String serialNum = Configs.getInstance().SERIAL_NUM(); // 批次号起始