diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt
index 370f02510..769fbf9cd 100644
--- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt
@@ -133,7 +133,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
search_placeholder_2.setTextColor(config.textColor)
calendar_fab.setColors(config.textColor, getAdjustedPrimaryColor(), config.backgroundColor)
search_holder.background = ColorDrawable(config.backgroundColor)
- swipe_refresh_layout.isEnabled = config.caldavSync
+ swipe_refresh_layout.isEnabled = config.caldavSync && config.pullToRefresh
}
override fun onPause() {
diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt
index efb680b6c..6e62dad67 100644
--- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt
@@ -38,7 +38,6 @@ class SettingsActivity : SimpleActivity() {
setContentView(R.layout.activity_settings)
res = resources
mStoredPrimaryColor = config.primaryColor
- setupCaldavSync()
}
override fun onResume() {
@@ -63,6 +62,9 @@ class SettingsActivity : SimpleActivity() {
setupUseSameSnooze()
setupLoopReminders()
setupSnoozeTime()
+ setupCaldavSync()
+ setupManageSyncedCalendars()
+ setupPullToRefresh()
setupDefaultReminder()
setupDefaultReminder1()
setupDefaultReminder2()
@@ -163,7 +165,18 @@ class SettingsActivity : SimpleActivity() {
}
}
}
+ }
+ private fun setupPullToRefresh() {
+ settings_caldav_pull_to_refresh_holder.beVisibleIf(config.caldavSync)
+ settings_caldav_pull_to_refresh.isChecked = config.pullToRefresh
+ settings_caldav_pull_to_refresh_holder.setOnClickListener {
+ settings_caldav_pull_to_refresh.toggle()
+ config.pullToRefresh = settings_caldav_pull_to_refresh.isChecked
+ }
+ }
+
+ private fun setupManageSyncedCalendars() {
settings_manage_synced_calendars_holder.beVisibleIf(config.caldavSync)
settings_manage_synced_calendars_holder.setOnClickListener {
showCalendarPicker()
@@ -177,6 +190,7 @@ class SettingsActivity : SimpleActivity() {
settings_caldav_sync.isChecked = false
config.caldavSync = false
settings_manage_synced_calendars_holder.beGone()
+ settings_caldav_pull_to_refresh_holder.beGone()
config.getSyncedCalendarIdsAsList().forEach {
CalDAVHandler(applicationContext).deleteCalDAVCalendarEvents(it.toLong())
}
@@ -194,6 +208,7 @@ class SettingsActivity : SimpleActivity() {
}
settings_manage_synced_calendars_holder.beVisibleIf(newCalendarIds.isNotEmpty())
+ settings_caldav_pull_to_refresh_holder.beVisibleIf(newCalendarIds.isNotEmpty())
settings_caldav_sync.isChecked = newCalendarIds.isNotEmpty()
config.caldavSync = newCalendarIds.isNotEmpty()
if (settings_caldav_sync.isChecked) {
diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Config.kt
index c7607cfe3..dcd3f76b5 100644
--- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Config.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Config.kt
@@ -162,4 +162,8 @@ class Config(context: Context) : BaseConfig(context) {
var defaultReminder3: Int
get() = prefs.getInt(DEFAULT_REMINDER_3, REMINDER_OFF)
set(defaultReminder3) = prefs.edit().putInt(DEFAULT_REMINDER_3, defaultReminder3).apply()
+
+ var pullToRefresh: Boolean
+ get() = prefs.getBoolean(PULL_TO_REFRESH, false)
+ set(pullToRefresh) = prefs.edit().putBoolean(PULL_TO_REFRESH, pullToRefresh).apply()
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Constants.kt
index b3f448ba3..af6b78735 100644
--- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Constants.kt
@@ -64,6 +64,7 @@ const val USE_PREVIOUS_EVENT_REMINDERS = "use_previous_event_reminders"
const val DEFAULT_REMINDER_1 = "default_reminder_1"
const val DEFAULT_REMINDER_2 = "default_reminder_2"
const val DEFAULT_REMINDER_3 = "default_reminder_3"
+const val PULL_TO_REFRESH = "pull_to_refresh"
// repeat_rule for monthly and yearly repetition
const val REPEAT_SAME_DAY = 1 // i.e. 25th every month, or 3rd june (if yearly repetition)
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index bd039ca27..6e84056c5 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -529,6 +529,29 @@
+
+
+
+
+
+