UpdateDialog

This commit is contained in:
sathwikcs
2025-01-16 14:50:06 +05:30
parent bbfd204b7d
commit 6054ba4ac1

View File

@@ -0,0 +1,81 @@
package `in`.sminnovations.attendanceapp.screens.home.ui.componets
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Button
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import `in`.sminnovations.attendanceapp.main.UpdateInfo
@Composable
fun UpdateDialog(
updateInfo: UpdateInfo,
isDownloading: Boolean,
onDismiss: () -> Unit,
onInstall: (String) -> Unit,
modifier: Modifier = Modifier
) {
AlertDialog(
onDismissRequest = onDismiss,
modifier = modifier,
title = {
Text(
text = "Update Available",
style = MaterialTheme.typography.headlineSmall,
textAlign = TextAlign.Center,
modifier = Modifier.fillMaxWidth()
)
},
text = {
Column(
modifier = Modifier.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
text = "A new version (${updateInfo.version}) is available. Please update.",
style = MaterialTheme.typography.bodyMedium,
textAlign = TextAlign.Center,
modifier = Modifier.padding(vertical = 8.dp)
)
if (isDownloading) {
CircularProgressIndicator(
modifier = Modifier.padding(top = 16.dp)
)
}
}
},
confirmButton = {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.End
) {
Button(
onClick = { onInstall(updateInfo.url) },
enabled = !isDownloading
) {
Text(if (isDownloading) "Downloading..." else "Install")
}
}
},
dismissButton = {
if (!isDownloading) {
Button(onClick = onDismiss) {
Text("Later")
}
}
}
)
}