From 7ceb9dc46340f4d18cac85523d58b919ebd72640 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 8 Aug 2020 20:22:50 +0200 Subject: [PATCH] show the Save/Discard dialog properly at repeating events --- .../calendar/pro/activities/EventActivity.kt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt index 43ab9c5f4..050228825 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt @@ -88,6 +88,8 @@ class EventActivity : SimpleActivity() { private var mSelectedContacts = ArrayList() private var mStoredEventTypes = ArrayList() private var mOriginalTimeZone = DateTimeZone.getDefault().id + private var mOriginalStartTS = 0L + private var mOriginalEndTS = 0L private lateinit var mEventStartDateTime: DateTime private lateinit var mEventEndDateTime: DateTime @@ -278,17 +280,22 @@ class EventActivity : SimpleActivity() { newEndTS = second } + val hasTimeChanged = if (mOriginalStartTS == 0L) { + mEvent.startTS != newStartTS || mEvent.endTS != newEndTS + } else { + mOriginalStartTS != newStartTS || mOriginalEndTS != newEndTS + } + val reminders = getReminders() if (event_title.value != mEvent.title || event_location.value != mEvent.location || event_description.value != mEvent.description || - newStartTS != mEvent.startTS || - newEndTS != mEvent.endTS || event_time_zone.text != mEvent.getTimeZoneString() || reminders != mEvent.getReminders() || mRepeatInterval != mEvent.repeatInterval || mRepeatRule != mEvent.repeatRule || - mEventTypeId != mEvent.eventType) { + mEventTypeId != mEvent.eventType || + hasTimeChanged) { return true } @@ -401,6 +408,9 @@ class EventActivity : SimpleActivity() { private fun setupEditEvent() { val realStart = if (mEventOccurrenceTS == 0L) mEvent.startTS else mEventOccurrenceTS val duration = mEvent.endTS - mEvent.startTS + mOriginalStartTS = realStart + mOriginalEndTS = realStart + duration + window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN) updateActionBarTitle(getString(R.string.edit_event)) mOriginalTimeZone = mEvent.timeZone