AppUpdater

This commit is contained in:
sathwikcs
2025-01-16 14:53:31 +05:30
parent 1482c2b548
commit 7a22437bd5

View File

@@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.magnifier
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.Close import androidx.compose.material.icons.filled.Close
@@ -34,8 +35,8 @@ import androidx.compose.ui.unit.sp
import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.PermissionState import com.google.accompanist.permissions.PermissionState
import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.isGranted
import `in`.sminnovations.attendanceapp.screens.home.viewModel.AttendanceUiState import `in`.sminnovations.attendanceapp.screens.home.viewModel.AttendanceUiState
import `in`.sminnovations.attendanceapp.screens.settings.ui.components.TopComponents
@OptIn(ExperimentalPermissionsApi::class) @OptIn(ExperimentalPermissionsApi::class)
@Composable @Composable
@@ -46,17 +47,22 @@ internal fun AttendanceScreenContent(
onQrCodeScanned: (String) -> Unit, onQrCodeScanned: (String) -> Unit,
modifier: Modifier = Modifier modifier: Modifier = Modifier
) { ) {
Box(modifier = modifier.fillMaxSize()) { Box(modifier = modifier.fillMaxSize()) {
Column {
when { when {
!cameraPermissionState.status.isGranted -> { !cameraPermissionState.status.isGranted -> {
RequestPermissionsContent(cameraPermissionState) RequestPermissionsContent(cameraPermissionState)
} }
uiState.isScanning -> { uiState.isScanning -> {
ScannerContent( ScannerContent(
onQrCodeScanned = onQrCodeScanned, onQrCodeScanned = onQrCodeScanned, onClose = onScannerToggle
onClose = onScannerToggle
) )
} }
uiState.errorMessage != null -> { uiState.errorMessage != null -> {
ErrorContent( ErrorContent(
errorMessage = uiState.errorMessage, errorMessage = uiState.errorMessage,
@@ -64,23 +70,31 @@ internal fun AttendanceScreenContent(
checkedOutTime = uiState.checkedOutTime checkedOutTime = uiState.checkedOutTime
) )
} }
uiState.isCheckedIn -> { uiState.isCheckedIn -> {
AttendanceStatusCard( AttendanceStatusCard(
title = "Checked In as", title = "Checked In as", userName = uiState.userName
userName = uiState.userName
) )
} }
uiState.isCheckedOut -> { uiState.isCheckedOut -> {
AttendanceStatusCard( AttendanceStatusCard(
title = "Checked Out as", title = "Checked Out as", userName = uiState.userName
userName = uiState.userName
) )
} }
} }
}
if (uiState.isLoading) { if (uiState.isLoading) {
LoadingOverlay() LoadingOverlay()
} }
if (!uiState.isScanning && uiState.errorMessage == null && !uiState.isCheckedIn && !uiState.isCheckedOut && cameraPermissionState.status.isGranted){
Box(modifier =Modifier.align(Alignment.Center) ){
TopComponents()}
}
if (!uiState.isScanning && uiState.errorMessage == null && !uiState.isCheckedIn && !uiState.isCheckedOut && !cameraPermissionState.status.isGranted){
TopComponents()
}
ScannerToggleButton( ScannerToggleButton(
isScanning = uiState.isScanning, isScanning = uiState.isScanning,
@@ -93,16 +107,12 @@ internal fun AttendanceScreenContent(
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
private fun ScannerToggleButton( private fun ScannerToggleButton(
isScanning: Boolean, isScanning: Boolean, onClick: () -> Unit, modifier: Modifier = Modifier
onClick: () -> Unit,
modifier: Modifier = Modifier
) { ) {
OutlinedCard( OutlinedCard(
onClick = onClick, onClick = onClick, colors = CardDefaults.cardColors(
colors = CardDefaults.cardColors(
containerColor = MaterialTheme.colorScheme.primary containerColor = MaterialTheme.colorScheme.primary
), ), modifier = modifier
modifier = modifier
.fillMaxWidth() .fillMaxWidth()
.padding(16.dp) .padding(16.dp)
) { ) {
@@ -137,18 +147,15 @@ private fun LoadingOverlay() {
contentAlignment = Alignment.Center contentAlignment = Alignment.Center
) { ) {
CircularProgressIndicator( CircularProgressIndicator(
color = MaterialTheme.colorScheme.primary, color = MaterialTheme.colorScheme.primary, modifier = Modifier.size(48.dp)
modifier = Modifier.size(48.dp)
) )
} }
} }
@Composable @Composable
private fun AttendanceStatusCard( private fun AttendanceStatusCard(
title: String, title: String, userName: String?
userName: String?
) { ) {
Column(horizontalAlignment = Alignment.CenterHorizontally) { Column(horizontalAlignment = Alignment.CenterHorizontally) {
OutlinedCard { OutlinedCard {
@@ -176,14 +183,12 @@ private fun AttendanceStatusCard(
@Composable @Composable
private fun ScannerContent( private fun ScannerContent(
onQrCodeScanned: (String) -> Unit, onQrCodeScanned: (String) -> Unit, onClose: () -> Unit
onClose: () -> Unit
) { ) {
Box(modifier = Modifier.fillMaxSize()) { Box(modifier = Modifier.fillMaxSize()) {
QRCodeScannerScreen(onQrCodeScanned) QRCodeScannerScreen(onQrCodeScanned)
IconButton( IconButton(
onClick = onClose, onClick = onClose, modifier = Modifier
modifier = Modifier
.align(Alignment.TopStart) .align(Alignment.TopStart)
.padding(16.dp) .padding(16.dp)
) { ) {