diff --git a/app/src/main/java/net/helcel/cowspent/android/main/BillsListScreen.kt b/app/src/main/java/net/helcel/cowspent/android/main/BillsListScreen.kt index ba009ae..9180582 100644 --- a/app/src/main/java/net/helcel/cowspent/android/main/BillsListScreen.kt +++ b/app/src/main/java/net/helcel/cowspent/android/main/BillsListScreen.kt @@ -105,9 +105,9 @@ fun BillsListScreen( val context = LocalContext.current val sharedPreferences = remember { PreferenceManager.getDefaultSharedPreferences(context) } val showArchived = sharedPreferences.getBoolean(stringResource(R.string.pref_key_show_archived), false) - val keyBetaFeatures = stringResource(R.string.pref_key_beta_features) - var showBetaFeatures by remember(keyBetaFeatures) { - mutableStateOf(sharedPreferences.getBoolean(keyBetaFeatures, false)) + val keyExtraFeatures = stringResource(R.string.pref_key_extra_features) + var showExtraFeatures by remember(keyExtraFeatures) { + mutableStateOf(sharedPreferences.getBoolean(keyExtraFeatures, false)) } StatefulAlertDialog( @@ -165,7 +165,7 @@ fun BillsListScreen( projectType = proj?.type ?: ProjectType.LOCAL, accessLevel = proj?.myAccessLevel ?: DBProject.ACCESS_LEVEL_ADMIN, isShareable = proj?.isShareable() ?: true, - showBetaFeatures = showBetaFeatures + showExtraFeatures = showExtraFeatures ) } } @@ -334,7 +334,7 @@ fun BillsListScreen( }, actions = { if (!isSearchExpanded) { - if (showBetaFeatures && viewModel.hasUnlabeledBills) { + if (showExtraFeatures && viewModel.hasUnlabeledBills) { IconButton(onClick = onLabelBillsClick) { Icon( Icons.Default.Category, diff --git a/app/src/main/java/net/helcel/cowspent/android/main/BillsListViewActivity.kt b/app/src/main/java/net/helcel/cowspent/android/main/BillsListViewActivity.kt index 53de537..e624507 100644 --- a/app/src/main/java/net/helcel/cowspent/android/main/BillsListViewActivity.kt +++ b/app/src/main/java/net/helcel/cowspent/android/main/BillsListViewActivity.kt @@ -782,7 +782,7 @@ class BillsListViewActivity : // The account and all-projects refresh belongs to opening the app, throttled by the // SyncOnOpen interval so that resuming within the interval does not repeat it. - val intervalMinutes = SyncSettings.intervalMinutes(applicationContext) + val intervalMinutes = SyncSettings.OPEN_SYNC_INTERVAL_MINUTES val lastAccountSync = preferences.getLong(getString(R.string.pref_key_last_account_sync_timestamp), 0L) val accountSyncDue = trigger == SyncTrigger.APP_OPEN && now - lastAccountSync > intervalMinutes * 60 * 1000L @@ -866,10 +866,13 @@ class BillsListViewActivity : projectId: Long, now: Long ): Boolean { - if (!preferences.getBoolean(getString(R.string.pref_key_beta_features), false)) return false + if (!preferences.getBoolean(getString(R.string.pref_key_extra_features), false)) return false + // "Always" means what it says: every manual refresh is a full sync. + val delayMinutes = SyncSettings.fullSyncDelayMinutes(applicationContext) + if (delayMinutes == 0) return false val lastFull = preferences.getLong(lastFullSyncKey(projectId), 0L) if (lastFull == 0L) return false - return now - lastFull < SyncSettings.intervalMinutes(applicationContext) * 60 * 1000L + return now - lastFull < delayMinutes * 60 * 1000L } private fun markProjectSynced(preferences: SharedPreferences, projectId: Long, at: Long) { preferences.edit { putLong(lastProjectSyncKey(projectId), at) } diff --git a/app/src/main/java/net/helcel/cowspent/android/project/ProjectOptionsDialog.kt b/app/src/main/java/net/helcel/cowspent/android/project/ProjectOptionsDialog.kt index 13e2cfb..96d86d1 100644 --- a/app/src/main/java/net/helcel/cowspent/android/project/ProjectOptionsDialog.kt +++ b/app/src/main/java/net/helcel/cowspent/android/project/ProjectOptionsDialog.kt @@ -36,7 +36,7 @@ fun ProjectOptionsDialogContent( projectType: ProjectType = ProjectType.LOCAL, accessLevel: Int = DBProject.ACCESS_LEVEL_ADMIN, isShareable: Boolean = true, - showBetaFeatures: Boolean = false + showExtraFeatures: Boolean = false ) { Surface( shape = MaterialTheme.shapes.large, @@ -80,7 +80,7 @@ fun ProjectOptionsDialogContent( // Row 2: Manage Member, Manage Labels, Manage Currencies if (!isArchived && isMaintainer) { row2.add(ProjectOption(stringResource(R.string.action_members), Icons.Default.Group, onManageMembers)) - if (showBetaFeatures && (projectType == ProjectType.LOCAL || projectType == ProjectType.COSPEND)) { + if (showExtraFeatures && (projectType == ProjectType.LOCAL || projectType == ProjectType.COSPEND)) { row2.add(ProjectOption(stringResource(R.string.action_labels), Icons.AutoMirrored.Filled.Label, onManageLabels)) } row2.add(ProjectOption(stringResource(R.string.action_currencies), Icons.Default.MonetizationOn, onManageCurrencies)) @@ -183,7 +183,7 @@ fun ProjectOptionsDialogPreview() { projectType = ProjectType.COSPEND, accessLevel = DBProject.ACCESS_LEVEL_ADMIN, isShareable = true, - showBetaFeatures = true + showExtraFeatures = true ) } } @@ -208,7 +208,7 @@ fun ProjectOptionsDialogPreview2() { projectType = ProjectType.COSPEND, accessLevel = DBProject.ACCESS_LEVEL_ADMIN, isShareable = true, - showBetaFeatures = true + showExtraFeatures = true ) } } @@ -232,7 +232,7 @@ fun ProjectOptionsDialogPreview3() { projectType = ProjectType.LOCAL, accessLevel = DBProject.ACCESS_LEVEL_ADMIN, isShareable = true, - showBetaFeatures = true + showExtraFeatures = true ) } } diff --git a/app/src/main/java/net/helcel/cowspent/android/settings/SettingsScreen.kt b/app/src/main/java/net/helcel/cowspent/android/settings/SettingsScreen.kt index b1c344c..9e7aa73 100644 --- a/app/src/main/java/net/helcel/cowspent/android/settings/SettingsScreen.kt +++ b/app/src/main/java/net/helcel/cowspent/android/settings/SettingsScreen.kt @@ -84,9 +84,9 @@ fun SettingsScreen( val keyColor = stringResource(R.string.pref_key_color) val keyOfflineMode = stringResource(R.string.pref_key_offline_mode) val keyShowArchived = stringResource(R.string.pref_key_show_archived) - val keyBetaFeatures = stringResource(R.string.pref_key_beta_features) + val keyExtraFeatures = stringResource(R.string.pref_key_extra_features) val keyStatsIncludeDeactivated = stringResource(R.string.pref_key_stats_include_deactivated) - val keyAutoSyncOnOpen = stringResource(R.string.pref_key_auto_sync_on_open) + val keyFullSyncDelay = stringResource(R.string.pref_key_full_sync_delay) val keyFillNewBillFromLast = stringResource(R.string.pref_key_fill_new_bill_from_last) val keyLastAccountSync = stringResource(R.string.pref_key_last_account_sync_timestamp) @@ -128,8 +128,8 @@ fun SettingsScreen( var showArchived by remember(keyShowArchived) { mutableStateOf(sharedPreferences.getBoolean(keyShowArchived, false)) } - var betaFeatures by remember(keyBetaFeatures) { - mutableStateOf(sharedPreferences.getBoolean(keyBetaFeatures, false)) + var extraFeatures by remember(keyExtraFeatures) { + mutableStateOf(sharedPreferences.getBoolean(keyExtraFeatures, false)) } var fillNewBillFromLast by remember(keyFillNewBillFromLast) { mutableStateOf(sharedPreferences.getBoolean(keyFillNewBillFromLast, false)) @@ -138,16 +138,16 @@ fun SettingsScreen( mutableStateOf(sharedPreferences.getBoolean(keyStatsIncludeDeactivated, false)) } - val syncIntervals = SyncSettings.INTERVAL_CHOICES_MINUTES - val syncIntervalLabels = listOf( - stringResource(R.string.pref_value_sync_1m), - stringResource(R.string.pref_value_sync_10m), + val fullSyncDelays = SyncSettings.FULL_SYNC_DELAY_CHOICES_MINUTES + val fullSyncDelayLabels = listOf( + stringResource(R.string.pref_value_sync_always), stringResource(R.string.pref_value_sync_1h), - stringResource(R.string.pref_value_sync_1d) + stringResource(R.string.pref_value_sync_1d), + stringResource(R.string.pref_value_sync_1w) ) - - var syncInterval by remember(keyAutoSyncOnOpen) { - mutableIntStateOf(SyncSettings.intervalMinutes(context)) + + var fullSyncDelay by remember(keyFullSyncDelay) { + mutableIntStateOf(SyncSettings.fullSyncDelayMinutes(context)) } Scaffold( @@ -173,28 +173,6 @@ fun SettingsScreen( // Appearance SettingsCategory(stringResource(R.string.settings_appearance)) - SettingsSwitchPreference( - title = stringResource(R.string.settings_show_archived), - icon = Icons.Default.Archive, - checked = showArchived, - onCheckedChange = { - showArchived = it - sharedPreferences.edit { - putBoolean(keyShowArchived, it) - if (!it) { - val selectedProjectId = sharedPreferences.getLong("selected_project", 0) - if (selectedProjectId != 0L) { - val db = CowspentSQLiteOpenHelper.getInstance(context) - val project = db.getProject(selectedProjectId) - if (project?.isArchived == true) { - putLong("selected_project", 0) - } - } - } - } - } - ) - SettingsListPreference( title = stringResource(R.string.settings_night_mode), icon = Icons.Default.Brightness2, @@ -283,19 +261,41 @@ fun SettingsScreen( SettingsCategory(stringResource(R.string.settings_other)) SettingsSwitchPreference( - title = stringResource(R.string.settings_beta_features), - summary = stringResource(R.string.settings_beta_features_summary), + title = stringResource(R.string.settings_extra_features), + summary = stringResource(R.string.settings_extra_features_summary), icon = Icons.Default.Info, - checked = betaFeatures, + checked = extraFeatures, onCheckedChange = { - betaFeatures = it + extraFeatures = it sharedPreferences.edit { - putBoolean(keyBetaFeatures, it) + putBoolean(keyExtraFeatures, it) } } ) - if (betaFeatures) { + if (extraFeatures) { + SettingsSwitchPreference( + title = stringResource(R.string.settings_show_archived), + icon = Icons.Default.Archive, + checked = showArchived, + onCheckedChange = { + showArchived = it + sharedPreferences.edit { + putBoolean(keyShowArchived, it) + if (!it) { + val selectedProjectId = sharedPreferences.getLong("selected_project", 0) + if (selectedProjectId != 0L) { + val db = CowspentSQLiteOpenHelper.getInstance(context) + val project = db.getProject(selectedProjectId) + if (project?.isArchived == true) { + putLong("selected_project", 0) + } + } + } + } + } + ) + SettingsSwitchPreference( title = stringResource(R.string.settings_fill_new_bill_from_last), summary = stringResource(R.string.settings_fill_new_bill_from_last_summary), @@ -322,18 +322,18 @@ fun SettingsScreen( ) SettingsSliderPreference( - title = stringResource(R.string.settings_auto_sync_on_open), - summary = stringResource(R.string.settings_auto_sync_on_open_summary), + title = stringResource(R.string.settings_full_sync_delay), + summary = stringResource(R.string.settings_full_sync_delay_summary), icon = Icons.Default.Sync, - value = syncInterval, - values = syncIntervals, - labels = syncIntervalLabels, - onValueChange = { newInterval -> + value = fullSyncDelay, + values = fullSyncDelays, + labels = fullSyncDelayLabels, + onValueChange = { newDelay -> // Slider reports every drag delta, not just the snapped steps. - if (newInterval != syncInterval) { - syncInterval = newInterval + if (newDelay != fullSyncDelay) { + fullSyncDelay = newDelay sharedPreferences.edit { - putInt(keyAutoSyncOnOpen, newInterval) + putInt(keyFullSyncDelay, newDelay) } } } diff --git a/app/src/main/java/net/helcel/cowspent/util/SyncSettings.kt b/app/src/main/java/net/helcel/cowspent/util/SyncSettings.kt index 25192c5..3b38863 100644 --- a/app/src/main/java/net/helcel/cowspent/util/SyncSettings.kt +++ b/app/src/main/java/net/helcel/cowspent/util/SyncSettings.kt @@ -5,29 +5,45 @@ import androidx.preference.PreferenceManager import net.helcel.cowspent.R /** - * The SyncOnOpen preference: how often opening the app refreshes the account and every project. + * The two independent delays that govern syncing. * - * The choices and the default live here rather than in the settings screen so that the screen and - * the sync trigger cannot disagree about what is in effect. + * They used to be one setting, which meant the app-open throttle and the full-sync delay could + * not be tuned apart even though they answer different questions. The choices and defaults live + * here rather than in the settings screen so the screen and the sync triggers cannot disagree + * about what is in effect. */ object SyncSettings { - /** Steps offered by the slider, in minutes. */ - val INTERVAL_CHOICES_MINUTES = listOf(1, 10, 60, 1440) - - const val DEFAULT_INTERVAL_MINUTES = 10 + /** + * How long opening the app waits before refreshing the account and every project again, so + * that resuming within the interval does not repeat the work. Not user-facing: it governs + * background catch-up, not anything the user asked for. + */ + const val OPEN_SYNC_INTERVAL_MINUTES = 10 /** - * The configured interval in minutes. A stored value that is not one of the offered steps — - * from a restored backup, or a build that changed the steps — falls back to the default - * rather than being displayed as the first step while a different value drives the sync. + * Steps offered for the full sync delay, in minutes. 0 means every manual refresh is a full + * sync; anything else lets a refresh inside the window settle for fetching just the changes. */ - fun intervalMinutes(context: Context): Int { + val FULL_SYNC_DELAY_CHOICES_MINUTES = listOf(0, 60, 1440, 10080) + + /** + * Only consulted once Extra Features is on - with it off every pull-to-refresh is a full + * sync, whatever is stored here. + */ + const val DEFAULT_FULL_SYNC_DELAY_MINUTES = 1440 + + /** + * The configured delay in minutes. A stored value that is not one of the offered steps - from + * a restored backup, or a build that changed the steps - falls back to the default rather + * than being displayed as one step while a different value drives the sync. + */ + fun fullSyncDelayMinutes(context: Context): Int { val prefs = PreferenceManager.getDefaultSharedPreferences(context) val stored = prefs.getInt( - context.getString(R.string.pref_key_auto_sync_on_open), - DEFAULT_INTERVAL_MINUTES + context.getString(R.string.pref_key_full_sync_delay), + DEFAULT_FULL_SYNC_DELAY_MINUTES ) - return if (stored in INTERVAL_CHOICES_MINUTES) stored else DEFAULT_INTERVAL_MINUTES + return if (stored in FULL_SYNC_DELAY_CHOICES_MINUTES) stored else DEFAULT_FULL_SYNC_DELAY_MINUTES } } diff --git a/app/src/main/res/values-af-rZA/strings.xml b/app/src/main/res/values-af-rZA/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-af-rZA/strings.xml +++ b/app/src/main/res/values-af-rZA/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-ca-rES/strings.xml +++ b/app/src/main/res/values-ca-rES/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index c3ac2ea..0a38959 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -138,14 +138,8 @@ Eigene Farbe Farbauswahl Archivierte Projekte anzeigen - Beta-Funktionen - Experimentelle Funktionen aktivieren. Benutzung auf eigene Gefahr. Aus letzter Rechnung vorausfüllen Zahler, Kategorie, Zahlungsart und Beteiligte aus der zuletzt erstellten Rechnung des Projekts übernehmen. - Synchronisierungsintervall - Wie oft Konto und alle Projekte beim Öffnen der App aktualisiert werden. - 1 Minute - 10 Minuten 1 Stunde 1 Tag WARNUNG: \"http\" ist unsicher. Verwende \"https\". diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 8cdeed3..2876e61 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -137,14 +137,8 @@ Color personalizado Selección de color Mostrar los proyectos archivados - Funciones beta - Activar las funciones experimentales. Úsalas bajo tu propia responsabilidad. Rellenar desde la última factura Reutilizar el pagador, la categoría, el modo y los participantes de la última factura creada en el proyecto. - Intervalo de sincronización - Con qué frecuencia se actualizan la cuenta y todos los proyectos al abrir la aplicación. - 1 minuto - 10 minutos 1 hora 1 día ADVERTENCIA: \"http\" no es seguro. Usa \"https\". diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index d61cd7e..70ebfde 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -138,14 +138,8 @@ Couleur personnalisée Sélection de la couleur Afficher les projets archivés - Fonctionnalités bêta - Activer les fonctionnalités expérimentales. À utiliser à vos risques et périls. Pré-remplir depuis la dernière facture Reprendre le payeur, la catégorie, le mode et les participants de la dernière facture créée dans le projet. - Intervalle de synchronisation - Fréquence de rafraîchissement du compte et de tous les projets à l\'ouverture de l\'application. - 1 minute - 10 minutes 1 heure 1 jour AVERTISSEMENT : \"http\" n\'est pas sûr. Utilisez \"https\". diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-iw-rIL/strings.xml b/app/src/main/res/values-iw-rIL/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-iw-rIL/strings.xml +++ b/app/src/main/res/values-iw-rIL/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-sr-rSP/strings.xml +++ b/app/src/main/res/values-sr-rSP/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-vi-rVN/strings.xml +++ b/app/src/main/res/values-vi-rVN/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 0a095bd..3dd792e 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -144,14 +144,8 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes 1 hour 1 day WARNING: "http" is unsafe. Use "https". diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0b8973e..1512578 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -139,17 +139,17 @@ Custom color Color Selection Show archived projects - Beta Features - Enable experimental features. Use at your own risk. + Extra Features + Experimental and advanced settings. Use at your own risk. Auto-fill from last bill Pre-fill payer, category, mode and owers from the last bill created in the project. Include deactivated members in stats - Sync interval - How often to refresh the account and all projects when opening the app. - 1 minute - 10 minutes + Full sync delay + How long a pull-to-refresh waits between two full syncs. In between, it only fetches what changed, which is much faster. + Always 1 hour 1 day + 1 week WARNING: "http" is unsafe. Use "https". Choose Color @@ -170,9 +170,9 @@ colorMode offlineMode showArchived - betaFeatures + betaFeatures statsIncludeDeactivated - autoSyncOnOpen + fullSyncDelayMinutes lastAccountSyncTimestamp fillNewBillFromLast 1