MainScreen

This commit is contained in:
sathwikcs
2025-01-16 14:55:21 +05:30
parent 196d9f8eb5
commit ff3a90aa9a
2 changed files with 30 additions and 14 deletions

View File

@@ -9,19 +9,16 @@ import androidx.navigation.compose.rememberNavController
import `in`.sminnovations.attendanceapp.navigation.BottomNavigationBar import `in`.sminnovations.attendanceapp.navigation.BottomNavigationBar
import `in`.sminnovations.attendanceapp.navigation.Navigation import `in`.sminnovations.attendanceapp.navigation.Navigation
import `in`.sminnovations.attendanceapp.navigation.data.navItems import `in`.sminnovations.attendanceapp.navigation.data.navItems
import `in`.sminnovations.attendanceapp.screens.home.ui.HomeScreen
@Composable @Composable
fun MainScreen( fun MainScreen(
) { ) {
val navController = rememberNavController()
Scaffold( Scaffold(
bottomBar = {
BottomNavigationBar(navController, navItems)
},
content = { padding -> content = { padding ->
Box(modifier = Modifier.padding(padding)) { Box(modifier = Modifier.padding(padding)) {
Navigation(navController = navController, items = navItems) HomeScreen()
} }
} }
) )

View File

@@ -4,29 +4,47 @@ import android.Manifest
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.rememberPermissionState import com.google.accompanist.permissions.rememberPermissionState
import `in`.sminnovations.attendanceapp.screens.home.ui.componets.AttendanceScreenContent 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.NetworkErrorDialog
import `in`.sminnovations.attendanceapp.screens.home.ui.componets.UpdateDialog
import `in`.sminnovations.attendanceapp.screens.home.viewModel.HomeViewModel import `in`.sminnovations.attendanceapp.screens.home.viewModel.HomeViewModel
@OptIn(ExperimentalPermissionsApi::class) @OptIn(ExperimentalPermissionsApi::class)
@Composable @Composable
fun HomeScreen( fun HomeScreen(
viewModel: HomeViewModel = hiltViewModel(), viewModel: HomeViewModel = hiltViewModel(), modifier: Modifier = Modifier
modifier: Modifier = Modifier
) { ) {
val uiState by viewModel.uiState.collectAsState() val uiState by viewModel.uiState.collectAsState()
val cameraPermissionState = rememberPermissionState(Manifest.permission.CAMERA) val cameraPermissionState = rememberPermissionState(Manifest.permission.CAMERA)
NetworkErrorDialog( val updateInfo by viewModel.updateInfo.collectAsState()
showDialog = !uiState.isConnected, val isUpdateDialogVisible by viewModel.isUpdateDialogVisible.collectAsState()
onRetry = { val isDownloading by viewModel.downloadProgress.collectAsState()
viewModel.reStartMonitoring() 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( AttendanceScreenContent(
uiState = uiState, uiState = uiState,
cameraPermissionState = cameraPermissionState, cameraPermissionState = cameraPermissionState,
@@ -34,6 +52,7 @@ fun HomeScreen(
onQrCodeScanned = viewModel::setQRCodeValue, onQrCodeScanned = viewModel::setQRCodeValue,
modifier = modifier modifier = modifier
) )
}
}
} }