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 6040e93e6..2d9415675 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt @@ -9,8 +9,6 @@ import android.text.method.LinkMovementMethod import android.view.Menu import android.view.MenuItem import android.view.WindowManager -import com.google.api.services.calendar.model.EventDateTime -import com.google.api.services.calendar.model.EventReminder import com.simplemobiletools.calendar.R import com.simplemobiletools.calendar.dialogs.* import com.simplemobiletools.calendar.extensions.* @@ -473,14 +471,7 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener { toast(R.string.event_added) } - if (isGoogleSyncActive()) { - if (isOnline()) { - Thread({ - createRemoteGoogleEvent() - }).start() - } - } - + GoogleSyncHandler().uploadToGoogle(this, mEvent) finish() } } else { @@ -504,39 +495,6 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener { } } - private fun createRemoteGoogleEvent() { - try { - com.google.api.services.calendar.model.Event().apply { - summary = mEvent.title - description = mEvent.description - - if (mEvent.getIsAllDay()) { - start = EventDateTime().setDate(com.google.api.client.util.DateTime(true, mEvent.startTS * 1000L, null)) - end = EventDateTime().setDate(com.google.api.client.util.DateTime(true, (mEvent.endTS + DAY) * 1000L, null)) - } else { - start = EventDateTime().setDateTime(com.google.api.client.util.DateTime(mEvent.startTS * 1000L)) - end = EventDateTime().setDateTime(com.google.api.client.util.DateTime(mEvent.endTS * 1000L)) - } - - status = CONFIRMED.toLowerCase() - recurrence = listOf(Parser().getShortRepeatInterval(mEvent)) - reminders = getEventReminders() - getGoogleSyncService().events().insert(PRIMARY, this).execute() - } - } catch (ignored: Exception) { - - } - } - - private fun getEventReminders(): com.google.api.services.calendar.model.Event.Reminders { - val reminders = ArrayList() - mEvent.getReminders().forEach { - val reminder = EventReminder().setMinutes(it).setMethod(POPUP) - reminders.add(reminder) - } - return com.google.api.services.calendar.model.Event.Reminders().setOverrides(reminders) - } - private fun updateStartTexts() { updateStartDateText() updateStartTimeText() diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/GoogleSyncHandler.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/GoogleSyncHandler.kt new file mode 100644 index 000000000..51e14f885 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/GoogleSyncHandler.kt @@ -0,0 +1,55 @@ +package com.simplemobiletools.calendar.helpers + +import android.content.Context +import com.google.api.services.calendar.model.EventDateTime +import com.google.api.services.calendar.model.EventReminder +import com.simplemobiletools.calendar.extensions.getGoogleSyncService +import com.simplemobiletools.calendar.extensions.isGoogleSyncActive +import com.simplemobiletools.calendar.extensions.isOnline +import com.simplemobiletools.calendar.models.Event +import java.util.* + +class GoogleSyncHandler { + fun uploadToGoogle(context: Context, event: Event) { + if (context.isGoogleSyncActive()) { + if (context.isOnline()) { + Thread({ + createRemoteGoogleEvent(context, event) + }).start() + } + } + } + + private fun createRemoteGoogleEvent(context: Context, event: Event) { + try { + com.google.api.services.calendar.model.Event().apply { + summary = event.title + description = event.description + + if (event.getIsAllDay()) { + start = EventDateTime().setDate(com.google.api.client.util.DateTime(true, event.startTS * 1000L, null)) + end = EventDateTime().setDate(com.google.api.client.util.DateTime(true, (event.endTS + DAY) * 1000L, null)) + } else { + start = EventDateTime().setDateTime(com.google.api.client.util.DateTime(event.startTS * 1000L)) + end = EventDateTime().setDateTime(com.google.api.client.util.DateTime(event.endTS * 1000L)) + } + + status = CONFIRMED.toLowerCase() + recurrence = listOf(Parser().getShortRepeatInterval(event)) + reminders = getEventReminders(event) + context.getGoogleSyncService().events().insert(PRIMARY, this).execute() + } + } catch (ignored: Exception) { + + } + } + + private fun getEventReminders(event: Event): com.google.api.services.calendar.model.Event.Reminders { + val reminders = ArrayList() + event.getReminders().forEach { + val reminder = EventReminder().setMinutes(it).setMethod(POPUP) + reminders.add(reminder) + } + return com.google.api.services.calendar.model.Event.Reminders().setOverrides(reminders) + } +}