prepareForUpload: use UID from data class instead of querying it explicitly from content provider (#555)

This commit is contained in:
Ricki Hirner 2024-02-06 14:22:29 +01:00 committed by GitHub
parent 53a446bcf9
commit 55c499fbe9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 19 additions and 30 deletions

View file

@ -70,21 +70,20 @@ class LocalContact: AndroidContact, LocalAddress {
override fun prepareForUpload(): String {
var uid: String? = null
addressBook.provider!!.query(rawContactSyncURI(), arrayOf(COLUMN_UID), null, null, null)?.use { cursor ->
if (cursor.moveToNext())
uid = StringUtils.trimToNull(cursor.getString(0))
}
if (uid == null) {
val contact = getContact()
val uid: String = contact.uid ?: run {
// generate new UID
uid = UUID.randomUUID().toString()
val newUid = UUID.randomUUID().toString()
// update in contacts provider
val values = ContentValues(1)
values.put(COLUMN_UID, uid)
values.put(COLUMN_UID, newUid)
addressBook.provider!!.update(rawContactSyncURI(), values, null, null)
getContact().uid = uid
// update this event
contact.uid = newUid
newUid
}
return "$uid.vcf"

View file

@ -20,7 +20,6 @@ import at.bitfire.ical4android.ICalendar
import at.bitfire.ical4android.Ical4Android
import at.bitfire.ical4android.util.MiscUtils.asSyncAdapter
import net.fortuna.ical4j.model.property.ProdId
import org.apache.commons.lang3.StringUtils
import java.util.UUID
class LocalEvent: AndroidEvent, LocalResource<Event> {
@ -203,15 +202,8 @@ class LocalEvent: AndroidEvent, LocalResource<Event> {
* @return file name to use at upload
*/
override fun prepareForUpload(): String {
// fetch UID_2445 from calendar provider
var dbUid: String? = null
calendar.provider.query(eventSyncURI(), arrayOf(Events.UID_2445), null, null, null)?.use { cursor ->
if (cursor.moveToNext())
dbUid = StringUtils.trimToNull(cursor.getString(0))
}
// make sure that UID is set
val uid: String = dbUid ?: run {
val uid: String = event!!.uid ?: run {
// generate new UID
val newUid = UUID.randomUUID().toString()
@ -220,7 +212,7 @@ class LocalEvent: AndroidEvent, LocalResource<Event> {
values.put(Events.UID_2445, newUid)
calendar.provider.update(eventSyncURI(), values, null, null)
// Update this event
// update this event
event?.uid = newUid
newUid

View file

@ -59,21 +59,19 @@ class LocalTask: AndroidTask, LocalResource<Task> {
/* custom queries */
override fun prepareForUpload(): String {
var uid: String? = null
taskList.provider.client.query(taskSyncURI(), arrayOf(Tasks._UID), null, null, null)?.use { cursor ->
if (cursor.moveToNext())
uid = cursor.getString(0)
}
if (uid == null) {
val uid: String = task!!.uid ?: run {
// generate new UID
uid = UUID.randomUUID().toString()
val newUid = UUID.randomUUID().toString()
// update in tasks provider
val values = ContentValues(1)
values.put(Tasks._UID, uid)
values.put(Tasks._UID, newUid)
taskList.provider.client.update(taskSyncURI(), values, null, null)
task!!.uid = uid
// update this task
task!!.uid = newUid
newUid
}
return "$uid.ics"