implement CalDAV event deleting

This commit is contained in:
tibbi 2017-08-16 23:31:19 +02:00
parent 3d2ba4d0ef
commit 16538e1bde
3 changed files with 15 additions and 0 deletions

View File

@ -1,5 +1,6 @@
package com.simplemobiletools.calendar.helpers package com.simplemobiletools.calendar.helpers
import android.content.ContentUris
import android.content.ContentValues import android.content.ContentValues
import android.content.Context import android.content.Context
import android.database.Cursor import android.database.Cursor
@ -156,6 +157,12 @@ class CalDAVEventsHandler(val context: Context) {
} }
} }
fun deleteCalDAVEvent(event: Event) {
val uri = CalendarContract.Events.CONTENT_URI
val contentUri = ContentUris.withAppendedId(uri, event.getCalDAVId())
context.contentResolver.delete(contentUri, null, null)
}
fun getCalDAVEventReminders(eventId: Long): List<Int> { fun getCalDAVEventReminders(eventId: Long): List<Int> {
val reminders = ArrayList<Int>() val reminders = ArrayList<Int>()
val uri = CalendarContract.Reminders.CONTENT_URI val uri = CalendarContract.Reminders.CONTENT_URI

View File

@ -334,6 +334,8 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
fun deleteEvents(ids: Array<String>) { fun deleteEvents(ids: Array<String>) {
val args = TextUtils.join(", ", ids) val args = TextUtils.join(", ", ids)
val selection = "$MAIN_TABLE_NAME.$COL_ID IN ($args)" val selection = "$MAIN_TABLE_NAME.$COL_ID IN ($args)"
val cursor = getEventsCursor(selection)
val events = fillEvents(cursor).filter { it.importId.isNotEmpty() }
mDb.delete(MAIN_TABLE_NAME, selection, null) mDb.delete(MAIN_TABLE_NAME, selection, null)
@ -350,6 +352,10 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
context.cancelNotification(it.toInt()) context.cancelNotification(it.toInt())
} }
events.forEach {
CalDAVEventsHandler(context).deleteCalDAVEvent(it)
}
deleteChildEvents(args) deleteChildEvents(args)
} }

View File

@ -104,4 +104,6 @@ data class Event(var id: Int = 0, var startTS: Int = 0, var endTS: Int = 0, var
startTS startTS
} }
} }
fun getCalDAVId() = (importId.split("-").lastOrNull() ?: "0").toString().toLong()
} }