refresh last sync
This commit is contained in:
parent
d011b46345
commit
752693c8f3
@ -11,7 +11,6 @@
|
|||||||
|
|
||||||
### version 3.4
|
### version 3.4
|
||||||
* disable display always on
|
* disable display always on
|
||||||
|
|
||||||
* auto-settlement
|
* auto-settlement
|
||||||
* show expiry date as "`**`/`**`"
|
* show expiry date as "`**`/`**`"
|
||||||
* align the customer name, in paper slip
|
* align the customer name, in paper slip
|
||||||
|
|||||||
@ -746,10 +746,15 @@ fun AppNavGraph(
|
|||||||
val sharedViewModel: SharedViewModel = hiltViewModel(activity)
|
val sharedViewModel: SharedViewModel = hiltViewModel(activity)
|
||||||
val transProcessViewModel: TransProcessViewModel = hiltViewModel(activity)
|
val transProcessViewModel: TransProcessViewModel = hiltViewModel(activity)
|
||||||
val settlementViewModel: SettlementViewModel = hiltViewModel(activity)
|
val settlementViewModel: SettlementViewModel = hiltViewModel(activity)
|
||||||
|
val tmsSetupViewModel: TmsSetupViewModel = hiltViewModel(activity)
|
||||||
|
val dashboardViewModel: DashboardViewModel = hiltViewModel(activity)
|
||||||
ProcessingRoute(
|
ProcessingRoute(
|
||||||
sharedViewModel = sharedViewModel,
|
sharedViewModel = sharedViewModel,
|
||||||
transProcessViewModel = transProcessViewModel,
|
transProcessViewModel = transProcessViewModel,
|
||||||
settlementViewModel = settlementViewModel,
|
settlementViewModel = settlementViewModel,
|
||||||
|
onTransactionFinished = {
|
||||||
|
tmsSetupViewModel.downloadConfigs(dashboardViewModel::refreshLastSyncTime)
|
||||||
|
},
|
||||||
onNavigateTransactionResult = {
|
onNavigateTransactionResult = {
|
||||||
navController.navigate(Routes.TransactionResult.route) {
|
navController.navigate(Routes.TransactionResult.route) {
|
||||||
popUpTo(Routes.Processing.route) {
|
popUpTo(Routes.Processing.route) {
|
||||||
@ -808,14 +813,10 @@ fun AppNavGraph(
|
|||||||
composable(Routes.TransactionResult.route) {
|
composable(Routes.TransactionResult.route) {
|
||||||
val sharedViewModel: SharedViewModel = hiltViewModel(activity)
|
val sharedViewModel: SharedViewModel = hiltViewModel(activity)
|
||||||
val transResultViewModel: TransactionResultViewModel = hiltViewModel(activity)
|
val transResultViewModel: TransactionResultViewModel = hiltViewModel(activity)
|
||||||
val tmsSetupViewModel: TmsSetupViewModel = hiltViewModel(activity)
|
|
||||||
val dashboardViewModel: DashboardViewModel = hiltViewModel(activity)
|
|
||||||
|
|
||||||
TransactionResultRoute(
|
TransactionResultRoute(
|
||||||
viewModel = transResultViewModel,
|
viewModel = transResultViewModel,
|
||||||
sharedViewModel = sharedViewModel,
|
sharedViewModel = sharedViewModel,
|
||||||
tmsSetupViewModel = tmsSetupViewModel,
|
|
||||||
dashboardViewModel = dashboardViewModel,
|
|
||||||
onNavigateMain = {
|
onNavigateMain = {
|
||||||
navController.navigate(Routes.Dashboard.route) {
|
navController.navigate(Routes.Dashboard.route) {
|
||||||
popUpTo(Routes.Dashboard.route) {
|
popUpTo(Routes.Dashboard.route) {
|
||||||
|
|||||||
@ -21,7 +21,8 @@ fun ProcessingRoute(
|
|||||||
settlementViewModel: SettlementViewModel,
|
settlementViewModel: SettlementViewModel,
|
||||||
onNavigateTransactionResult: () -> Unit,
|
onNavigateTransactionResult: () -> Unit,
|
||||||
onNavigateSignature: () -> Unit,
|
onNavigateSignature: () -> Unit,
|
||||||
onNavigateError: (Boolean, String) -> Unit
|
onNavigateError: (Boolean, String) -> Unit,
|
||||||
|
onTransactionFinished: () -> Unit
|
||||||
) {
|
) {
|
||||||
|
|
||||||
val transStatus by transProcessViewModel.transResultStatus.collectAsStateWithLifecycle()
|
val transStatus by transProcessViewModel.transResultStatus.collectAsStateWithLifecycle()
|
||||||
@ -39,6 +40,7 @@ fun ProcessingRoute(
|
|||||||
when(settlementStatus.status) {
|
when(settlementStatus.status) {
|
||||||
TransactionStatus.ON_ERROR,
|
TransactionStatus.ON_ERROR,
|
||||||
TransactionStatus.ON_SUCCESS -> {
|
TransactionStatus.ON_SUCCESS -> {
|
||||||
|
onTransactionFinished()
|
||||||
sharedViewModel.payDetail.value = settlementViewModel.getPayDetail()
|
sharedViewModel.payDetail.value = settlementViewModel.getPayDetail()
|
||||||
onNavigateTransactionResult()
|
onNavigateTransactionResult()
|
||||||
}
|
}
|
||||||
@ -54,6 +56,7 @@ fun ProcessingRoute(
|
|||||||
LaunchedEffect(transStatus) {
|
LaunchedEffect(transStatus) {
|
||||||
when(transStatus) {
|
when(transStatus) {
|
||||||
TransResultStatus.SUCCESS -> {
|
TransResultStatus.SUCCESS -> {
|
||||||
|
onTransactionFinished()
|
||||||
sharedViewModel.payDetail.value = transProcessViewModel.payDetailResult.value
|
sharedViewModel.payDetail.value = transProcessViewModel.payDetailResult.value
|
||||||
if (requiresSignature(sharedViewModel.transactionsType.value, sharedViewModel.payDetail.value)) {
|
if (requiresSignature(sharedViewModel.transactionsType.value, sharedViewModel.payDetail.value)) {
|
||||||
onNavigateSignature()
|
onNavigateSignature()
|
||||||
@ -63,18 +66,22 @@ fun ProcessingRoute(
|
|||||||
}
|
}
|
||||||
|
|
||||||
TransResultStatus.FAIL -> {
|
TransResultStatus.FAIL -> {
|
||||||
|
onTransactionFinished()
|
||||||
sharedViewModel.payDetail.value = transProcessViewModel.payDetailResult.value
|
sharedViewModel.payDetail.value = transProcessViewModel.payDetailResult.value
|
||||||
onNavigateTransactionResult()
|
onNavigateTransactionResult()
|
||||||
}
|
}
|
||||||
TransResultStatus.REVERSAL_SUCCESS -> {
|
TransResultStatus.REVERSAL_SUCCESS -> {
|
||||||
|
onTransactionFinished()
|
||||||
onNavigateError(true,"Reversal success")
|
onNavigateError(true,"Reversal success")
|
||||||
}
|
}
|
||||||
|
|
||||||
TransResultStatus.REVERSAL_FAIL -> {
|
TransResultStatus.REVERSAL_FAIL -> {
|
||||||
|
onTransactionFinished()
|
||||||
onNavigateError(false,"Reversal failed")
|
onNavigateError(false,"Reversal failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
TransResultStatus.ERROR -> {
|
TransResultStatus.ERROR -> {
|
||||||
|
onTransactionFinished()
|
||||||
onNavigateError(false,
|
onNavigateError(false,
|
||||||
transProcessViewModel.errorMessage.value?.takeIf { it.isNotBlank() }
|
transProcessViewModel.errorMessage.value?.takeIf { it.isNotBlank() }
|
||||||
?: "Something went wrong. Please try again."
|
?: "Something went wrong. Please try again."
|
||||||
|
|||||||
@ -74,7 +74,7 @@ class TmsSetupViewModel @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun downloadConfigs() {
|
fun downloadConfigs(onSuccess: () -> Unit = {}) {
|
||||||
_uiState.update {
|
_uiState.update {
|
||||||
it.copy(isLoading = true, isError = false, statusText = "Connecting to TMS server...")
|
it.copy(isLoading = true, isError = false, statusText = "Connecting to TMS server...")
|
||||||
}
|
}
|
||||||
@ -99,7 +99,7 @@ class TmsSetupViewModel @Inject constructor(
|
|||||||
)
|
)
|
||||||
|
|
||||||
tmsSetups.initParams(appResponse, TMSUpdate.UPDATE, emvParamOperation)
|
tmsSetups.initParams(appResponse, TMSUpdate.UPDATE, emvParamOperation)
|
||||||
onConfigApplied()
|
onConfigApplied(onSuccess)
|
||||||
},
|
},
|
||||||
{ error ->
|
{ error ->
|
||||||
val errorMessage = if (error is retrofit2.HttpException) {
|
val errorMessage = if (error is retrofit2.HttpException) {
|
||||||
@ -141,7 +141,7 @@ class TmsSetupViewModel @Inject constructor(
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun onConfigApplied() {
|
private fun onConfigApplied(onSuccess: () -> Unit) {
|
||||||
val ops = SystemParamsOperation.getInstance()
|
val ops = SystemParamsOperation.getInstance()
|
||||||
|
|
||||||
if (!ops.isActive) {
|
if (!ops.isActive) {
|
||||||
@ -166,6 +166,7 @@ class TmsSetupViewModel @Inject constructor(
|
|||||||
.edit {
|
.edit {
|
||||||
putLong("last_sync_time", System.currentTimeMillis())
|
putLong("last_sync_time", System.currentTimeMillis())
|
||||||
}
|
}
|
||||||
|
onSuccess()
|
||||||
_uiState.update { it.copy(isLoading = false, statusText = "Ready.") }
|
_uiState.update { it.copy(isLoading = false, statusText = "Ready.") }
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
_onSyncCompleted.emit(Unit)
|
_onSyncCompleted.emit(Unit)
|
||||||
|
|||||||
@ -5,8 +5,6 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import com.mob.utsmyanmar.ui.dashboard.DashboardViewModel
|
|
||||||
import com.mob.utsmyanmar.ui.tms_setup.TmsSetupViewModel
|
|
||||||
import com.mob.utsmyanmar.viewmodel.SharedViewModel
|
import com.mob.utsmyanmar.viewmodel.SharedViewModel
|
||||||
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType
|
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType
|
||||||
|
|
||||||
@ -18,9 +16,7 @@ fun TransactionResultRoute(
|
|||||||
onNavigatePrintReceipt: () -> Unit,
|
onNavigatePrintReceipt: () -> Unit,
|
||||||
onShowError: (String) -> Unit,
|
onShowError: (String) -> Unit,
|
||||||
onShowSuccess: (String) -> Unit,
|
onShowSuccess: (String) -> Unit,
|
||||||
onShowPrinterDialog: (String) -> Unit,
|
onShowPrinterDialog: (String) -> Unit
|
||||||
tmsSetupViewModel: TmsSetupViewModel,
|
|
||||||
dashboardViewModel: DashboardViewModel,
|
|
||||||
) {
|
) {
|
||||||
val state by viewModel.state.collectAsStateWithLifecycle()
|
val state by viewModel.state.collectAsStateWithLifecycle()
|
||||||
val canGoBack = sharedViewModel.transactionsType.value != TransactionsType.SALE
|
val canGoBack = sharedViewModel.transactionsType.value != TransactionsType.SALE
|
||||||
@ -30,8 +26,6 @@ fun TransactionResultRoute(
|
|||||||
TransactionResultEvent.Start,
|
TransactionResultEvent.Start,
|
||||||
sharedViewModel
|
sharedViewModel
|
||||||
)
|
)
|
||||||
dashboardViewModel.refreshLastSyncTime()
|
|
||||||
tmsSetupViewModel.downloadConfigs()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user