This commit is contained in:
sathwikcs
2025-02-05 17:13:09 +05:30
parent 0736a481c2
commit 053579b685

View File

@@ -1,10 +1,15 @@
package `in`.sminnovations.attendanceapp.screens.home.ui
import android.Manifest
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.hilt.navigation.compose.hiltViewModel
import com.google.accompanist.permissions.ExperimentalPermissionsApi
@@ -13,6 +18,7 @@ import `in`.sminnovations.attendanceapp.screens.home.ui.componets.AttendanceScre
import `in`.sminnovations.attendanceapp.screens.home.ui.componets.NetworkErrorDialog
import `in`.sminnovations.attendanceapp.screens.home.ui.componets.UpdateDialog
import `in`.sminnovations.attendanceapp.screens.home.viewModel.HomeViewModel
import `in`.sminnovations.attendanceapp.screens.settings.ui.SettingsScreenDialogue
@OptIn(ExperimentalPermissionsApi::class)
@Composable
@@ -23,36 +29,42 @@ fun HomeScreen(
val cameraPermissionState = rememberPermissionState(Manifest.permission.CAMERA)
val updateInfo by viewModel.updateInfo.collectAsState()
val isUpdateDialogVisible by viewModel.isUpdateDialogVisible.collectAsState()
val showSettingDialog = remember{ mutableSetOf(false) }
val showSettingDialog = remember { mutableStateOf(false) }
val isDownloading by viewModel.downloadProgress.collectAsState()
val context = LocalContext.current
Box (modifier = Modifier.fillMaxSize()){
SettingsScreenDialogue(
showDialogue = showSettingDialog.value,
onDismissDialogue = { showSettingDialog.value = false }
)
if (uiState.isConnected) {
viewModel.checkForUpdates(context)
if (uiState.isConnected) {
viewModel.checkForUpdates(context)
if (isUpdateDialogVisible && updateInfo != null) {
UpdateDialog(updateInfo = updateInfo!!,
isDownloading = isDownloading,
onDismiss = { viewModel.dismissUpdate() },
onInstall = { url -> viewModel.installUpdate(url) })
}
AttendanceScreenContent(
uiState = uiState,
cameraPermissionState = cameraPermissionState,
onScannerToggle = { if (uiState.isScanning) viewModel.stopScanning() else viewModel.startScanning() },
onQrCodeScanned = viewModel::setQRCodeValue,
onClickSettings = { showSettingDialog.value = true }
)
if (isUpdateDialogVisible && updateInfo != null) {
UpdateDialog(
updateInfo = updateInfo!!,
isDownloading = isDownloading,
onDismiss = { viewModel.dismissUpdate() },
onInstall = { url -> viewModel.installUpdate(url) }
} else {
NetworkErrorDialog(showDialog = true, onRetry = {
viewModel.reStartMonitoring()
},
onSettings = { showSettingDialog.value = true }
)
}
AttendanceScreenContent(
uiState = uiState,
cameraPermissionState = cameraPermissionState,
onScannerToggle = { if (uiState.isScanning) viewModel.stopScanning() else viewModel.startScanning() },
onQrCodeScanned = viewModel::setQRCodeValue,
)
}else{
NetworkErrorDialog(showDialog = true, onRetry = {
viewModel.reStartMonitoring()
}
)
}
}