1
0
mirror of https://github.com/etesync/android synced 2025-02-10 14:43:17 +00:00
Commit Graph

27 Commits

Author SHA1 Message Date
Tom Hacohen
674ea1eeca Workaround Android account creation issue (ignoring userData)
It seems like there's an issue with Android that sometimes the userData
passed to addAccountExplicitly is not correctly set in the Android cache
making it return null on subsequent fetches. It doesn't always happen
because some cases clear the cache, however I can consistently trigger
it by creating and deleting an account a few times in a row.
2017-04-27 11:49:06 +01:00
Tom Hacohen
c81ba0cddb Create an AndroidCompat class to wrap around Android oddities.
As part of it, move removeAccount to that class.
2017-04-27 11:49:05 +01:00
Tom Hacohen
51aecba9a0 LocalAddressBook: Add a way to get address book by UID. 2017-04-27 11:48:01 +01:00
Tom Hacohen
19b955f981 Change LocalAddressBook to look like LocalCalendar (accept journalentity) 2017-04-27 11:48:01 +01:00
Tom Hacohen
1422d95ccf Disallow user removal of address book accounts
We don't want users to remove address books on their own, we want to
control these automatically. This commit blocks it.
2017-04-27 11:48:01 +01:00
Tom Hacohen
589f81c50d Add multiple address books support
Android allows only having one address book per account, so until now
users of EteSync were only able to have one address book. This was
always an annoying limitation, but even more so now that journal sharing
is implemented.

Luckily, DAVdroid recently implemented multiple account support by
creating sub-accounts for address books.

This patch is an import of the DAVdroid changes, with adjustments to
work with EteSync, and a few changes that did not make sense for
EteSync. The original commits' split didn't provide any value over this
squash, and the amount of adjustments and addition needed to be done to
apply them, made me decide to squash this change together.

This commit is mostly based on:
dfec72ce6b8ff5e0780e9ac4418c81d080f4b60b
9817594da14ad8dffae18de386e14aeaf41312b9
2017-04-27 11:42:05 +01:00
Tom Hacohen
1ab32be0f6 Add support for read-only journals.
This change only works for calendars at the moment, because we don't have shared
address books anyway.
This is currently only implemented in the client, and only as a read-only attribute,
you can't make a journal read-only yet. This requires server support that is not yet
there, but it's better to be ready for this sooner rather than later.
2017-04-21 11:19:10 +01:00
Tom Hacohen
df3db6b357 LocalCalendar: accept JournalEntity, not CollectionInfo when creating and updating.
Some of the information is now saved there, and more will be transferred
soon. CollectionInfo includes the encrypted part, and journalentity the
non-encrypted part of the journal info, so both are needed.
2017-04-21 11:08:20 +01:00
Ricki Hirner
17d90a4569 Allow null values for IS_ORGANIZER 2017-04-20 14:15:04 +01:00
Tom Hacohen
c42602d030 Contacts/Event: Set PRODID to EteSync. 2017-04-07 09:41:27 +01:00
Tom Hacohen
4e0cd7f554 SyncManager: Use the last journal id as the ctag, instead of storing it.
We were storing the ctag separately although the data was already
present in the journal. The last entry's ID is always the CTAG.
This could cause issues if sync is aborted exactly at the right time.
I managed to trigger this issue on rare cases.
2017-04-06 23:33:11 +01:00
Tom Hacohen
7cefb64db2 CollectionInfo: rename url -> uid. 2017-04-06 17:28:03 +01:00
Ricki Hirner
433484626f Don't use uid2445 column on Android <4.2; alarm ACTION: compare only value (ignore parameters) 2017-04-05 18:34:24 +01:00
Ricki Hirner
f1ea00d816 Improve Android 7 workaround behavior in combination with CATEGORIES/VCard4 contact groups 2017-04-05 18:32:52 +01:00
Ricki Hirner
be833b03ee Retain Events.UID_2445 when preparing events for upload
* move file name/UID generation from SyncManager to LocalContact, LocalEvent, LocalTask
* rename updateFileNameAndUID() to prepareForUpload()
* use random UUID for contacts, UidGenerator with Android device ID for events/tasks
* LocalEvent.prepareForUpload(): use existing UID_2445 if available
2017-04-05 18:29:15 +01:00
Ricki Hirner
97aefad0a2 Android 7 workaround: update hash after group membership operations 2017-04-05 18:09:58 +01:00
Tal Hacohen
8d208b3438 Refactor calendar account to import package 2017-04-03 14:27:48 +03:00
Tal Hacohen
1629ffba9f Import - Add fragment to import all contacts from account 2017-04-03 14:27:23 +03:00
Tal Hacohen
33a310344b Import - Add all events to selected calendar 2017-03-30 16:09:22 +03:00
Tal Hacohen
594c401038 Import - Show calendars in expandable list view 2017-03-30 16:09:22 +03:00
Tal Hacohen
466870ff50 Import - Add basic import activity 2017-03-30 16:09:22 +03:00
Tal Hacohen
2261d6e385 Import calendar: Add calendar account class.
CalendarAccount loads all different accounts and their calendar lists.
2017-03-30 10:10:32 +03:00
Tom Hacohen
e7694924b4 Automatically fix non-dirty entries with null etag on upgrade
Commit 5d1c90dcba fixed a bug where
entries added from the server were marked as "local only" (null etag)
which was causing issues. That commit fixes it for newly added resources,
but existing resources remained broken.

This commit goes through the database and fixes all of the existing
broken resources. It skips dirty entries because figuring out if they
were just created or updated is complex, and the chances of doing an
update at exactly the same time there are dirty entries is quite low,
so the complexity involved is just not worth it.
2017-03-24 15:33:07 +00:00
Tom Hacohen
231684e0d4 Local event/contact: Add a way to add/update as dirty 2017-03-24 12:49:11 +00:00
Tom Hacohen
d98d58360e LocalCalendar: Add a function to get calendar by name. 2017-03-23 16:42:54 +00:00
Tom Hacohen
1b3a4bf318 Add a way to count calendar events/contacts. 2017-03-08 17:11:48 +00:00
Tom Hacohen
abc15f01d8 Rename the Android package to EteSync
I was trying to avoid it, and keep it as davdroid both for attribution,
and making it easy to cherry-pick fixes from DAVdroid.
However, it seems to be causing clashes with the davdroid app, although
every piece of documentation claims otherwise.[1]

At least it seems like cherry-picks can still be achieved using:

git cherry-pick -s recursive -X find-renames=30 COMMIT

1. https://developer.android.com/studio/build/application-id.html
(one such doc)
2017-02-27 13:23:24 +00:00