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
8b79529a94
Bump version.
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
efe832ddb4
Journalmanager: Add api for the members endpoint.
...
This API controls the members of a journal, that is, access control.
2017-04-20 19:48:45 +01:00
Tom Hacohen
11e37dbd1e
Journalmanager: add API to interact with the UserInfo
...
This is where the keypair is stored on the server. Both the public
facing public key, and the encrypted private key
2017-04-20 19:48:45 +01:00
Tom Hacohen
e836b4c716
Crypto: Add basic asymmetric encryption methods
2017-04-20 19:48:45 +01:00
Tom Hacohen
89731519e9
Account view: cleanup and share collection list items and adapter.
...
They were redundant and needed some cleanup, now they are better, and
shared between calendar and contact.
2017-04-20 19:48:37 +01:00
Ricki Hirner
17d90a4569
Allow null values for IS_ORGANIZER
2017-04-20 14:15:04 +01:00
Tom Hacohen
e82d8affe8
Update okhttp and submodules to latest.
2017-04-20 14:14:40 +01:00
Tom Hacohen
5403212ec3
Update gradle.
2017-04-20 14:12:04 +01:00
Tom Hacohen
30af730048
requery: update to 1.3.0.
...
Although this release is claimed to fix the afterLoad issue, this is not
the case. We are just updating it so the upgrade path later one would be
easier.
2017-04-20 14:08:17 +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
da87d14ae9
Journalmanager: always use the api error message when available.
2017-04-20 11:15:10 +01:00
Tom Hacohen
6579ac8cf1
View/EditCollection: Add icons to menu operations
2017-04-19 17:54:10 +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
57f447d372
Requery: Don't destroy and recreate db when updating.
2017-04-19 17:53:41 +01:00
Tom Hacohen
d80cce9aad
CryptoManager: add an HMAC_SIZE (in bytes) constant.
2017-04-19 17:53:21 +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
c95aaaf5fd
HintManager: simplify by moving to strings and removing the need to register
2017-04-07 09:50:55 +01:00
Tom Hacohen
f89b225852
Update Changelog.
2017-04-07 09:42:11 +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
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
fcbf26a03b
Tests: Add journalentrymanager tests.
2017-04-06 19:05:48 +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
2e7ac65883
Tests: Add some basic tests.
2017-04-06 17:25:06 +01:00
Tom Hacohen
dd425ecbe2
HttpUrl: Add a way to create from string host and auth token.
2017-04-06 17:01:18 +01:00
Tom Hacohen
d41b7827ee
Tests: Move constants to a shared file.
2017-04-06 17:01:18 +01:00
Tom Hacohen
9ba0f39660
Tests: Add basic authenticator tests.
2017-04-06 17:01:18 +01:00
Tom Hacohen
94f2682195
Tests: add basic encryption tests.
2017-04-06 17:01:18 +01:00
Tom Hacohen
a77e49c033
Tests: remove useless HttpClient test.
2017-04-06 17:01:18 +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
5abf635fa0
Base64: Pull in the base64 impl from the android source code.
...
It seems like this is the only (semi) sane way to get base64 to work on both
Android and local tests.
2017-04-06 17:01:18 +01:00
Tom Hacohen
e3c48a0560
ImportFragment: move to the import package.
2017-04-06 15:06:42 +01:00
Tom Hacohen
ea91063178
Use the safe getDrawable function instead of the version specific one.
2017-04-06 15:02:36 +01:00
Tom Hacohen
52723dac67
View collection: add a showcase to explain how to import.
2017-04-06 14:29:15 +01:00
Tom Hacohen
51d9c75c56
AccountActivity: Add a showcase to the account activity.
2017-04-06 14:29:15 +01:00
Tom Hacohen
cb140a3387
Main activity: Add a showcase for adding an account.
...
Turn it off by default if upgrading to this version, because this means
the user most likely already knows how to add an account.
2017-04-06 14:29:15 +01:00
Tom Hacohen
f650d38435
Hints manager: Add a class to manage hints (show once info)
...
This is much cleaner than what was there before, and enables to easily
add more hints.
2017-04-06 12:08:32 +01:00
Tom Hacohen
2570c9671d
Bump version
2017-04-06 12:02:49 +01:00
Tom Hacohen
4dd11a1912
Update minsdk version to 4.1 (16).
...
Prior to this version, the list of available crypto was quite poor.
2017-04-06 10:55:33 +01:00
Tom Hacohen
80fad58de4
Fix build break.
2017-04-06 10:34:05 +01:00
Ricki Hirner
c83b28c3bb
Account settings: restart loader after sync interval update
...
* debug info: add signature
2017-04-06 10:08:16 +01:00
Tom Hacohen
4920bc0c81
SSLSocketFactory: Update the cipher priority list to something more secure.
...
We can assume much safer ciphers since we control the server too and
we don't have to work with old insecure servers.
2017-04-06 10:04:15 +01:00
Ricki Hirner
3a0c112fad
Enable SSL_RSA_WITH_3DES_EDE_CBC_SHA for all Android versions
...
* refactor cipher selection
2017-04-06 09:30:07 +01:00
Tom Hacohen
c2e7914290
CollectionInfo: remove the obsolete support VEVENT and support VTODO.
2017-04-05 19:24:55 +01:00
Tom Hacohen
0a4d4a9d9e
Calendar sync adapter service: minor cleanup.
2017-04-05 18:56:45 +01:00
Tom Hacohen
b6f97ac955
Update cert/ical/vcard4android to latest.
2017-04-05 18:40:47 +01:00