Added the Auto Update Check Feature

This commit is contained in:
sathwikcs
2025-02-07 14:59:00 +05:30
parent 196a127110
commit 2ad327cde8

View File

@@ -1,6 +1,8 @@
package `in`.sminnovations.attendanceapp.screens.home.ui package `in`.sminnovations.attendanceapp.screens.home.ui
import android.Manifest import android.Manifest
import android.content.Context
import android.widget.Toast
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@@ -18,6 +20,11 @@ import `in`.sminnovations.attendanceapp.screens.home.ui.componets.NetworkErrorDi
import `in`.sminnovations.attendanceapp.screens.home.ui.componets.UpdateDialog 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
import `in`.sminnovations.attendanceapp.screens.settings.ui.SettingsScreenDialogue import `in`.sminnovations.attendanceapp.screens.settings.ui.SettingsScreenDialogue
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
@OptIn(ExperimentalPermissionsApi::class) @OptIn(ExperimentalPermissionsApi::class)
@Composable @Composable
@@ -32,12 +39,24 @@ fun HomeScreen(
val downloadProgress by viewModel.downloadProgress.collectAsState() val downloadProgress by viewModel.downloadProgress.collectAsState()
val context = LocalContext.current val context = LocalContext.current
Box (modifier = Modifier.fillMaxSize()){ Box(modifier = Modifier.fillMaxSize()) {
SettingsScreenDialogue( fun checkForUpdateToast(context: Context ,value : Boolean){
showDialogue = showSettingDialog.value, val scope = CoroutineScope(Dispatchers.IO)
onDismissDialogue = { showSettingDialog.value = false } scope.launch {
) delay(1000)
}
if (value) {
Toast.makeText(context, "App is Upto Date", Toast.LENGTH_SHORT).show()
}
}
SettingsScreenDialogue(showDialogue = showSettingDialog.value,
onDismissDialogue = { showSettingDialog.value = false },
onCheckForUpdate = {
viewModel.checkForUpdates(context)
checkForUpdateToast(context,!isUpdateDialogVisible)
})
if (uiState.isConnected) { if (uiState.isConnected) {
@@ -49,20 +68,24 @@ fun HomeScreen(
onDismiss = { viewModel.dismissUpdate() }, onDismiss = { viewModel.dismissUpdate() },
onInstall = { url -> viewModel.installUpdate(url) }) onInstall = { url -> viewModel.installUpdate(url) })
} }
AttendanceScreenContent( AttendanceScreenContent(uiState = uiState,
uiState = uiState,
cameraPermissionState = cameraPermissionState, cameraPermissionState = cameraPermissionState,
onScannerToggle = { if (uiState.isScanning) viewModel.stopScanning() else viewModel.startScanning() }, onScannerToggle = { if (uiState.isScanning) viewModel.stopScanning() else viewModel.startScanning() },
onQrCodeScanned = viewModel::setQRCodeValue, onQrCodeScanned = viewModel::setQRCodeValue,
onClickSettings = { showSettingDialog.value = true } onClickSettings = { showSettingDialog.value = true })
)
} else { } else {
NetworkErrorDialog(showDialog = true, onRetry = { NetworkErrorDialog(showDialog = true, onRetry = {
viewModel.reStartMonitoring() viewModel.reStartMonitoring()
}, }, onCheckForUpdate = {
) viewModel.checkForUpdates(context)
checkForUpdateToast(context,!isUpdateDialogVisible)
})
} }
} }
} }