move the functions handling uploading to Google in a separate file

This commit is contained in:
tibbi
2017-07-24 23:32:15 +02:00
parent 4b530dd9c0
commit add8aae840
2 changed files with 56 additions and 43 deletions

View File

@@ -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<EventReminder>()
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()

View File

@@ -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<EventReminder>()
event.getReminders().forEach {
val reminder = EventReminder().setMinutes(it).setMethod(POPUP)
reminders.add(reminder)
}
return com.google.api.services.calendar.model.Event.Reminders().setOverrides(reminders)
}
}