@@ -167,7 +167,7 @@ class TaskActivity : SimpleActivity() {
167167 storedCalendars.firstOrNull { it.id == config.lastUsedLocalCalendarId }
168168 runOnUiThread {
169169 if (! isDestroyed && ! isFinishing) {
170- gotTask(savedInstanceState, localCalendar, task)
170+ gotTask(savedInstanceState, storedCalendars, localCalendar, task)
171171 }
172172 }
173173 }
@@ -324,80 +324,104 @@ class TaskActivity : SimpleActivity() {
324324 updateActionBarTitle()
325325 }
326326
327- private fun gotTask (savedInstanceState : Bundle ? , localCalendar : CalendarEntity ? , task : Event ? ) {
328- if (localCalendar == null ) {
327+ private fun gotTask (
328+ savedInstanceState : Bundle ? ,
329+ storedCalendars : ArrayList <CalendarEntity >,
330+ localCalendar : CalendarEntity ? ,
331+ task : Event ?
332+ ) {
333+ if (localCalendar == null || localCalendar.caldavCalendarId != 0 ) {
329334 config.lastUsedLocalCalendarId = LOCAL_CALENDAR_ID
330335 }
331336
332- mCalendarId =
333- if (config.defaultCalendarId == - 1L ) config.lastUsedLocalCalendarId else config.defaultCalendarId
337+ mCalendarId = resolveTaskCalendarId(storedCalendars)
334338
335339 if (task != null ) {
336- mTask = task
337- mTaskOccurrenceTS = intent.getLongExtra(EVENT_OCCURRENCE_TS , 0L )
338- mTaskCompleted = intent.getBooleanExtra(IS_TASK_COMPLETED , false )
339- if (savedInstanceState == null ) {
340- setupEditTask()
341- }
342-
343- if (intent.getBooleanExtra(IS_DUPLICATE_INTENT , false )) {
344- mTask.id = null
345- binding.taskToolbar.title = getString(R .string.new_task)
346- }
340+ setupExistingTask(task, savedInstanceState)
347341 } else {
348- mTask = Event (null )
349- config.apply {
350- mReminder1Minutes =
351- if (usePreviousEventReminders && lastEventReminderMinutes1 >= - 1 ) lastEventReminderMinutes1 else defaultReminder1
352- mReminder2Minutes =
353- if (usePreviousEventReminders && lastEventReminderMinutes2 >= - 1 ) lastEventReminderMinutes2 else defaultReminder2
354- mReminder3Minutes =
355- if (usePreviousEventReminders && lastEventReminderMinutes3 >= - 1 ) lastEventReminderMinutes3 else defaultReminder3
356- }
342+ setupNewTask(savedInstanceState)
343+ }
357344
358- if (savedInstanceState == null ) {
359- setupNewTask()
360- }
345+ setupTaskClickListeners()
346+ refreshMenuItems()
347+ setupMarkCompleteButton()
348+
349+ if (savedInstanceState == null ) {
350+ updateCalendar()
351+ updateTexts()
361352 }
353+ }
362354
363- binding.apply {
364- taskAllDay.setOnCheckedChangeListener { _, isChecked -> toggleAllDay(isChecked) }
365- taskAllDayHolder.setOnClickListener {
366- taskAllDay.toggle()
355+ private fun setupExistingTask (task : Event , savedInstanceState : Bundle ? ) {
356+ mTask = task
357+ mTaskOccurrenceTS = intent.getLongExtra(EVENT_OCCURRENCE_TS , 0L )
358+ mTaskCompleted = intent.getBooleanExtra(IS_TASK_COMPLETED , false )
359+ if (savedInstanceState == null ) {
360+ setupEditTask()
361+ }
362+
363+ if (intent.getBooleanExtra(IS_DUPLICATE_INTENT , false )) {
364+ mTask.id = null
365+ binding.taskToolbar.title = getString(R .string.new_task)
366+ }
367+ }
368+
369+ private fun setupNewTask (savedInstanceState : Bundle ? ) {
370+ mTask = Event (null )
371+ config.apply {
372+ mReminder1Minutes =
373+ if (usePreviousEventReminders && lastEventReminderMinutes1 >= - 1 ) lastEventReminderMinutes1 else defaultReminder1
374+ mReminder2Minutes =
375+ if (usePreviousEventReminders && lastEventReminderMinutes2 >= - 1 ) lastEventReminderMinutes2 else defaultReminder2
376+ mReminder3Minutes =
377+ if (usePreviousEventReminders && lastEventReminderMinutes3 >= - 1 ) lastEventReminderMinutes3 else defaultReminder3
378+ }
379+
380+ if (savedInstanceState == null ) setupNewTask()
381+ }
382+
383+ private fun resolveTaskCalendarId (storedCalendars : ArrayList <CalendarEntity >): Long {
384+ return if (config.defaultCalendarId == - 1L ) {
385+ config.lastUsedLocalCalendarId
386+ } else {
387+ val defaultCalendar = storedCalendars.firstOrNull { it.id == config.defaultCalendarId }
388+ if (defaultCalendar?.caldavCalendarId == 0 ) {
389+ config.defaultCalendarId
390+ } else {
391+ config.lastUsedLocalCalendarId
367392 }
393+ }
394+ }
368395
369- taskDate.setOnClickListener { setupDate() }
370- taskTime.setOnClickListener { setupTime() }
371- calendarHolder.setOnClickListener { showCalendarDialog() }
372- taskRepetition.setOnClickListener { showRepeatIntervalDialog() }
373- taskRepetitionRuleHolder.setOnClickListener { showRepetitionRuleDialog() }
374- taskRepetitionLimitHolder.setOnClickListener { showRepetitionTypePicker() }
396+ private fun setupTaskClickListeners () = binding.apply {
397+ taskAllDay.setOnCheckedChangeListener { _, isChecked -> toggleAllDay(isChecked) }
398+ taskAllDayHolder.setOnClickListener {
399+ taskAllDay.toggle()
400+ }
375401
376- taskReminder1.setOnClickListener {
377- handleNotificationAvailability {
378- if (config.wasAlarmWarningShown) {
402+ taskDate.setOnClickListener { setupDate() }
403+ taskTime.setOnClickListener { setupTime() }
404+ calendarHolder.setOnClickListener { showCalendarDialog() }
405+ taskRepetition.setOnClickListener { showRepeatIntervalDialog() }
406+ taskRepetitionRuleHolder.setOnClickListener { showRepetitionRuleDialog() }
407+ taskRepetitionLimitHolder.setOnClickListener { showRepetitionTypePicker() }
408+
409+ taskReminder1.setOnClickListener {
410+ handleNotificationAvailability {
411+ if (config.wasAlarmWarningShown) {
412+ showReminder1Dialog()
413+ } else {
414+ ReminderWarningDialog (this @TaskActivity) {
415+ config.wasAlarmWarningShown = true
379416 showReminder1Dialog()
380- } else {
381- ReminderWarningDialog (this @TaskActivity) {
382- config.wasAlarmWarningShown = true
383- showReminder1Dialog()
384- }
385417 }
386418 }
387419 }
388-
389- taskReminder2.setOnClickListener { showReminder2Dialog() }
390- taskReminder3.setOnClickListener { showReminder3Dialog() }
391- taskColorHolder.setOnClickListener { showTaskColorDialog() }
392420 }
393421
394- refreshMenuItems()
395- setupMarkCompleteButton()
396-
397- if (savedInstanceState == null ) {
398- updateCalendar()
399- updateTexts()
400- }
422+ taskReminder2.setOnClickListener { showReminder2Dialog() }
423+ taskReminder3.setOnClickListener { showReminder3Dialog() }
424+ taskColorHolder.setOnClickListener { showTaskColorDialog() }
401425 }
402426
403427 private fun setupEditTask () {
0 commit comments