1
0
mirror of https://github.com/etesync/android synced 2025-01-28 00:21:12 +00:00
Commit Graph

55 Commits

Author SHA1 Message Date
Tom Hacohen
69b044a444 Remove redundant code. 2020-09-25 10:04:33 +03:00
Tom Hacohen
b0208f13a5 Fix compilation. 2020-07-03 15:22:00 +03:00
Tom Hacohen
80a9f3a645 Change default collection names from 'Default' to be descriptive
Fixes https://github.com/etesync/android/issues/118
2020-07-02 13:27:46 +03:00
Tom Hacohen
47c96963e9 Journal: don't attempt fetching entries if we are already up to date.
For a while now, etesync servers return the last entry uid as part of the
general journal querying. We can use this to check if we even need to
update the journals or not, making the overall sync much faster because
we no longer need to fetch journals that haven't changed.
2020-03-27 20:23:40 +03:00
Tom Hacohen
bb2b116723 Fix crash when initialising database.
This bug was introduced a few commits ago, in:
9f6b63620e
2020-02-28 22:45:01 +02:00
Tom Hacohen
9f6b63620e Sync: make malformed entry errors non-fatal.
What we do is we mark them as failed and note the error, though we don't
currently have a way to notify the user about these errors. This will
follow in the next commit.
2020-02-28 12:58:56 +02:00
Tom Hacohen
d603245eb3 Fix DebugInfoActivity - was crashing when fetching services
The issue was introduced in df94fde5ff
because of a bad refactor by android-studio.
2020-02-10 12:56:13 +02:00
Tom Hacohen
df94fde5ff Move CollectionInfo and SyncEntry to the journalmanager module. 2020-01-29 15:26:35 +02:00
Tom Hacohen
09e2a9255a CollectionInfo: remove deprecated code. 2020-01-29 00:39:14 +02:00
Tom Hacohen
ceead4815b Move to the external journalmanager module (moved the code there) 2020-01-28 20:56:39 +02:00
Tom Hacohen
19b4e2a796 Revert "Add a reentrant lock to our entity data store."
I'm pretty sure this was causing the recent issues with tasks and events
disappearing as described in #97.

Regardless of this, it's not actually needed as SQLite on Android is
already thread-safe. The SQLite locks some users were experiencing were
probably fixed in 26ea8900a2

This reverts commit 9ed172e23c.
2019-11-04 14:01:32 +02:00
Tom Hacohen
9ed172e23c Add a reentrant lock to our entity data store.
Should fix issues with multiple threads trying to write to the store
at the same time.
2019-10-16 11:26:37 +03:00
Tom Hacohen
a74f188b3b requery: use our own data store class. 2019-10-16 11:15:11 +03:00
Tom Hacohen
990ab81c2b ServiceEntity: rename fetch to fetchOrCreate.
This is what it was doing anyway.
2019-10-16 10:35:53 +03:00
Tom Hacohen
9600cd3f1f Service default creation: correctly set the type.
Was a copy-paste error and it was setting type to Tasks.
2019-10-16 10:32:55 +03:00
Tom Hacohen
9c8daf1ebd More optimise imports. 2019-04-16 17:14:49 +01:00
Tom Hacohen
17b6e69c86 Move everything to use the new Logger 2019-03-14 19:35:30 +00:00
Tom Hacohen
b765f177c7 Migrate to AndroidX. 2019-03-06 16:24:23 +00:00
Tom Hacohen
98ca5fa318 Fix the setting controlling change notifications. 2019-02-21 19:24:39 +00:00
Tom Hacohen
723790178c Optimise imports. 2019-01-09 14:55:50 +00:00
Tom Hacohen
7f2ab44bca Implement Tasks support via OpenTasks
This adds support for tasks via OpenTasks.
https://github.com/dmfs/opentasks

Need the OpenTasks client for it to be used.

Currently you can't create new task lists. You can only have the default
one, but that's just a UI thing.

