fix #1672, #1658, avoid duplicating some event type events

This commit is contained in:
tibbi 2022-03-16 16:26:14 +01:00
parent 6f3b1f28e8
commit a51981ee39
3 changed files with 11 additions and 6 deletions

View File

@ -727,7 +727,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
importIDs[it.importId] = it.startTS
}
val eventTypeId = if (birthdays) eventsHelper.getBirthdaysEventTypeId() else eventsHelper.getAnniversariesEventTypeId()
val eventTypeId = if (birthdays) eventsHelper.getLocalBirthdaysEventTypeId() else eventsHelper.getAnniversariesEventTypeId()
val source = if (birthdays) SOURCE_CONTACT_BIRTHDAY else SOURCE_CONTACT_ANNIVERSARY
queryCursor(uri, projection, selection, selectionArgs, showErrors = true) { cursor ->
@ -798,7 +798,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
}
try {
val eventTypeId = if (birthdays) eventsHelper.getBirthdaysEventTypeId() else eventsHelper.getAnniversariesEventTypeId()
val eventTypeId = if (birthdays) eventsHelper.getLocalBirthdaysEventTypeId() else eventsHelper.getAnniversariesEventTypeId()
val source = if (birthdays) SOURCE_CONTACT_BIRTHDAY else SOURCE_CONTACT_ANNIVERSARY
val existingEvents = if (birthdays) eventsDB.getBirthdays() else eventsDB.getAnniversaries()

View File

@ -75,6 +75,8 @@ class EventsHelper(val context: Context) {
fun getEventTypeIdWithTitle(title: String) = eventTypesDB.getEventTypeIdWithTitle(title) ?: -1L
private fun getLocalEventTypeIdWithTitle(title: String) = eventTypesDB.getLocalEventTypeIdWithTitle(title) ?: -1L
fun getEventTypeWithCalDAVCalendarId(calendarId: Int) = eventTypesDB.getEventTypeWithCalDAVCalendarId(calendarId)
fun deleteEventTypes(eventTypes: ArrayList<EventType>, deleteEvents: Boolean) {
@ -269,7 +271,7 @@ class EventsHelper(val context: Context) {
}
fun getEventsSync(fromTS: Long, toTS: Long, eventId: Long = -1L, applyTypeFilter: Boolean, callback: (events: ArrayList<Event>) -> Unit) {
val birthDayEventId = getBirthdaysEventTypeId(createIfNotExists = false)
val birthDayEventId = getLocalBirthdaysEventTypeId(createIfNotExists = false)
val anniversaryEventId = getAnniversariesEventTypeId(createIfNotExists = false)
var events = ArrayList<Event>()
@ -334,9 +336,9 @@ class EventsHelper(val context: Context) {
callback(events)
}
fun getBirthdaysEventTypeId(createIfNotExists: Boolean = true): Long {
fun getLocalBirthdaysEventTypeId(createIfNotExists: Boolean = true): Long {
val birthdays = context.getString(R.string.birthdays)
var eventTypeId = getEventTypeIdWithTitle(birthdays)
var eventTypeId = getLocalEventTypeIdWithTitle(birthdays)
if (eventTypeId == -1L && createIfNotExists) {
val eventType = EventType(null, birthdays, context.resources.getColor(R.color.default_birthdays_color))
eventTypeId = insertOrUpdateEventTypeSync(eventType)
@ -346,7 +348,7 @@ class EventsHelper(val context: Context) {
fun getAnniversariesEventTypeId(createIfNotExists: Boolean = true): Long {
val anniversaries = context.getString(R.string.anniversaries)
var eventTypeId = getEventTypeIdWithTitle(anniversaries)
var eventTypeId = getLocalEventTypeIdWithTitle(anniversaries)
if (eventTypeId == -1L && createIfNotExists) {
val eventType = EventType(null, anniversaries, context.resources.getColor(R.color.default_anniversaries_color))
eventTypeId = insertOrUpdateEventTypeSync(eventType)

View File

@ -14,6 +14,9 @@ interface EventTypesDao {
@Query("SELECT id FROM event_types WHERE title = :title COLLATE NOCASE")
fun getEventTypeIdWithTitle(title: String): Long?
@Query("SELECT id FROM event_types WHERE title = :title AND caldav_calendar_id = 0 COLLATE NOCASE")
fun getLocalEventTypeIdWithTitle(title: String): Long?
@Query("SELECT * FROM event_types WHERE caldav_calendar_id = :calendarId")
fun getEventTypeWithCalDAVCalendarId(calendarId: Int): EventType?