Loading app/src/main/kotlin/at/bitfire/davdroid/settings/AccountSettings.kt +3 −0 Original line number Diff line number Diff line Loading @@ -156,6 +156,7 @@ class AccountSettings @AssistedInject constructor( SyncDataType.CONTACTS -> KEY_SYNC_INTERVAL_ADDRESSBOOKS SyncDataType.EVENTS -> KEY_SYNC_INTERVAL_CALENDARS SyncDataType.TASKS -> KEY_SYNC_INTERVAL_TASKS SyncDataType.DEFAULT -> KEY_SYNC_INTERVAL_DEFAULT } val seconds = accountManager.getUserData(account, key)?.toLong() return when (seconds) { Loading @@ -176,6 +177,7 @@ class AccountSettings @AssistedInject constructor( SyncDataType.CONTACTS -> KEY_SYNC_INTERVAL_ADDRESSBOOKS SyncDataType.EVENTS -> KEY_SYNC_INTERVAL_CALENDARS SyncDataType.TASKS -> KEY_SYNC_INTERVAL_TASKS SyncDataType.DEFAULT -> KEY_SYNC_INTERVAL_DEFAULT } val newValue = seconds ?: SYNC_INTERVAL_MANUALLY accountManager.setAndVerifyUserData(account, key, newValue.toString()) Loading Loading @@ -362,6 +364,7 @@ class AccountSettings @AssistedInject constructor( /** Stores the tasks sync interval (in seconds) so that it can be set again when the provider is switched */ const val KEY_SYNC_INTERVAL_TASKS = "sync_interval_tasks" const val KEY_SYNC_INTERVAL_DEFAULT = "sync_interval_default" const val KEY_USERNAME = "user_name" const val KEY_CERTIFICATE_ALIAS = "certificate_alias" Loading app/src/main/kotlin/at/bitfire/davdroid/sync/AutomaticSyncManager.kt +2 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ class AutomaticSyncManager @Inject constructor( SyncDataType.CONTACTS -> throw IllegalStateException() // handled above SyncDataType.EVENTS -> CalendarContract.AUTHORITY SyncDataType.TASKS -> tasksAppManager.get().currentProvider()?.authority SyncDataType.DEFAULT -> null } if (authority != null && syncInterval != null) { // enable given authority, but completely disable all other possible authorities Loading Loading @@ -131,6 +132,7 @@ class AutomaticSyncManager @Inject constructor( fun updateAutomaticSync(account: Account, dataType: SyncDataType) { val serviceType = when (dataType) { SyncDataType.CONTACTS -> Service.TYPE_CARDDAV SyncDataType.DEFAULT, SyncDataType.EVENTS, SyncDataType.TASKS -> Service.TYPE_CALDAV } Loading app/src/main/kotlin/at/bitfire/davdroid/sync/SyncDataType.kt +2 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ import dagger.hilt.components.SingletonComponent enum class SyncDataType { CONTACTS, DEFAULT, EVENTS, TASKS; Loading @@ -34,6 +35,7 @@ enum class SyncDataType { ) TASKS -> TaskProvider.ProviderName.entries.map { it.authority } DEFAULT -> emptyList() } companion object { Loading app/src/main/kotlin/at/bitfire/davdroid/sync/worker/BaseSyncWorker.kt +3 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,9 @@ abstract class BaseSyncWorker( } } } SyncDataType.DEFAULT -> { return Result.success() } } // Start syncing Loading app/src/main/kotlin/at/bitfire/davdroid/ui/account/AccountSettingsModel.kt +9 −0 Original line number Diff line number Diff line Loading @@ -69,6 +69,8 @@ class AccountSettingsModel @AssistedInject constructor( val syncIntervalCalendars: Long? = null, val hasTasksSync: Boolean = false, val syncIntervalTasks: Long? = null, val hasDefaultSync: Boolean = false, val syncIntervalDefault: Long? = null, val syncWifiOnly: Boolean = false, val syncWifiOnlySSIDs: List<String>? = null, Loading Loading @@ -167,6 +169,13 @@ class AccountSettingsModel @AssistedInject constructor( } } fun updateDefaultSyncInterval(syncInterval: Long) { CoroutineScope(defaultDispatcher).launch { accountSettings.setSyncInterval(SyncDataType.DEFAULT, syncInterval.takeUnless { it == -1L }) reload() } } fun updateSyncWifiOnly(wifiOnly: Boolean) = CoroutineScope(defaultDispatcher).launch { accountSettings.setSyncWiFiOnly(wifiOnly) reload() Loading Loading
app/src/main/kotlin/at/bitfire/davdroid/settings/AccountSettings.kt +3 −0 Original line number Diff line number Diff line Loading @@ -156,6 +156,7 @@ class AccountSettings @AssistedInject constructor( SyncDataType.CONTACTS -> KEY_SYNC_INTERVAL_ADDRESSBOOKS SyncDataType.EVENTS -> KEY_SYNC_INTERVAL_CALENDARS SyncDataType.TASKS -> KEY_SYNC_INTERVAL_TASKS SyncDataType.DEFAULT -> KEY_SYNC_INTERVAL_DEFAULT } val seconds = accountManager.getUserData(account, key)?.toLong() return when (seconds) { Loading @@ -176,6 +177,7 @@ class AccountSettings @AssistedInject constructor( SyncDataType.CONTACTS -> KEY_SYNC_INTERVAL_ADDRESSBOOKS SyncDataType.EVENTS -> KEY_SYNC_INTERVAL_CALENDARS SyncDataType.TASKS -> KEY_SYNC_INTERVAL_TASKS SyncDataType.DEFAULT -> KEY_SYNC_INTERVAL_DEFAULT } val newValue = seconds ?: SYNC_INTERVAL_MANUALLY accountManager.setAndVerifyUserData(account, key, newValue.toString()) Loading Loading @@ -362,6 +364,7 @@ class AccountSettings @AssistedInject constructor( /** Stores the tasks sync interval (in seconds) so that it can be set again when the provider is switched */ const val KEY_SYNC_INTERVAL_TASKS = "sync_interval_tasks" const val KEY_SYNC_INTERVAL_DEFAULT = "sync_interval_default" const val KEY_USERNAME = "user_name" const val KEY_CERTIFICATE_ALIAS = "certificate_alias" Loading
app/src/main/kotlin/at/bitfire/davdroid/sync/AutomaticSyncManager.kt +2 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ class AutomaticSyncManager @Inject constructor( SyncDataType.CONTACTS -> throw IllegalStateException() // handled above SyncDataType.EVENTS -> CalendarContract.AUTHORITY SyncDataType.TASKS -> tasksAppManager.get().currentProvider()?.authority SyncDataType.DEFAULT -> null } if (authority != null && syncInterval != null) { // enable given authority, but completely disable all other possible authorities Loading Loading @@ -131,6 +132,7 @@ class AutomaticSyncManager @Inject constructor( fun updateAutomaticSync(account: Account, dataType: SyncDataType) { val serviceType = when (dataType) { SyncDataType.CONTACTS -> Service.TYPE_CARDDAV SyncDataType.DEFAULT, SyncDataType.EVENTS, SyncDataType.TASKS -> Service.TYPE_CALDAV } Loading
app/src/main/kotlin/at/bitfire/davdroid/sync/SyncDataType.kt +2 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ import dagger.hilt.components.SingletonComponent enum class SyncDataType { CONTACTS, DEFAULT, EVENTS, TASKS; Loading @@ -34,6 +35,7 @@ enum class SyncDataType { ) TASKS -> TaskProvider.ProviderName.entries.map { it.authority } DEFAULT -> emptyList() } companion object { Loading
app/src/main/kotlin/at/bitfire/davdroid/sync/worker/BaseSyncWorker.kt +3 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,9 @@ abstract class BaseSyncWorker( } } } SyncDataType.DEFAULT -> { return Result.success() } } // Start syncing Loading
app/src/main/kotlin/at/bitfire/davdroid/ui/account/AccountSettingsModel.kt +9 −0 Original line number Diff line number Diff line Loading @@ -69,6 +69,8 @@ class AccountSettingsModel @AssistedInject constructor( val syncIntervalCalendars: Long? = null, val hasTasksSync: Boolean = false, val syncIntervalTasks: Long? = null, val hasDefaultSync: Boolean = false, val syncIntervalDefault: Long? = null, val syncWifiOnly: Boolean = false, val syncWifiOnlySSIDs: List<String>? = null, Loading Loading @@ -167,6 +169,13 @@ class AccountSettingsModel @AssistedInject constructor( } } fun updateDefaultSyncInterval(syncInterval: Long) { CoroutineScope(defaultDispatcher).launch { accountSettings.setSyncInterval(SyncDataType.DEFAULT, syncInterval.takeUnless { it == -1L }) reload() } } fun updateSyncWifiOnly(wifiOnly: Boolean) = CoroutineScope(defaultDispatcher).launch { accountSettings.setSyncWiFiOnly(wifiOnly) reload() Loading