feat(backup): connect one-time export + automatic backup into one card
All checks were successful
Translations / check (pull_request) Successful in 5s
CI / ci (pull_request) Successful in 9m44s

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-27 22:17:24 +02:00
parent 548e581554
commit 1424f0ffc0

View File

@@ -306,21 +306,20 @@ private fun CalendarsList(
Spacer(Modifier.height(16.dp)) Spacer(Modifier.height(16.dp))
SectionHeader(stringResource(R.string.calendars_backup_header)) SectionHeader(stringResource(R.string.calendars_backup_header))
HintText(stringResource(R.string.calendars_backup_hint)) HintText(stringResource(R.string.calendars_backup_hint))
// One connected card: the one-time export on top, then automatic
// backup (and its folder/interval rows when on).
GroupedRow( GroupedRow(
title = stringResource(R.string.calendars_backup_action), title = stringResource(R.string.calendars_backup_action),
position = Position.Alone, position = Position.Top,
leading = { LeadingAvatar(Icons.Default.FileDownload) }, leading = { LeadingAvatar(Icons.Default.FileDownload) },
onClick = { onClick = {
runCatching { createBackup.launch("calendula-backup-${LocalDate.now()}.ics") } runCatching { createBackup.launch("calendula-backup-${LocalDate.now()}.ics") }
}, },
) )
// Automatic periodic export to a chosen folder (issue #8).
Spacer(Modifier.height(16.dp))
GroupedRow( GroupedRow(
title = stringResource(R.string.calendars_auto_backup), title = stringResource(R.string.calendars_auto_backup),
summary = stringResource(R.string.calendars_auto_backup_hint), summary = stringResource(R.string.calendars_auto_backup_hint),
position = if (autoBackup.enabled) Position.Top else Position.Alone, position = if (autoBackup.enabled) Position.Middle else Position.Bottom,
leading = { LeadingAvatar(Icons.Default.Schedule) }, leading = { LeadingAvatar(Icons.Default.Schedule) },
trailing = { trailing = {
Switch(checked = autoBackup.enabled, onCheckedChange = onSetAutoBackupEnabled) Switch(checked = autoBackup.enabled, onCheckedChange = onSetAutoBackupEnabled)