mirror of
				https://github.com/SimpleMobileTools/Simple-Calendar.git
				synced 2025-06-05 21:59:17 +02:00 
			
		
		
		
	moving event insert/update in Room
This commit is contained in:
		| @@ -800,7 +800,7 @@ class EventActivity : SimpleActivity() { | |||||||
|                     showEditRepeatingEventDialog() |                     showEditRepeatingEventDialog() | ||||||
|                 } |                 } | ||||||
|             } else { |             } else { | ||||||
|                 dbHelper.update(mEvent, true, this) { |                 EventsHelper().updateEvent(applicationContext, this, mEvent, true) { | ||||||
|                     finish() |                     finish() | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| @@ -811,7 +811,7 @@ class EventActivity : SimpleActivity() { | |||||||
|         EditRepeatingEventDialog(this) { |         EditRepeatingEventDialog(this) { | ||||||
|             if (it) { |             if (it) { | ||||||
|                 Thread { |                 Thread { | ||||||
|                     dbHelper.update(mEvent, true, this) { |                     EventsHelper().updateEvent(applicationContext, this, mEvent, true) { | ||||||
|                         finish() |                         finish() | ||||||
|                     } |                     } | ||||||
|                 }.start() |                 }.start() | ||||||
|   | |||||||
| @@ -226,7 +226,7 @@ class CalDAVHandler(val context: Context) { | |||||||
|  |  | ||||||
|                         if (existingEvent.hashCode() != event.hashCode() && title.isNotEmpty()) { |                         if (existingEvent.hashCode() != event.hashCode() && title.isNotEmpty()) { | ||||||
|                             event.id = originalEventId |                             event.id = originalEventId | ||||||
|                             context.dbHelper.update(event, false) |                             EventsHelper().updateEvent(context, null, event, false) | ||||||
|                         } |                         } | ||||||
|                     } else { |                     } else { | ||||||
|                         // if the event is an exception from another events repeat rule, find the original parent event |                         // if the event is an exception from another events repeat rule, find the original parent event | ||||||
|   | |||||||
| @@ -7,7 +7,6 @@ import android.database.sqlite.SQLiteDatabase | |||||||
| import android.database.sqlite.SQLiteOpenHelper | import android.database.sqlite.SQLiteOpenHelper | ||||||
| import android.text.TextUtils | import android.text.TextUtils | ||||||
| import androidx.collection.LongSparseArray | import androidx.collection.LongSparseArray | ||||||
| import com.simplemobiletools.calendar.pro.activities.SimpleActivity |  | ||||||
| import com.simplemobiletools.calendar.pro.extensions.* | import com.simplemobiletools.calendar.pro.extensions.* | ||||||
| import com.simplemobiletools.calendar.pro.models.Event | import com.simplemobiletools.calendar.pro.models.Event | ||||||
| import com.simplemobiletools.calendar.pro.models.EventRepetitionException | import com.simplemobiletools.calendar.pro.models.EventRepetitionException | ||||||
| @@ -60,45 +59,6 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont | |||||||
|  |  | ||||||
|     override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {} |     override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {} | ||||||
|  |  | ||||||
|     fun update(event: Event, updateAtCalDAV: Boolean, activity: SimpleActivity? = null, callback: (() -> Unit)? = null) { |  | ||||||
|         val values = fillEventValues(event) |  | ||||||
|         val selection = "$COL_ID = ?" |  | ||||||
|         val selectionArgs = arrayOf(event.id.toString()) |  | ||||||
|         mDb.update(MAIN_TABLE_NAME, values, selection, selectionArgs) |  | ||||||
|  |  | ||||||
|         if (event.repeatInterval == 0) { |  | ||||||
|             context.eventRepetitionsDB.deleteEventRepetitionsOfEvent(event.id!!) |  | ||||||
|         } else { |  | ||||||
|             context.eventRepetitionsDB.insertOrUpdate(event.getEventRepetition()) |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         context.updateWidgets() |  | ||||||
|         context.scheduleNextEventReminder(event, this, activity) |  | ||||||
|         if (updateAtCalDAV && event.source != SOURCE_SIMPLE_CALENDAR && context.config.caldavSync) { |  | ||||||
|             CalDAVHandler(context).updateCalDAVEvent(event) |  | ||||||
|         } |  | ||||||
|         callback?.invoke() |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     private fun fillEventValues(event: Event): ContentValues { |  | ||||||
|         return ContentValues().apply { |  | ||||||
|             put(COL_START_TS, event.startTS) |  | ||||||
|             put(COL_END_TS, event.endTS) |  | ||||||
|             put(COL_TITLE, event.title) |  | ||||||
|             put(COL_DESCRIPTION, event.description) |  | ||||||
|             put(COL_REMINDER_MINUTES, event.reminder1Minutes) |  | ||||||
|             put(COL_REMINDER_MINUTES_2, event.reminder2Minutes) |  | ||||||
|             put(COL_REMINDER_MINUTES_3, event.reminder3Minutes) |  | ||||||
|             put(COL_IMPORT_ID, event.importId) |  | ||||||
|             put(COL_FLAGS, event.flags) |  | ||||||
|             put(COL_EVENT_TYPE, event.eventType) |  | ||||||
|             put(COL_PARENT_EVENT_ID, event.parentId) |  | ||||||
|             put(COL_LAST_UPDATED, event.lastUpdated) |  | ||||||
|             put(COL_EVENT_SOURCE, event.source) |  | ||||||
|             put(COL_LOCATION, event.location) |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     private fun fillExceptionValues(parentEventId: Long, occurrenceTS: Int, addToCalDAV: Boolean, childImportId: String?, callback: (eventRepetitionException: EventRepetitionException) -> Unit) { |     private fun fillExceptionValues(parentEventId: Long, occurrenceTS: Int, addToCalDAV: Boolean, childImportId: String?, callback: (eventRepetitionException: EventRepetitionException) -> Unit) { | ||||||
|         val childEvent = getEventWithId(parentEventId) ?: return |         val childEvent = getEventWithId(parentEventId) ?: return | ||||||
|  |  | ||||||
|   | |||||||
| @@ -78,7 +78,7 @@ class EventsHelper { | |||||||
|             return |             return | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         val id = context.eventsDB.insert(event) |         val id = context.eventsDB.insertOrUpdate(event) | ||||||
|         event.id = id |         event.id = id | ||||||
|  |  | ||||||
|         if (event.repeatInterval != 0 && event.parentId == 0L) { |         if (event.repeatInterval != 0 && event.parentId == 0L) { | ||||||
| @@ -102,7 +102,7 @@ class EventsHelper { | |||||||
|                     continue |                     continue | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 val id = activity.eventsDB.insert(event) |                 val id = activity.eventsDB.insertOrUpdate(event) | ||||||
|                 event.id = id |                 event.id = id | ||||||
|  |  | ||||||
|                 if (event.repeatInterval != 0 && event.parentId == 0L) { |                 if (event.repeatInterval != 0 && event.parentId == 0L) { | ||||||
| @@ -118,4 +118,21 @@ class EventsHelper { | |||||||
|             activity.updateWidgets() |             activity.updateWidgets() | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     fun updateEvent(context: Context, activity: Activity? = null, event: Event, updateAtCalDAV: Boolean, callback: (() -> Unit)? = null) { | ||||||
|  |         context.eventsDB.insertOrUpdate(event) | ||||||
|  |  | ||||||
|  |         if (event.repeatInterval == 0) { | ||||||
|  |             context.eventRepetitionsDB.deleteEventRepetitionsOfEvent(event.id!!) | ||||||
|  |         } else { | ||||||
|  |             context.eventRepetitionsDB.insertOrUpdate(event.getEventRepetition()) | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         context.updateWidgets() | ||||||
|  |         //context.scheduleNextEventReminder(event, this, activity) | ||||||
|  |         if (updateAtCalDAV && event.source != SOURCE_SIMPLE_CALENDAR && context.config.caldavSync) { | ||||||
|  |             CalDAVHandler(context).updateCalDAVEvent(event) | ||||||
|  |         } | ||||||
|  |         callback?.invoke() | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -167,7 +167,7 @@ class IcsImporter(val activity: SimpleActivity) { | |||||||
|                             } |                             } | ||||||
|                         } else { |                         } else { | ||||||
|                             event.id = eventToUpdate.id |                             event.id = eventToUpdate.id | ||||||
|                             activity.dbHelper.update(event, true) |                             EventsHelper().updateEvent(activity, null, event, true) | ||||||
|                         } |                         } | ||||||
|                         eventsImported++ |                         eventsImported++ | ||||||
|                         resetValues() |                         resetValues() | ||||||
|   | |||||||
| @@ -8,5 +8,5 @@ import com.simplemobiletools.calendar.pro.models.Event | |||||||
| @Dao | @Dao | ||||||
| interface EventsDao { | interface EventsDao { | ||||||
|     @Insert(onConflict = OnConflictStrategy.REPLACE) |     @Insert(onConflict = OnConflictStrategy.REPLACE) | ||||||
|     fun insert(event: Event): Long |     fun insertOrUpdate(event: Event): Long | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user