move google sync event type handling in a separate function
This commit is contained in:
parent
370243f280
commit
021ad93b6a
|
@ -33,6 +33,7 @@ class FetchGoogleEventsTask(val activity: Activity, credential: GoogleAccountCre
|
||||||
private var service: com.google.api.services.calendar.Calendar
|
private var service: com.google.api.services.calendar.Calendar
|
||||||
private var lastError: Exception? = null
|
private var lastError: Exception? = null
|
||||||
private var dbHelper = activity.dbHelper
|
private var dbHelper = activity.dbHelper
|
||||||
|
private var eventTypes = ArrayList<EventType>()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val transport = AndroidHttp.newCompatibleTransport()
|
val transport = AndroidHttp.newCompatibleTransport()
|
||||||
|
@ -62,7 +63,8 @@ class FetchGoogleEventsTask(val activity: Activity, credential: GoogleAccountCre
|
||||||
for ((key, value) in events) {
|
for ((key, value) in events) {
|
||||||
if (key == ITEMS) {
|
if (key == ITEMS) {
|
||||||
dbHelper.getEventTypes {
|
dbHelper.getEventTypes {
|
||||||
parseEvents(value.toString(), it)
|
eventTypes = it
|
||||||
|
parseEvents(value.toString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -77,7 +79,7 @@ class FetchGoogleEventsTask(val activity: Activity, credential: GoogleAccountCre
|
||||||
return parsedEvents
|
return parsedEvents
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parseEvents(json: String, eventTypes: ArrayList<EventType>): List<Event> {
|
private fun parseEvents(json: String): List<Event> {
|
||||||
val importIDs = activity.dbHelper.getImportIds()
|
val importIDs = activity.dbHelper.getImportIds()
|
||||||
val events = ArrayList<Event>()
|
val events = ArrayList<Event>()
|
||||||
val token = object : TypeToken<List<GoogleEvent>>() {}.type
|
val token = object : TypeToken<List<GoogleEvent>>() {}.type
|
||||||
|
@ -101,18 +103,6 @@ class FetchGoogleEventsTask(val activity: Activity, credential: GoogleAccountCre
|
||||||
var startTS: Int
|
var startTS: Int
|
||||||
var endTS: Int
|
var endTS: Int
|
||||||
var flags = 0
|
var flags = 0
|
||||||
var eventTypeId = -1
|
|
||||||
val eventType = "google_${googleEvent.colorId}"
|
|
||||||
eventTypes.forEach {
|
|
||||||
if (it.title.toLowerCase() == eventType)
|
|
||||||
eventTypeId = it.id
|
|
||||||
}
|
|
||||||
|
|
||||||
if (eventTypeId == -1) {
|
|
||||||
val newEventType = EventType(0, eventType, activity.config.primaryColor)
|
|
||||||
eventTypeId = dbHelper.insertEventType(newEventType)
|
|
||||||
eventTypes.add(newEventType)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (start.date != null) {
|
if (start.date != null) {
|
||||||
startTS = DateTime(start.date).withHourOfDay(1).seconds()
|
startTS = DateTime(start.date).withHourOfDay(1).seconds()
|
||||||
|
@ -129,6 +119,7 @@ class FetchGoogleEventsTask(val activity: Activity, credential: GoogleAccountCre
|
||||||
repeatRule = Parser().parseRepeatInterval(recurrence.toString().trim('\"').substring(RRULE.length), startTS)
|
repeatRule = Parser().parseRepeatInterval(recurrence.toString().trim('\"').substring(RRULE.length), startTS)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val eventTypeId = getEventTypeId(googleEvent)
|
||||||
val event = Event(0, startTS, endTS, googleEvent.summary, googleEvent.description, reminders.getOrElse(0, { -1 }), reminders.getOrElse(1, { -1 }),
|
val event = Event(0, startTS, endTS, googleEvent.summary, googleEvent.description, reminders.getOrElse(0, { -1 }), reminders.getOrElse(1, { -1 }),
|
||||||
reminders.getOrElse(2, { -1 }), repeatRule.repeatInterval, importId, flags, repeatRule.repeatLimit, repeatRule.repeatRule,
|
reminders.getOrElse(2, { -1 }), repeatRule.repeatInterval, importId, flags, repeatRule.repeatLimit, repeatRule.repeatRule,
|
||||||
eventTypeId, lastUpdated = lastUpdate)
|
eventTypeId, lastUpdated = lastUpdate)
|
||||||
|
@ -143,6 +134,23 @@ class FetchGoogleEventsTask(val activity: Activity, credential: GoogleAccountCre
|
||||||
return events
|
return events
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getEventTypeId(googleEvent: GoogleEvent): Int {
|
||||||
|
var eventTypeId = -1
|
||||||
|
val eventType = "google_sync_${googleEvent.colorId}"
|
||||||
|
eventTypes.forEach {
|
||||||
|
if (it.title.toLowerCase() == eventType)
|
||||||
|
eventTypeId = it.id
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eventTypeId == -1) {
|
||||||
|
val newEventType = EventType(0, eventType, activity.config.primaryColor)
|
||||||
|
eventTypeId = dbHelper.insertEventType(newEventType)
|
||||||
|
eventTypes.add(newEventType)
|
||||||
|
}
|
||||||
|
|
||||||
|
return eventTypeId
|
||||||
|
}
|
||||||
|
|
||||||
private fun getReminder(json: JsonObject): List<Int> {
|
private fun getReminder(json: JsonObject): List<Int> {
|
||||||
val array = json.getAsJsonArray(OVERRIDES)
|
val array = json.getAsJsonArray(OVERRIDES)
|
||||||
val token = object : TypeToken<List<GoogleEventReminder>>() {}.type
|
val token = object : TypeToken<List<GoogleEventReminder>>() {}.type
|
||||||
|
|
Loading…
Reference in New Issue