home.kt
This commit is contained in:
@@ -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()
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user