From ff3a90aa9af53cf32cdd635cb76a9fe09fb2409b Mon Sep 17 00:00:00 2001 From: sathwikcs <85106054+sathwikcs@users.noreply.github.com> Date: Thu, 16 Jan 2025 14:55:21 +0530 Subject: [PATCH] MainScreen --- .../attendanceapp/main/MainScreen.kt | 7 +--- .../attendanceapp/screens/home/ui/home.kt | 37 ++++++++++++++----- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/in/sminnovations/attendanceapp/main/MainScreen.kt b/app/src/main/java/in/sminnovations/attendanceapp/main/MainScreen.kt index 6d18625..0db3ba9 100644 --- a/app/src/main/java/in/sminnovations/attendanceapp/main/MainScreen.kt +++ b/app/src/main/java/in/sminnovations/attendanceapp/main/MainScreen.kt @@ -9,19 +9,16 @@ import androidx.navigation.compose.rememberNavController import `in`.sminnovations.attendanceapp.navigation.BottomNavigationBar import `in`.sminnovations.attendanceapp.navigation.Navigation import `in`.sminnovations.attendanceapp.navigation.data.navItems +import `in`.sminnovations.attendanceapp.screens.home.ui.HomeScreen @Composable fun MainScreen( ) { - val navController = rememberNavController() Scaffold( - bottomBar = { - BottomNavigationBar(navController, navItems) - }, content = { padding -> Box(modifier = Modifier.padding(padding)) { - Navigation(navController = navController, items = navItems) + HomeScreen() } } ) diff --git a/app/src/main/java/in/sminnovations/attendanceapp/screens/home/ui/home.kt b/app/src/main/java/in/sminnovations/attendanceapp/screens/home/ui/home.kt index c3f74bb..9b3a0b2 100644 --- a/app/src/main/java/in/sminnovations/attendanceapp/screens/home/ui/home.kt +++ b/app/src/main/java/in/sminnovations/attendanceapp/screens/home/ui/home.kt @@ -4,29 +4,47 @@ import android.Manifest 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 import com.google.accompanist.permissions.rememberPermissionState + import `in`.sminnovations.attendanceapp.screens.home.ui.componets.AttendanceScreenContent 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 @OptIn(ExperimentalPermissionsApi::class) @Composable fun HomeScreen( - viewModel: HomeViewModel = hiltViewModel(), - modifier: Modifier = Modifier + viewModel: HomeViewModel = hiltViewModel(), modifier: Modifier = Modifier ) { val uiState by viewModel.uiState.collectAsState() val cameraPermissionState = rememberPermissionState(Manifest.permission.CAMERA) - NetworkErrorDialog( - showDialog = !uiState.isConnected, - onRetry = { - viewModel.reStartMonitoring() + val updateInfo by viewModel.updateInfo.collectAsState() + val isUpdateDialogVisible by viewModel.isUpdateDialogVisible.collectAsState() + val isDownloading by viewModel.downloadProgress.collectAsState() + val context = LocalContext.current + + NetworkErrorDialog(showDialog = !uiState.isConnected, onRetry = { + viewModel.reStartMonitoring() + }) + + + if (uiState.isConnected) { + viewModel.checkForUpdates(context) + + if (isUpdateDialogVisible && updateInfo != null) { + UpdateDialog( + updateInfo = updateInfo!!, + isDownloading = isDownloading, + onDismiss = { viewModel.dismissUpdate() }, + onInstall = { url -> viewModel.installUpdate(context, url) } + ) } - ) - if (uiState.isConnected){ AttendanceScreenContent( uiState = uiState, cameraPermissionState = cameraPermissionState, @@ -34,6 +52,7 @@ fun HomeScreen( onQrCodeScanned = viewModel::setQRCodeValue, modifier = modifier ) -} + + } }