delete the redundant event types after disabling a calendar sync
This commit is contained in:
parent
aa9adaa236
commit
c1f8d981b5
|
@ -9,6 +9,7 @@ import android.net.Uri
|
|||
import android.os.Bundle
|
||||
import android.os.Parcelable
|
||||
import android.support.v4.app.ActivityCompat
|
||||
import android.text.TextUtils
|
||||
import com.simplemobiletools.calendar.R
|
||||
import com.simplemobiletools.calendar.dialogs.CustomEventReminderDialog
|
||||
import com.simplemobiletools.calendar.dialogs.SelectCalendarsDialog
|
||||
|
@ -128,6 +129,7 @@ class SettingsActivity : SimpleActivity() {
|
|||
config.getSyncedCalendarIdsAsList().forEach {
|
||||
CalDAVHandler(applicationContext).deleteCalDAVCalendarEvents(it.toLong())
|
||||
}
|
||||
dbHelper.deleteEventTypesWithCalendarId(config.caldavSyncedCalendarIDs)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -154,12 +156,14 @@ class SettingsActivity : SimpleActivity() {
|
|||
CalDAVHandler(applicationContext).refreshCalendars {}
|
||||
}
|
||||
|
||||
oldCalendarIds.filter { !newCalendarIds.contains(it) }.forEach {
|
||||
val removedCalendarIds = oldCalendarIds.filter { !newCalendarIds.contains(it) }
|
||||
removedCalendarIds.forEach {
|
||||
CalDAVHandler(applicationContext).deleteCalDAVCalendarEvents(it.toLong())
|
||||
dbHelper.getEventTypeWithCalDAVCalendarId(it.toInt())?.apply {
|
||||
dbHelper.deleteEventTypes(arrayListOf(this), true) {}
|
||||
}
|
||||
}
|
||||
dbHelper.deleteEventTypesWithCalendarId(TextUtils.join(",", removedCalendarIds))
|
||||
}).start()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -466,7 +466,12 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
|||
|
||||
val args = TextUtils.join(", ", deleteIds)
|
||||
val selection = "$COL_TYPE_ID IN ($args)"
|
||||
callback.invoke(mDb.delete(TYPES_TABLE_NAME, selection, null))
|
||||
callback(mDb.delete(TYPES_TABLE_NAME, selection, null))
|
||||
}
|
||||
|
||||
fun deleteEventTypesWithCalendarId(calendarIds: String) {
|
||||
val selection = "$COL_TYPE_CALDAV_CALENDAR_ID IN ($calendarIds)"
|
||||
mDb.delete(TYPES_TABLE_NAME, selection, null)
|
||||
}
|
||||
|
||||
private fun deleteEventsWithType(eventTypeId: Int) {
|
||||
|
|
Loading…
Reference in New Issue