From ebdf8efe418fa41e336867884fb8838404848aee Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 12 Jun 2017 22:16:14 +0200 Subject: [PATCH] add a dialog asking if all occurrences of repeating event should be edited --- .../calendar/activities/EventActivity.kt | 17 +++++--- .../dialogs/EditRepeatingEventDialog.kt | 31 ++++++++++++++ .../calendar/dialogs/ExportEventsDialog.kt | 1 + .../layout/dialog_edit_repeating_event.xml | 42 +++++++++++++++++++ 4 files changed, 86 insertions(+), 5 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/EditRepeatingEventDialog.kt create mode 100644 app/src/main/res/layout/dialog_edit_repeating_event.xml diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt index d2998653c..6920b630a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt @@ -10,10 +10,7 @@ import android.view.Menu import android.view.MenuItem import android.view.WindowManager import com.simplemobiletools.calendar.R -import com.simplemobiletools.calendar.dialogs.DeleteEventDialog -import com.simplemobiletools.calendar.dialogs.RepeatLimitTypePickerDialog -import com.simplemobiletools.calendar.dialogs.RepeatRuleWeeklyDialog -import com.simplemobiletools.calendar.dialogs.SelectEventTypeDialog +import com.simplemobiletools.calendar.dialogs.* import com.simplemobiletools.calendar.extensions.* import com.simplemobiletools.calendar.helpers.* import com.simplemobiletools.calendar.helpers.Formatter @@ -459,7 +456,17 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener { if (mEvent.id == 0) { dbHelper.insert(mEvent) } else { - dbHelper.update(mEvent) + if (mRepeatInterval > 0) { + EditRepeatingEventDialog(this) { + if (it) { + dbHelper.update(mEvent) + } else { + + } + } + } else { + dbHelper.update(mEvent) + } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/EditRepeatingEventDialog.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/EditRepeatingEventDialog.kt new file mode 100644 index 000000000..818e85778 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/EditRepeatingEventDialog.kt @@ -0,0 +1,31 @@ +package com.simplemobiletools.calendar.dialogs + +import android.support.v7.app.AlertDialog +import android.view.ViewGroup +import android.view.WindowManager +import com.simplemobiletools.calendar.R +import com.simplemobiletools.calendar.activities.SimpleActivity +import com.simplemobiletools.commons.extensions.setupDialogStuff +import kotlinx.android.synthetic.main.dialog_edit_repeating_event.view.* + +class EditRepeatingEventDialog(val activity: SimpleActivity, val callback: (allOccurrences: Boolean) -> Unit) : AlertDialog.Builder(activity) { + var dialog: AlertDialog + + init { + val view = (activity.layoutInflater.inflate(R.layout.dialog_edit_repeating_event, null) as ViewGroup).apply { + edit_repeating_event_one_only.setOnClickListener { sendResult(false) } + edit_repeating_event_all_occurrences.setOnClickListener { sendResult(true) } + } + + dialog = AlertDialog.Builder(activity) + .create().apply { + activity.setupDialogStuff(view, this) + window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN) + } + } + + private fun sendResult(allOccurrences: Boolean) { + callback(allOccurrences) + dialog.dismiss() + } +} diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/ExportEventsDialog.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/ExportEventsDialog.kt index d6f66e95a..46da7258c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/ExportEventsDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/ExportEventsDialog.kt @@ -13,6 +13,7 @@ import java.io.File class ExportEventsDialog(val activity: SimpleActivity, val path: String, val callback: (exportPastEvents: Boolean, file: File, eventTypes: HashSet) -> Unit) : AlertDialog.Builder(activity) { + init { val view = (activity.layoutInflater.inflate(R.layout.dialog_export_events, null) as ViewGroup).apply { export_events_folder.text = activity.humanizePath(path) diff --git a/app/src/main/res/layout/dialog_edit_repeating_event.xml b/app/src/main/res/layout/dialog_edit_repeating_event.xml new file mode 100644 index 000000000..8b09b47d6 --- /dev/null +++ b/app/src/main/res/layout/dialog_edit_repeating_event.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + +