1
0
mirror of https://github.com/etesync/android synced 2025-05-22 16:58:52 +00:00
Commit Graph

13 Commits

Author SHA1 Message Date
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
fc52194d39 Journalmanager: rename CRUD method to be more consistent.
All are now on of: list, delete, create and update.
2017-04-20 20:48:12 +01:00
Tom Hacohen
e2f206e02e Services: Move to a requery model instead of raw SQL and improve models.
Having it in raw sql was slowing down development, and was error-prone.
It's much cleaner now, easier to handle, and enables us to develop
faster.

In this change I also fixed the fetching of journals to be by service
and id, not just id, because just id is not guaranteed to be unique.
2017-04-20 19:48:45 +01:00
Tom Hacohen
7cefb64db2 CollectionInfo: rename url -> uid. 2017-04-06 17:28:03 +01:00
Tom Hacohen
70b549033c Crypto: add an exception to when crypto version is too new. 2017-04-06 17:01:18 +01:00
Tom Hacohen
cf805d4e72 JournalManager: add version info to Journals and use it in crypto
The crypto class now behaves differently depending on the version of the
journal.
The current difference is in the key derivation, and that the new
version of the crypto also hmacs the version automatically whenever it
hmacs anything.

The versioning was added for better future-proofing of the code.
The derivation change was done because before we were creating the same
password for all of the journals, now we do it per-journal. This means
that we can, if needed in the future use this password as the journal
password when sharing journals without compromising the security of the
rest of the journals.
2017-03-29 18:27:39 +01:00
Tom Hacohen
d2eaf5f434 Use the new CryptoManager instead of the main encryption password.
This will give us more flexibility in the future because now the
encryption key and derivation is all managed in one place.
2017-03-29 13:01:04 +01:00
Tom Hacohen
3a83cf8303 Collection deletion: mark as deleted in cache, but don't actually delete.
This is important for protecting against potential data loss.
2017-03-24 18:55:12 +00:00
Tom Hacohen
99fe3457fc Refresh ViewCollectionActivity when edited/deleted
Until now we were just closing it when opening a view that can cause a
change. This is nicer.
2017-03-24 13:57:25 +00:00
Tom Hacohen
838cc2a79d Merge contacts/calendars collection handling
This also removes the "stats" from the edit collection screen.
2017-03-10 14:19:17 +00:00
Tom Hacohen
cee9576155 JournalModel: persist collection info inside the model instead of sqlite
This change moves the collection info away from raw sqlite in favour of
the requery ORM.
2017-03-09 22:15:08 +00:00
Tom Hacohen
7bb57c15a9 Add an edit collection page. 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