view model fix

This commit is contained in:
moon 2026-06-11 17:18:57 +06:30
parent edba9da0bd
commit 60840f0f76
2 changed files with 15 additions and 22 deletions

View File

@ -50,8 +50,8 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ModalDrawerSheet import androidx.compose.material3.ModalDrawerSheet
import androidx.compose.material3.ModalNavigationDrawer import androidx.compose.material3.ModalNavigationDrawer
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton import androidx.compose.material3.TextButton
import androidx.compose.material3.VerticalDivider import androidx.compose.material3.VerticalDivider
import androidx.compose.material3.rememberDrawerState import androidx.compose.material3.rememberDrawerState
@ -75,11 +75,10 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.lifecycle.viewmodel.compose.viewModel
import coil3.compose.AsyncImage import coil3.compose.AsyncImage
import com.mob.utsmyanmar.R import com.mob.utsmyanmar.R
import com.mob.utsmyanmar.ui.components.appbar.AppBar import com.mob.utsmyanmar.ui.components.appbar.AppBar
import com.mob.utsmyanmar.ui.device_info.DeviceInfoViewModel import com.mob.utsmyanmar.ui.device_info.DeviceInfoUiState
import com.mob.utsmyanmar.ui.preview.P2Preview import com.mob.utsmyanmar.ui.preview.P2Preview
import com.mob.utsmyanmar.ui.preview.P3Preview import com.mob.utsmyanmar.ui.preview.P3Preview
import com.mob.utsmyanmar.ui.theme.Color import com.mob.utsmyanmar.ui.theme.Color
@ -100,13 +99,8 @@ fun DashboardScreen2(
onNavigateAction: (String) -> Unit = {}, onNavigateAction: (String) -> Unit = {},
onNavigateNotifications: () -> Unit = {}, onNavigateNotifications: () -> Unit = {},
dashboardUiState: DashboardUiState = DashboardUiState(), dashboardUiState: DashboardUiState = DashboardUiState(),
deviceInfoViewModel: DeviceInfoViewModel = viewModel() deviceInfo: DeviceInfoUiState = DeviceInfoUiState()
) { ) {
val deviceInfo by deviceInfoViewModel.uiState.collectAsState()
LaunchedEffect(Unit) {
deviceInfoViewModel.loadDeviceInfo()
}
val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed) val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed)
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
@ -115,7 +109,7 @@ fun DashboardScreen2(
var activeHostAction by remember { mutableStateOf("Log-On") } var activeHostAction by remember { mutableStateOf("Log-On") }
var isHostActionRunning by remember { mutableStateOf(false) } var isHostActionRunning by remember { mutableStateOf(false) }
var dialogMessage by remember { mutableStateOf("") } var dialogMessage by remember { mutableStateOf("") }
var reversalEnabled by remember { mutableStateOf(SystemParamsOperation.getInstance().isReversalOn) } var reversalEnabled by remember { mutableStateOf(runCatching { SystemParamsOperation.getInstance().isReversalOn }.getOrDefault(false)) }
val isOnline = true val isOnline = true
@ -325,7 +319,7 @@ fun DashboardScreen2(
title = "Reversal", subTitle = "Enable / Disable Reversal", title = "Reversal", subTitle = "Enable / Disable Reversal",
onClick = { onClick = {
reversalEnabled = !reversalEnabled reversalEnabled = !reversalEnabled
SystemParamsOperation.getInstance().setReversalFlag(reversalEnabled) runCatching { SystemParamsOperation.getInstance().setReversalFlag(reversalEnabled) }
}, },
leadingIcon = { leadingIcon = {
Icon( Icon(
@ -339,7 +333,7 @@ fun DashboardScreen2(
checked = reversalEnabled, checked = reversalEnabled,
onCheckedChange = { isChecked -> onCheckedChange = { isChecked ->
reversalEnabled = isChecked reversalEnabled = isChecked
SystemParamsOperation.getInstance().setReversalFlag(isChecked) runCatching { SystemParamsOperation.getInstance().setReversalFlag(isChecked) }
} }
) )
}, },
@ -385,6 +379,7 @@ fun DashboardScreen2(
} }
}) { }) {
//body start
Scaffold( Scaffold(
containerColor = Color.IvoryBeige, topBar = { containerColor = Color.IvoryBeige, topBar = {
AppBar( AppBar(
@ -858,19 +853,13 @@ private val previewTransactions = listOf(
TrnxRecord(5L, "Settlement", "MMK 0", "----", "06/08 18:00", isVoided = false, isApproved = true), TrnxRecord(5L, "Settlement", "MMK 0", "----", "06/08 18:00", isVoided = false, isApproved = true),
) )
@P3Preview
@P2Preview @P2Preview
@Composable @Composable
fun PreviewDashboardScreen2() { fun PreviewDashboardScreen2() {
DashboardScreen2(dashboardUiState = DashboardUiState(previewTransactions)) DashboardScreen2(dashboardUiState = DashboardUiState(previewTransactions))
} }
@P3Preview
@Composable
fun PreviewDashboardScreen3() {
DashboardScreen2(dashboardUiState = DashboardUiState(previewTransactions))
}
@Preview @Preview
@Composable @Composable
fun PreviewItem() { fun PreviewItem() {

View File

@ -22,6 +22,9 @@ import com.mob.utsmyanmar.ui.dashboard.DashboardViewModel
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.input_amount.AmountRoute import com.mob.utsmyanmar.ui.input_amount.AmountRoute
import com.mob.utsmyanmar.ui.notification.NotificationDetailScreen
import com.mob.utsmyanmar.ui.notification.NotificationListScreen
import com.mob.utsmyanmar.ui.notification.NotificationViewModel
import com.mob.utsmyanmar.ui.password_input.InputPassword import com.mob.utsmyanmar.ui.password_input.InputPassword
import com.mob.utsmyanmar.ui.password_input.PasswordType import com.mob.utsmyanmar.ui.password_input.PasswordType
import com.mob.utsmyanmar.ui.pinpad.PinPadRoute import com.mob.utsmyanmar.ui.pinpad.PinPadRoute
@ -43,9 +46,6 @@ import com.mob.utsmyanmar.ui.tms_setup.TmsSetupViewModel
import com.mob.utsmyanmar.ui.transaction_result.TransactionResultEvent import com.mob.utsmyanmar.ui.transaction_result.TransactionResultEvent
import com.mob.utsmyanmar.ui.transaction_result.TransactionResultRoute import com.mob.utsmyanmar.ui.transaction_result.TransactionResultRoute
import com.mob.utsmyanmar.ui.transaction_result.TransactionResultViewModel import com.mob.utsmyanmar.ui.transaction_result.TransactionResultViewModel
import com.mob.utsmyanmar.ui.notification.NotificationDetailScreen
import com.mob.utsmyanmar.ui.notification.NotificationListScreen
import com.mob.utsmyanmar.ui.notification.NotificationViewModel
import com.mob.utsmyanmar.ui.version.VersionScreen import com.mob.utsmyanmar.ui.version.VersionScreen
import com.mob.utsmyanmar.viewmodel.CardReaderViewModel import com.mob.utsmyanmar.viewmodel.CardReaderViewModel
import com.mob.utsmyanmar.viewmodel.EmvTransactionProcessViewModel import com.mob.utsmyanmar.viewmodel.EmvTransactionProcessViewModel
@ -83,8 +83,12 @@ fun AppNavGraph(
val sharedViewModel: SharedViewModel = hiltViewModel(activity) val sharedViewModel: SharedViewModel = hiltViewModel(activity)
val dashboardViewModel: DashboardViewModel = hiltViewModel() val dashboardViewModel: DashboardViewModel = hiltViewModel()
val dashboardUiState by dashboardViewModel.uiState.collectAsStateWithLifecycle() val dashboardUiState by dashboardViewModel.uiState.collectAsStateWithLifecycle()
val deviceInfoViewModel: DeviceInfoViewModel = hiltViewModel()
val deviceInfo by deviceInfoViewModel.uiState.collectAsStateWithLifecycle()
androidx.compose.runtime.LaunchedEffect(Unit) { deviceInfoViewModel.loadDeviceInfo() }
DashboardScreen2( DashboardScreen2(
dashboardUiState = dashboardUiState, dashboardUiState = dashboardUiState,
deviceInfo = deviceInfo,
onNavigateAmount = { action -> onNavigateAmount = { action ->
if(action == "Sale"){ if(action == "Sale"){
sharedViewModel.transactionsType.value = TransactionsType.SALE; sharedViewModel.transactionsType.value = TransactionsType.SALE;