From b8e15d95f69168833fc46d9ab11176070b6e4761 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 13 Aug 2017 16:54:08 +0200 Subject: [PATCH] add a new settings button for managing caldav synced calendars --- .../calendar/activities/SettingsActivity.kt | 27 ++++++++++--- .../calendar/dialogs/SelectCalendarsDialog.kt | 2 +- .../calendar/extensions/Context.kt | 2 +- app/src/main/res/layout/activity_settings.xml | 39 +++++++++++++++---- app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-hi-rIN/strings.xml | 1 + app/src/main/res/values-hu/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-iw/strings.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-pt/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-sk/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 20 files changed, 71 insertions(+), 15 deletions(-) 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 7c4286b91..38ed06585 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt @@ -18,6 +18,8 @@ import com.simplemobiletools.calendar.helpers.FONT_SIZE_LARGE import com.simplemobiletools.calendar.helpers.FONT_SIZE_MEDIUM import com.simplemobiletools.calendar.helpers.FONT_SIZE_SMALL import com.simplemobiletools.commons.dialogs.RadioGroupDialog +import com.simplemobiletools.commons.extensions.beGone +import com.simplemobiletools.commons.extensions.beVisibleIf import com.simplemobiletools.commons.extensions.toast import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.models.RadioItem @@ -107,15 +109,30 @@ class SettingsActivity : SimpleActivity() { } } } + + settings_manage_synced_calendars_holder.beVisibleIf(config.caldavSync) + settings_manage_synced_calendars_holder.setOnClickListener { + showCalendarPicker() + } } private fun toggleCaldavSync(enable: Boolean) { - settings_caldav_sync.isChecked = enable - config.caldavSync = enable if (enable) { - SelectCalendarsDialog(this) { - config.isFirstCaldavSync = false - } + showCalendarPicker() + } else { + settings_caldav_sync.isChecked = false + config.caldavSync = false + settings_manage_synced_calendars_holder.beGone() + } + } + + private fun showCalendarPicker() { + SelectCalendarsDialog(this) { + config.isFirstCaldavSync = false + val ids = config.caldavSyncedCalendarIDs.split(",").filter { it.trim().isNotEmpty() } as ArrayList + settings_manage_synced_calendars_holder.beVisibleIf(ids.isNotEmpty()) + settings_caldav_sync.isChecked = ids.isNotEmpty() + config.caldavSync = ids.isNotEmpty() } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/SelectCalendarsDialog.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/SelectCalendarsDialog.kt index 80131dedc..d6d732bf3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/SelectCalendarsDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/SelectCalendarsDialog.kt @@ -20,7 +20,7 @@ class SelectCalendarsDialog(val activity: Activity, val callback: () -> Unit) : var view = (activity.layoutInflater.inflate(R.layout.dialog_select_calendars, null) as ViewGroup) init { - val ids = activity.config.caldavSyncedCalendarIDs.split(",") as ArrayList + val ids = activity.config.caldavSyncedCalendarIDs.split(",").filter { it.trim().isNotEmpty() } as ArrayList val isFirstCaldavSync = activity.config.isFirstCaldavSync val calendars = activity.getCalDAVCalendars() val sorted = calendars.sortedWith(compareBy({ it.accountName }, { it.displayName })) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt index b651b6432..ad6fa2e1b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt @@ -233,7 +233,7 @@ fun Context.launchNewEventIntent(startNewTask: Boolean = false, today: Boolean = fun Context.getCalDAVCalendars(): List { val calendars = ArrayList() - if (!config.caldavSync || !hasCalendarPermission()) { + if (!hasCalendarPermission()) { return calendars } diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index c3ae792a0..44d1052a3 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -129,6 +129,29 @@ + + + + + + + android:background="@color/divider_strong" + android:importantForAccessibility="no"/> + android:background="@color/divider_strong" + android:importantForAccessibility="no"/> + android:background="@color/divider_strong" + android:importantForAccessibility="no"/> + android:background="@color/divider_strong" + android:importantForAccessibility="no"/> Select calendars to sync + Manage synced calendars %1$d minute diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index a18fd5a78..240b3017b 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -193,6 +193,7 @@ Select calendars to sync + Manage synced calendars %1$d minute diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 544abe3a1..395f31daf 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -193,6 +193,7 @@ Select calendars to sync + Manage synced calendars %1$d minute diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index d78f3824b..7eed5d1b6 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -193,6 +193,7 @@ Select calendars to sync + Manage synced calendars %1$d minute diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index b7257d484..dda02838c 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -193,6 +193,7 @@ Select calendars to sync + Manage synced calendars %1$d minute diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 1b1b7c2d7..2c8c45e87 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -193,6 +193,7 @@ Select calendars to sync + Manage synced calendars %1$d minute diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index f1b42e7e6..2de3d6b2d 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -193,6 +193,7 @@ Select calendars to sync + Manage synced calendars %1$d minute diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index e904fb4b5..0ec93cbbf 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -193,6 +193,7 @@ Select calendars to sync + Manage synced calendars %1$d minute diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 559d70712..3a4df6eb0 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -198,6 +198,7 @@ Select calendars to sync + Manage synced calendars %1$d minutę diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 3210a09bf..98eaa85f0 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -193,6 +193,7 @@ Select calendars to sync + Manage synced calendars %1$d minute diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 836b640f7..2f5470185 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -193,6 +193,7 @@ Select calendars to sync + Manage synced calendars %1$d minuto diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 52d639d2b..bab3c5743 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -207,6 +207,7 @@ Select calendars to sync + Manage synced calendars %1$d минута diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index e3454a0ff..593caf487 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -200,6 +200,7 @@ Zvoľte kalendáre pre synchronizáciu + Spravovať synchronizované kalendáre %1$d minútu diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 5aeeabd42..a7009a98b 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -193,6 +193,7 @@ Select calendars to sync + Manage synced calendars %1$d minut diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index cd5ee0976..b12575240 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -193,6 +193,7 @@ Select calendars to sync + Manage synced calendars %1$d minute diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b53992792..773cd16f6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -193,6 +193,7 @@ Select calendars to sync + Manage synced calendars %1$d minute