mirror of
				https://github.com/SimpleMobileTools/Simple-Calendar.git
				synced 2025-06-05 21:59:17 +02:00 
			
		
		
		
	implement CalDAV event deleting
This commit is contained in:
		| @@ -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 | ||||||
|   | |||||||
| @@ -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) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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() | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user