Fixes #7
2019-01-07 11:18:15 +00:00
Tom Hacohen
f0a0717541 Kotlin: more kotlin migration. 2019-01-05 15:27:45 +00:00
Tom Hacohen
093eee6409 Kotlin: more kotlin migration. 2019-01-05 15:23:39 +00:00
Tom Hacohen
4d516c5fe1 Kotlin: more kotlin migration. 2019-01-05 11:44:14 +00:00
Tal Hacohen
47b04132a6 Add settings to control the change notifications 2018-10-26 14:23:45 +01:00
Tom Hacohen
dd96ea38d0 Remove lombok usage entirely, but keep it for the submodules 2018-01-22 16:40:36 +00:00
Tom Hacohen
1046164b83 Delombokify: remove Setter/Getter usages. 2018-01-19 19:44:03 +00:00
Tom Hacohen
6ab3401bf5 Move journal owner tests to the journal and make case insensitive. 2018-01-19 19:01:47 +00:00
Tom Hacohen
e6ba52074a Journal item: view journal item in a separate activity.
This change makes clicking on journal items in the list to show in a
separate activity. At the moment it just makes for a slightly nicer
presentation. In the future we would change it to show the data in a
nice formatted way instead of a raw dump of the vObject.
2017-05-11 22:42:59 +01:00
Tom Hacohen
d86edd7688 Journal model: add a unique constraint to journal UIDs.
Journals and services should be unique together, this wasn't there
because of an issue with requery that should now be resolved.
2017-05-05 16:50:54 +01:00
Tom Hacohen
83ef63e94b Remove getCollections and add the afterLoad workaround to getJournals. 2017-04-27 11:48:01 +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
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
88ceeaa2a5 Entry and journal: fix uniqueness to be composited, and not just by uid.
Before this change, uid was unique on its own, this was wrong, because
due to shared journals, we can have the same journal in two accounts,
and we can thus have both journal and entry UIDs more than once.

This fixes the constraint to be unique for journal, uid, and service,
uid combinations.

This is currently disabled for journals because of a bug in requery.
2017-04-20 19:48:45 +01:00
Tom Hacohen
a4a32045e8 Journal: get and persist owner and key.
The server was changed so the owner of the journal, and the encrypted
key (if a shared journal) would be exposed. This change fetches it, and
saves it.
2017-04-20 19:48:45 +01:00
Tom Hacohen
190ec89c2c JournalModel: don't convert to list when getting collections.
Just use the iterator we get back already.
2017-04-20 14:01:28 +01:00
Tom Hacohen
8f1f4785a6 Revert "Update requery and remove the afterLoad workaround."
Unfortunately this requery version introduced a regression. When adding
a new account, it takes syncign a few times until it works. It looks
like requery is not loading the recently saved instances.

This reverts commit f0f70ff1c61996d0e45d8f72d24654c739c325f7.
2017-04-19 17:53:42 +01:00
Tom Hacohen
56996b98c4 Update requery and remove the afterLoad workaround.
Prior to this version of requery there was an issue that prevented
afterLoad to be called in some cases. This issue forced us to add an
explicit call to afterLoad. It's now fixed, so the workaround is no
longer required.

Reference issue: https://github.com/requery/requery/issues/487
2017-04-19 17:53:00 +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
338dd5e075 Database: Mark collections class as deprecated.
It's only used for migrations, and has been considered deprecated for a
while. Mark it as deprecated to make it extra obvious that this should
not be used.
2017-04-06 23:32:25 +01:00
Tom Hacohen
14e6f757c5 Journalmanager: Change getUuid to getUid (the rest says uid too). 2017-04-06 17:29:25 +01:00
Tom Hacohen
7cefb64db2 CollectionInfo: rename url -> uid. 2017-04-06 17:28:03 +01:00
Tom Hacohen
c2e7914290 CollectionInfo: remove the obsolete support VEVENT and support VTODO. 2017-04-05 19:24:55 +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
7357447786 Collectioninfo: fix typo in ToString field exclusion. 2017-03-29 15:10:52 +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
0cd57851ad Journal model: call the postLoad callback on fetch too.
It's really annoying that it doesn't do it automatically as it should,
in the meanwhile, add this workaround.

I reported it to upstream:
https://github.com/requery/requery/issues/487
2017-03-24 13:57:25 +00:00
Tom Hacohen
ec39aceb1a Mark CollectionInfo id as deprecated.
This is now implemented in the ORM and not the collection info itself.
2017-03-23 15:38:08 +00:00
Tom Hacohen
3530821ddd JournalViewer: add an activity to view the journal.
It's very raw and hacky at the moment, it's just a preview release so
people could see their data is saved, and can look at it in its raw
form until we implement a nicer view.
2017-03-09 22:25:45 +00:00
Tom Hacohen
42a644cabb EntryEntity: make content a SyncEntry instead of a string.
It was always of this type, this change just makes it so it's
automatically converted instead of manually.
2017-03-09 22:17:22 +00:00