Loading app/src/main/kotlin/at/bitfire/davdroid/settings/AccountSettings.kt +3 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,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 @@ -177,6 +178,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 @@ -368,6 +370,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 @@ -94,6 +94,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 @@ -135,6 +136,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 +3 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ import dagger.hilt.components.SingletonComponent enum class SyncDataType { CONTACTS, DEFAULT, EVENTS, TASKS; Loading @@ -36,6 +37,7 @@ enum class SyncDataType { CONTACTS -> listOf(ContactsContract.AUTHORITY) EVENTS -> listOf(CalendarContract.AUTHORITY) TASKS -> TaskProvider.ProviderName.entries.map { it.authority } DEFAULT -> emptyList() } /** Loading @@ -54,6 +56,7 @@ enum class SyncDataType { .tasksAppManager() .currentProvider() ?.authority DEFAULT -> "" } 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 @@ -157,6 +157,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 @@ -177,6 +178,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 @@ -368,6 +370,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 @@ -94,6 +94,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 @@ -135,6 +136,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 +3 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ import dagger.hilt.components.SingletonComponent enum class SyncDataType { CONTACTS, DEFAULT, EVENTS, TASKS; Loading @@ -36,6 +37,7 @@ enum class SyncDataType { CONTACTS -> listOf(ContactsContract.AUTHORITY) EVENTS -> listOf(CalendarContract.AUTHORITY) TASKS -> TaskProvider.ProviderName.entries.map { it.authority } DEFAULT -> emptyList() } /** Loading @@ -54,6 +56,7 @@ enum class SyncDataType { .tasksAppManager() .currentProvider() ?.authority DEFAULT -> "" } 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