mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-04-13 01:31:58 +02:00
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.Bundle
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import android.support.v4.app.ActivityCompat
|
import android.support.v4.app.ActivityCompat
|
||||||
|
import android.text.TextUtils
|
||||||
import com.simplemobiletools.calendar.R
|
import com.simplemobiletools.calendar.R
|
||||||
import com.simplemobiletools.calendar.dialogs.CustomEventReminderDialog
|
import com.simplemobiletools.calendar.dialogs.CustomEventReminderDialog
|
||||||
import com.simplemobiletools.calendar.dialogs.SelectCalendarsDialog
|
import com.simplemobiletools.calendar.dialogs.SelectCalendarsDialog
|
||||||
@ -128,6 +129,7 @@ class SettingsActivity : SimpleActivity() {
|
|||||||
config.getSyncedCalendarIdsAsList().forEach {
|
config.getSyncedCalendarIdsAsList().forEach {
|
||||||
CalDAVHandler(applicationContext).deleteCalDAVCalendarEvents(it.toLong())
|
CalDAVHandler(applicationContext).deleteCalDAVCalendarEvents(it.toLong())
|
||||||
}
|
}
|
||||||
|
dbHelper.deleteEventTypesWithCalendarId(config.caldavSyncedCalendarIDs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,12 +156,14 @@ class SettingsActivity : SimpleActivity() {
|
|||||||
CalDAVHandler(applicationContext).refreshCalendars {}
|
CalDAVHandler(applicationContext).refreshCalendars {}
|
||||||
}
|
}
|
||||||
|
|
||||||
oldCalendarIds.filter { !newCalendarIds.contains(it) }.forEach {
|
val removedCalendarIds = oldCalendarIds.filter { !newCalendarIds.contains(it) }
|
||||||
|
removedCalendarIds.forEach {
|
||||||
CalDAVHandler(applicationContext).deleteCalDAVCalendarEvents(it.toLong())
|
CalDAVHandler(applicationContext).deleteCalDAVCalendarEvents(it.toLong())
|
||||||
dbHelper.getEventTypeWithCalDAVCalendarId(it.toInt())?.apply {
|
dbHelper.getEventTypeWithCalDAVCalendarId(it.toInt())?.apply {
|
||||||
dbHelper.deleteEventTypes(arrayListOf(this), true) {}
|
dbHelper.deleteEventTypes(arrayListOf(this), true) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
dbHelper.deleteEventTypesWithCalendarId(TextUtils.join(",", removedCalendarIds))
|
||||||
}).start()
|
}).start()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -466,7 +466,12 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
|||||||
|
|
||||||
val args = TextUtils.join(", ", deleteIds)
|
val args = TextUtils.join(", ", deleteIds)
|
||||||
val selection = "$COL_TYPE_ID IN ($args)"
|
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) {
|
private fun deleteEventsWithType(eventTypeId: Int) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user