From 3fc9469dbbb6332afac5746278302f722b25fc4c Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 23 Apr 2017 12:44:48 +0200 Subject: [PATCH] couple improvements to repeat type dialog --- .../calendar/activities/EventActivity.kt | 38 ++++++++++--------- .../dialogs/RepeatTypePickerDialog.kt | 14 ++++++- .../res/layout/dialog_repeat_type_picker.xml | 2 +- 3 files changed, 34 insertions(+), 20 deletions(-) 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 e164a2407..f28c2860a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt @@ -66,10 +66,10 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener { checkReminderTexts() updateRepetitionText() - updateStartDate() - updateStartTime() - updateEndDate() - updateEndTime() + updateStartDateText() + updateStartTimeText() + updateEndDateText() + updateEndTimeText() updateEventType() mWasEndDateSet = event != null @@ -172,11 +172,15 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener { private fun showRepetitionTypePicker() { hideKeyboard() RepeatTypePickerDialog(this, mRepeatLimit, mEventStartDateTime.seconds()) { - mRepeatLimit = it - checkRepetitionLimitText() + setRepeatLimit(it) } } + private fun setRepeatLimit(limit: Int) { + mRepeatLimit = limit + checkRepetitionLimitText() + } + private fun checkRepetitionLimitText() { event_repetition_limit.text = if (mRepeatLimit == 0) { resources.getString(R.string.forever) @@ -371,19 +375,19 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener { } } - private fun updateStartDate() { + private fun updateStartDateText() { event_start_date.text = Formatter.getDate(applicationContext, mEventStartDateTime) } - private fun updateStartTime() { + private fun updateStartTimeText() { event_start_time.text = Formatter.getTime(this, mEventStartDateTime) } - private fun updateEndDate() { + private fun updateEndDateText() { event_end_date.text = Formatter.getDate(applicationContext, mEventEndDateTime) } - private fun updateEndTime() { + private fun updateEndTimeText() { event_end_time.text = Formatter.getTime(this, mEventEndDateTime) } @@ -445,15 +449,15 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener { private fun dateSet(year: Int, month: Int, day: Int, isStart: Boolean) { if (isStart) { mEventStartDateTime = mEventStartDateTime.withDate(year, month + 1, day) - updateStartDate() + updateStartDateText() if (mEventStartDateTime.isAfter(mEventEndDateTime)) { mEventEndDateTime = mEventStartDateTime - updateEndDate() - updateEndTime() + updateEndDateText() + updateEndTimeText() } } else { mEventEndDateTime = mEventEndDateTime.withDate(year, month + 1, day) - updateEndDate() + updateEndDateText() mWasEndDateSet = true } } @@ -461,14 +465,14 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener { private fun timeSet(hours: Int, minutes: Int, isStart: Boolean) { if (isStart) { mEventStartDateTime = mEventStartDateTime.withHourOfDay(hours).withMinuteOfHour(minutes) - updateStartTime() + updateStartTimeText() if (mEventStartDateTime.isAfter(mEventEndDateTime)) { mEventEndDateTime = mEventStartDateTime - updateEndTime() + updateEndTimeText() } } else { mEventEndDateTime = mEventEndDateTime.withHourOfDay(hours).withMinuteOfHour(minutes) - updateEndTime() + updateEndTimeText() mWasEndTimeSet = true } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/RepeatTypePickerDialog.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/RepeatTypePickerDialog.kt index 3bb8f251a..e0076525d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/RepeatTypePickerDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/dialogs/RepeatTypePickerDialog.kt @@ -23,6 +23,9 @@ class RepeatTypePickerDialog(val activity: Activity, var repeatLimit: Int, val s init { view.repeat_type_date.setOnClickListener { showRepetitionLimitDialog() } view.repeat_type_forever.setOnClickListener { callback(0); dialog.dismiss() } + if (repeatLimit < startTS) + repeatLimit = startTS + updateRepeatLimitText() dialog = AlertDialog.Builder(activity) @@ -30,6 +33,7 @@ class RepeatTypePickerDialog(val activity: Activity, var repeatLimit: Int, val s .setNegativeButton(R.string.cancel, null) .create().apply { activity.setupDialogStuff(view, this) + activity.currentFocus?.clearFocus() } } @@ -42,7 +46,11 @@ class RepeatTypePickerDialog(val activity: Activity, var repeatLimit: Int, val s } private fun confirmRepetition() { - + when (view.dialog_radio_view.checkedRadioButtonId) { + R.id.repeat_type_till_date -> callback(repeatLimit) + else -> { } + } + dialog.dismiss() } @SuppressLint("NewApi") @@ -59,13 +67,15 @@ class RepeatTypePickerDialog(val activity: Activity, var repeatLimit: Int, val s datepicker.show() } - private val repetitionLimitDateSetListener = DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth -> + private val repetitionLimitDateSetListener = DatePickerDialog.OnDateSetListener { v, year, monthOfYear, dayOfMonth -> val repeatLimitDateTime = DateTime().withDate(year, monthOfYear + 1, dayOfMonth).withTime(23, 59, 59, 0) if (repeatLimitDateTime.seconds() < startTS) { repeatLimit = 0 } else { repeatLimit = repeatLimitDateTime.seconds() } + + view.dialog_radio_view.check(R.id.repeat_type_till_date) updateRepeatLimitText() } } diff --git a/app/src/main/res/layout/dialog_repeat_type_picker.xml b/app/src/main/res/layout/dialog_repeat_type_picker.xml index a20b7e0cf..c6a883820 100644 --- a/app/src/main/res/layout/dialog_repeat_type_picker.xml +++ b/app/src/main/res/layout/dialog_repeat_type_picker.xml @@ -25,7 +25,7 @@ android:layout_marginStart="@dimen/repeat_type_margin_start" android:paddingBottom="@dimen/normal_margin" android:paddingTop="@dimen/medium_margin" - android:text="asd"/> + android:text="January 1 1970"/>