1
0
mirror of https://github.com/etesync/android synced 2024-12-03 05:18:27 +00:00
Commit Graph

1054 Commits

Author SHA1 Message Date
Tom Hacohen
3c1cad8960 Fingerprint: Improve how the fingerprint dialog looks like. 2017-04-21 10:27:52 +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
0bade21aae ViewCollection: list the journal's owner if it's not owned by us. 2017-04-20 20:10:43 +01:00
Tom Hacohen
348e24c3e3 Account: indicate on the list if a collection is shared. 2017-04-20 20:04:09 +01:00
Tom Hacohen
eeda46338d Disallow sharing of journals with version < 2.
The reason for that is that before version 2, all the journals of a
particular user shared the same encryption key, which means, sharing a
journal of version one, would essentially give away the encryption key
of all of its journals, even the private ones.

This is thus blocked for security reasons.
2017-04-20 19:48:46 +01:00
Tom Hacohen
4c47384198 Journals: support adding back deleted journals.
This currently just adds the journal back, but doesn't re-apply the
journal, so the calendar for example would be empty, but the journal
itself would be listed and visible.
2017-04-20 19:48:46 +01:00
Tom Hacohen
d3057f86f0 Disallow sharing of address books.
At the moment we only support one address book per user, and sharing
address books will interfere with this model. Hopefully, we'll add
multiple address book support in the next release, and then we'll
re-enable this.
2017-04-20 19:48:46 +01:00
Tom Hacohen
93fb1e3c54 Remove redundant dbhelper calls.
These calls were made obsolete after the switch to requery. We no longer
need to get the database, because we no longer use it.
2017-04-20 19:48:46 +01:00
Tom Hacohen
e15a26af9c User info: fix version detection, and don't verify on fetch.
We were not detecting the version correctly, but always just assumed
latest version, which is obviously wrong.
In addition, before this commit we used to automatically verify on
fetch, which wasn't flexible enough for some use cases. This fixes that
too.
2017-04-20 19:48:46 +01:00
Tom Hacohen
9fb9db9327 ViewCollection: only allow owner to edit collections. 2017-04-20 19:48:46 +01:00
Tom Hacohen
656dad3615 Add UI to add/remove/list journal members.
Only owners of a journal are allowed to control and view its members.
2017-04-20 19:48:46 +01:00
Tom Hacohen
4246ae7ede Add a way to view own fingerprint.
This adds a menu option from the account page to view your own keypair
(to compare when sharing).
2017-04-20 19:48:46 +01:00
Tom Hacohen
4c6176a6f4 Fetch userinfo on account creation.
We need the keypair to access shared journals, so we need to make sure
to fetch it at the moment we create the local account, which is what
this commit does.
2017-04-20 19:48:46 +01:00
Tom Hacohen
a57936982d Add a fragment to setup user info.
This is used to create a keypair and put it on the server if one doesn't
exist, and fetch it and save it locally if one does.

It's currently called from the account activity.
2017-04-20 19:48:46 +01:00
Tom Hacohen
beccb33904 Journal: use journal keys if available.
If a journal has a key set to it (usually used for shared journals), use
it instead of the symmetric key. The key of the journal is asymmetrically
encrypted using our keypair.
2017-04-20 19:48:45 +01:00
Tom Hacohen
43803b6d3e AccountSettings: Add a keypair setting.
This is used for storing the asymmetric key pair.
2017-04-20 19:48:45 +01:00
Tom Hacohen
ae08510729 Requery: Fix database to have the correct constraints (on upgrade).
Requery doesn't automatically update column constraints, and there was
an issue with it applying indexes before adding the new columns which
was also causing troubles. This commit, while ugly, just manually
updates the database using raw SQL to what we expect it to be.
2017-04-20 19:48:45 +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
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
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
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
Ricki Hirner
1295e4557e AccountsActivity: show message when global sync is disabled 2017-04-05 18:37:24 +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
Tom Hacohen
d6558da503 Bump version. 2017-04-03 22:56:00 +01:00
Tom Hacohen
9486719cbb Import: Resolved account name and icon when possible.
We assume the name of the account == package name, which is the best guess
we have. Android doesn't have a way to get account name/icon at the moment.
2017-04-03 22:52:39 +01:00
Tal Hacohen
e4fc23eb70 Journal - Load entries on background 2017-04-03 22:11:52 +01:00
Tal Hacohen
2706021a5e Import - Add account type to calendar account list 2017-04-03 21:41:47 +03:00
Tal Hacohen
bee502a440 Sort contacts accounts by name and type 2017-04-03 21:40:54 +03:00
Tom Hacohen
1227a66409 Import: Make icon acessible and get it for address book. 2017-04-03 14:21:21 +01:00
Tom Hacohen
15580374fa Import: Make the select calendar/account lists nicer
This also adds an icon (that will soon be replaced with the icon of the
relevant account), and shares the design between the calendar and the
contacts.
2017-04-03 13:47:13 +01:00
Tom Hacohen
7915a51f1f Import: Make account import activity prettier. 2017-04-03 13:10:35 +01:00
Tom Hacohen
0d848f0573 Merge: Add import from local accounts
This set of commits add import from local accounts.
It's a bit rough around the edges, but it's good enough to go in, so work can continue
collaboratively.
2017-04-03 12:56:52 +01:00
Tal Hacohen
9684123f68 Use App.log instead of Log in import fragmnets 2017-04-03 14:33:04 +03:00
Tal Hacohen
6820d9d413 Change desgin of both import lists 2017-04-03 14:27:48 +03:00
Tal Hacohen
8d208b3438 Refactor calendar account to import package 2017-04-03 14:27:48 +03:00
Tal Hacohen
1e9e055924 Import - Use ResultFragment in all import framgnets 2017-04-03 14:27:47 +03:00
Tal Hacohen
56aba7c669 Extract ResultFragment from ImportFragment 2017-04-03 14:27:25 +03:00
Tal Hacohen
a7c5ccadc9 Import - Change toolbar title according to relevant fragment 2017-04-03 14:27:24 +03:00
Tal Hacohen
1629ffba9f Import - Add fragment to import all contacts from account 2017-04-03 14:27:23 +03:00
Tal Hacohen
7cac473c74 Import - Split ImportActivity to fragments and activity 2017-04-02 14:04:14 +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
1482fb01cb JournalManager: make jorunal version read-only. 2017-03-29 23:46:11 +01:00
Tom Hacohen
cd5e5487a8 JournalManager: make IntegrityException inherit from GeneralSecurityException. 2017-03-29 18:27:50 +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
c3e30138dd Syncmanager: get a collection info for all sync managers. 2017-03-29 14:47:43 +01:00
Tom Hacohen
01add874dc Remove unneeded fixme. 2017-03-29 13:27:56 +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
4004eca762 Syncmanager: use the journalId as the unique collection id. 2017-03-29 12:45:14 +01:00
Tom Hacohen
1e6fc5a9cb Crypto: rename Cipher to CryptoManager. 2017-03-29 12:35:44 +01:00
Tom Hacohen
abd13d4d3d Crypto: refactor the Cipher class.
Include the hmac in the cipher class.
Derive keys on class creation instead of on encrypt/decrypt.
2017-03-29 12:27:22 +01:00
Tom Hacohen
0fbee1ea02 JournalManager: rename Helpers to Crypto.
These are crypto helpers, this should have been named this way from the start.
2017-03-29 12:12:35 +01:00
Tom Hacohen
225d01c143 Crypto: Only create random generator as needed. 2017-03-29 12:02:13 +01:00
Tom Hacohen
de834915be Bump version. 2017-03-28 16:49:26 +01:00
Tom Hacohen
1d87de2e7a App update: set the app version on first launch if not already set.
The app update broadcast receiver is only called on the first update,
not install, which was causing EteSync to think it was updating from
version 1 on the first update, doesn't matter which version one was
updating from.
This fixes it by saving the version on the first run.
2017-03-28 16:44:53 +01:00
Tom Hacohen
784070c27c SyncManager: add remote entries to cache only after they've been processed
Before this change we were adding them to cache before they were
processed, potentially persisting malformed entries, or entries we
haven't yet processed causing issues if sync was aborted before an entry
was fully processed.
2017-03-27 16:08:45 +01:00
Tom Hacohen
987076d95e Webview: fix behaviour of toolbar back button and simplify. 2017-03-24 19:15:57 +00: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
ba9f217d66 Webview: also open tos and about from within the app. 2017-03-24 18:42:28 +00:00
Tom Hacohen
9ba84109b2 Login: add a "forgot password" link. 2017-03-24 16:11:24 +00:00
Tom Hacohen
d21a498925 Webview: improve whitelist, and include all of the "accounts/" subpath. 2017-03-24 16:09:19 +00: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
7562a7a76b ViewCollection: use the new LocalCalendar.findByName to get calendar. 2017-03-24 14:52:27 +00:00
Tom Hacohen
19ceab96b0 Bump version. 2017-03-24 14:48:00 +00:00
Tom Hacohen
5d1c90dcba Resource: set eTag when creating a new one from server.
Before this commit we would create new entries from the server without
an etag, essentially marking them as "local only". While the actual
value of the eTag is not currently used, null or not matters.
Because the resources were "local only", we would get weird behaviours
like having an "ADD" action when changing a resource.
2017-03-24 14:40:29 +00:00
Tom Hacohen
84244330b7 Always log deletes, even when not previously added to server.
Before this change we would only add "deletes" to the server when the
resource has been previously uploaded. This means that if a resource has
been created and then deleted before a sync, it would not be saved,
which is essentially data-loss.
This commit fixes it, so we always upload a delete entry.
2017-03-24 14:08:57 +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
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
415d5d5447 Clear journal cache on account deletion (fix account re-add issue)
Clearing the cache is a good idea regardless, though because of the
unique constraints in the cache on the journal name, this was causing
issues when deleting an account and then adding it back.
2017-03-24 13:57:25 +00:00
Tom Hacohen
f984b76ec6 Add import from vCard (vcf)/iCal (ics)
This commit adds a basic UI for importing contacts and calendars from a
file.
2017-03-24 13:57:25 +00:00
Tom Hacohen
24b170a170 View collection activity: only create fragment on first load. 2017-03-24 12:49:19 +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
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
e9428c6ec7 Sync manager: Fix log messages to be the state strings and not int ids. 2017-03-12 17:08:03 +00:00
Tom Hacohen
7afb086c76 Debug activity: Show the number of entries per journal. 2017-03-10 17:15:09 +00:00
Tom Hacohen
ced3d7283d Remove change journal from main page. 2017-03-10 17:15:09 +00:00
Tom Hacohen
b0b5891e40 Add a collection view activity and move the journal viewer there 2017-03-10 17:15:09 +00:00
Tom Hacohen
3d217f47af Webview: Only load pages from a whilelist, not all.
This was causing issues with the dashboard page because of stripe.
The best mitigation at the moment, is to only load pages from a whitelist.
2017-03-10 14:38:08 +00:00
Tom Hacohen
e4043642db Suppress XSS warning.
We are only loading external websites, no use controlled data.
2017-03-10 14:36:53 +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
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
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
bd5beaaf91 Move SyncEntry to the models package.
This unties it from the sync manager, and will let us better reuse it.
2017-03-09 22:15:08 +00:00
Tom Hacohen
a794ee35cf Remove a mention of davdroid from log. 2017-03-09 22:15:08 +00:00
Tom Hacohen
36a8edfb5d Bump version. 2017-03-09 22:15:08 +00:00
Tom Hacohen
431c54ab91 Show the number of journal entries on the collection detail screens. 2017-03-09 22:15:02 +00:00
Tom Hacohen
29fd177a95 Cache journals locally.
This is useful both as an anti-tampering mechanism, and will be used
later when interacting with the journal is implemented.
2017-03-09 22:14:22 +00:00
Tom Hacohen
afcb00e4f1 Account screen: Use translatable strings for the titles 2017-03-09 16:57:00 +00:00
Tom Hacohen
b9b930939f Allow renaming collections.
I mistakingly disallowed it when I added the edit collection ability.
There is no problem with changing the display name.
2017-03-09 16:57:00 +00:00
Tom Hacohen
4c7ae90b36 Encryption setup page: add a note about why we are asking for an additional password. 2017-03-08 18:46:12 +00:00
Tom Hacohen
83fde4b81d Use DEBUG_REMOTE_URL to also override the webUri.
Before this commit it was only used to override the api endpoint,
not it's also used to override the weburl. This is needed since we now
load the etesync website inside the app and not in an external web
browser.
2017-03-08 17:27:48 +00:00
Tom Hacohen
baff2e886c Traslation: make log authority untranslatable. 2017-03-08 17:15:50 +00:00
Tom Hacohen
f84bd386f1 Create collection: only update url after pushed to server.
Without this change, if the putting on server of a new collection fails,
the url would already be updated, and since having a url indicates it
exists on the server, trying to save it later would result in a 404.
2017-03-08 17:11:49 +00:00
Tom Hacohen
32df64000f Add stats to the collection edit page. 2017-03-08 17:11:48 +00:00
Tom Hacohen
7bb57c15a9 Add an edit collection page. 2017-03-08 17:11:48 +00:00
Tom Hacohen
ce3483cee2 Create collection: update collection if already exists (info.url is set). 2017-03-08 17:11:48 +00:00
Tom Hacohen
e7138842c8 Journal manager: Add a way to update a journal. 2017-03-08 17:11:48 +00:00
Tom Hacohen
1b3a4bf318 Add a way to count calendar events/contacts. 2017-03-08 17:11:48 +00:00
Tom Hacohen
4a196102a1 Collection info: serialize url, but not to json. 2017-03-08 17:11:48 +00:00
Tom Hacohen
c6fbecc0ff Strings-de: Fix malformed closer. 2017-03-08 11:17:28 +00:00
Tom Hacohen
9e8cfa77fa Remove another unused string. 2017-03-08 10:16:17 +00:00
Larson Maerz
f785ed77cd Update German translation. 2017-03-08 10:16:17 +00:00
Tal Hacohen
8c9ec3bcc7 Replace all etesync links to open in the webview activity. 2017-03-06 17:54:18 +01:00
Tal Hacohen
c041ddb690 Add webview activity to handle etesync link. 2017-03-06 17:54:17 +01:00
Tom Hacohen
57810cd5f5 Bump version. 2017-03-02 13:56:31 +00:00
Tom Hacohen
4fcc29c1d3 Rename Usage Guide to User Guide. 2017-03-02 13:47:32 +00:00
Tom Hacohen
9ef2ea2d54 Add a "Coming soon" section for the Change Journal
Adding this because users were asking about the history feature. While
the history is maintained, there's currently no GUI to explore it, so
I've added this stub to make it more obvious that it's not there yet.
2017-03-02 12:32:03 +00:00
Tom Hacohen
6fdf2c3d1a Remove unused resources (mainly strings). 2017-03-02 11:31:35 +00:00
Tom Hacohen
14fb5ffae8 Change username login field to 'email'. 2017-03-02 11:22:03 +00:00
Tom Hacohen
cf9ee98ead Sync interval setting: use the same string for current as selector.
Before this commit the texts were different, and odd.
For example, the text in the selector would be:
Every 4 hours
and the text in the preview would be:
Every 240 minutes
2017-03-01 18:18:10 +00:00
Tom Hacohen
711df7ed55 Bump to version 0.9.1. 2017-03-01 00:24:19 +00:00
Tom Hacohen
ae99a0f53a Change exceptions inheriting from HttpException to accept "Response"
This follows the previous change and puts more information in the
exceptions (like parts of the http request and response) for better
debugging. This also moves the handling of "retry after" to the
exception itself instead of outside.
Also improved the text of one of the exception invocations.
2017-03-01 00:24:19 +00:00
Tom Hacohen
571c585292 HttpException: add a way to override response error message.
Before this change exceptions would print the message of the error code.
For example, for 500 they would print "Internal Server Error".
With this change we can now override this message with something more
sensible we got from the serer, for example "User is inactive."
2017-03-01 00:24:18 +00:00
Tom Hacohen
fc939a3cbe Shorten notification error title so account name is visible.
The text was too long and it was impossible to see the account name.
2017-03-01 00:24:08 +00:00
Tom Hacohen
ba789da797 Add a UserInactive exception for when the user is no longer active
This is a possible error message we get when we get error code 403
(permission denied) from the server. We then handle it explicitly by
sending the user to the dashboard.
2017-02-28 23:58:47 +00:00
Tom Hacohen
8e7d363128 Refactor notifications to launch a notification handler
With this change we no can launch external urls. For all I know this
doesn't work without this trick (an intent in the middle).

I also applied a transparent theme to the activity to avoid seeing the
launched activity briefly before opening external urls.

This is based on my experience working on "Share To Clipboard".
2017-02-28 23:26:19 +00:00
Tom Hacohen
d918622ba2 Fix issue with only one of the notifications being clickable. 2017-02-28 23:23:03 +00:00
Tom Hacohen
5d712c72d0 Add links to the usage guide. 2017-02-28 17:43:03 +00:00
Tom Hacohen
8c01e64ff4 Change the "delete collection" string to "Delete" 2017-02-28 17:42:51 +00:00
Tom Hacohen
3195c91e11 Bump version to 0.9.0. 2017-02-27 13:27:43 +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
Tom Hacohen
94b29e86ac Implement sha256 using bouncy-castle. 2017-02-22 18:52:20 +00:00
Tom Hacohen
7a80b37818 Optimise proguard rules and fix warnings
We don't need to specify classes we don't use dynamically, so remove all
of the explicitly mentioned ones.

Fix a few warnings.
2017-02-22 18:52:20 +00:00
Tom Hacohen
0ebfa9cfbd Bump version to 0.8.1 and update changelog. 2017-02-22 18:52:20 +00:00
Tom Hacohen
116094c7b9 Ask for permissions on app launch. 2017-02-22 17:50:24 +00:00
Ricki Hirner
36ee584e6a Fetch translations from Transifex 2017-02-22 15:57:54 +00:00
Tom Hacohen
53637cec03 Remove translations to changed strings
I changed some strings (but kept the name) and remove others. This means
that the existing translations are no longer valid for those, so I wrote
a small script to see which strings I've changed/removed and removed
those from the translations.
2017-02-22 14:06:26 +00:00
Tom Hacohen
afca87f4d8 Toast the server name on startup in debug mode. 2017-02-22 14:06:26 +00:00
Tom Hacohen
2225ee0a03 Cleanup handling of notification errors. 2017-02-22 14:06:26 +00:00
Tom Hacohen
d832ae9bc6 Cleanup error messages in notifications. 2017-02-22 14:06:26 +00:00
Tom Hacohen
09196e52a5 Don't pop notifications for serviceunavailable errors. 2017-02-22 14:06:26 +00:00
Tom Hacohen
942276284e Cleanup sync manager exception handling a bit. 2017-02-22 14:06:26 +00:00
Tom Hacohen
ef8ae03e24 Improve appearance of account page. 2017-02-22 14:06:26 +00:00
Tom Hacohen
35b8283e31 Request sync after adding a collection so it can be used immediately.
This only works when online, need to solve it correctly so it also works offline.
2017-02-22 14:06:26 +00:00
Tom Hacohen
47a846bc2c Remove timezone from create calendar page. 2017-02-22 14:06:26 +00:00
Tom Hacohen
a935e09287 Update strings. 2017-02-22 14:06:26 +00:00
Tom Hacohen
a460a52079 Better handle service unavailable. 2017-02-22 14:06:26 +00:00
Tom Hacohen
3e5f3f5429 When applying remote entries, save sync tag after application. 2017-02-22 14:06:26 +00:00
Tom Hacohen
7f0f1b92fa Correctly handle thread interruptions when applying entries. 2017-02-22 14:06:26 +00:00
Tom Hacohen
268cd98b7b Improve logging when applying entries. 2017-02-22 14:06:26 +00:00
Tom Hacohen
5ec0dd45b5 Add log stating the amount of entries fetched. 2017-02-22 14:06:26 +00:00
Tom Hacohen
aff3be7af4 Make the account type the same as app id. 2017-02-22 14:06:26 +00:00
Tom Hacohen
b3cd95bcf5 Contact sync manager: Add missing super call in postprocess. 2017-02-22 14:06:26 +00:00
Tom Hacohen
c60557d035 Sync manager: deal with error when pushing multiple chunks. 2017-02-22 14:06:26 +00:00
Tom Hacohen
fa52270420 SyncManager: Restrict access to private variables. 2017-02-22 14:06:26 +00:00
Tom Hacohen
f5c413069e Don't leak passwords and token to log. 2017-02-22 14:06:26 +00:00
Tom Hacohen
ef850822de Fix a race condition when preparing dirty. 2017-02-22 14:06:26 +00:00
Tom Hacohen
dd6ce617cc Remove the redundant collection getAll() function.
We aren't using it, and shouldn't be using it. It's very inefficient,
and doesn't help what we want to do.
2017-02-22 14:06:25 +00:00
Tom Hacohen
6ea0b47d79 Implement applyLocalEntries and create the local entries after fetching.
Since we now use a cached version of the localDeleted/Dirty, we can create the entries
after we fetch. We also use the entries to override whatever changes came from the
server because we assume (for now) our copy is the correct one.
2017-02-22 14:06:25 +00:00
Tom Hacohen
2bbddd26cd Fetch local deleted and dirty at the beginning of sync to avoid inconsistency
Without this, those values could change in the middle of the sync
and make us work on different lists at different parts of the
sync code.
2017-02-22 14:06:25 +00:00
Tom Hacohen
d6864f5062 Don't load all resources when syncing, only as needed. 2017-02-22 14:06:25 +00:00
Tom Hacohen
8040ee7d9f Push entries in chunks instead of all at once. 2017-02-22 14:06:25 +00:00
Tom Hacohen
74b0956f3b Improve error messages in journal server interactions. 2017-02-22 14:06:25 +00:00
Tom Hacohen
8cfe58a7d1 Add a way to sign releases. 2017-02-22 14:06:25 +00:00
Tom Hacohen
a50eb87162 Fix newly created Calendars to actually work. 2017-02-22 14:06:25 +00:00
Tom Hacohen
c33bc0ee19 Handle failing to connect to server during login. 2017-02-22 14:06:25 +00:00
Tom Hacohen
eb9c3aa907 Fix timezone picker. 2017-02-22 14:06:25 +00:00
Tom Hacohen
5dbea8579e Redesign calendar look in account page. 2017-02-22 14:06:25 +00:00
Tom Hacohen
7c4e6a11e1 Disallow deleting the last collection. 2017-02-22 14:06:25 +00:00
Tom Hacohen
a10015ee1a Deletion from server is already handled. 2017-02-22 14:06:25 +00:00
Tom Hacohen
36cefee30a Make new calendars selected by default. 2017-02-22 14:06:25 +00:00
Tom Hacohen
119ae5b9fe Fix collection creation. 2017-02-22 14:06:25 +00:00
Tom Hacohen
c5a17291e5 Put a notice to double-check the encryption password. 2017-02-22 14:06:25 +00:00
Tom Hacohen
5dbe217de8 Fix launching of activities following appid rename 2017-02-22 14:06:25 +00:00
Tom Hacohen
c7d817dfe2 Handle invalid account exception in the sync adapter service. 2017-02-22 14:06:25 +00:00
Tom Hacohen
81b927e7fb Encryption helpers: deal with FIXMEs. 2017-02-22 14:06:25 +00:00
Tom Hacohen
88322f341a Handle impossible issue in hmac calculation. 2017-02-22 14:06:25 +00:00
Tom Hacohen
833c8c0847 Only add authentication if connecting to the service's hostname. 2017-02-22 14:06:25 +00:00
Tom Hacohen
4008776812 Sync manager: deal with FIXMEs. 2017-02-22 14:06:25 +00:00
Tom Hacohen
c58ae8fb1c Add contact resource downloader. 2017-02-22 14:06:25 +00:00
Tom Hacohen
44be896df7 Cleanup and improve HttpExceptions. 2017-02-22 14:06:25 +00:00
Tom Hacohen
ff5c5b5230 Remove unused setting to get caldav past days. 2017-02-22 14:06:25 +00:00
Tom Hacohen
69864ac781 Fix user agent and external logging file name. 2017-02-22 14:06:25 +00:00
Tom Hacohen
bfaffc1f38 Change account type. 2017-02-22 14:06:25 +00:00
Tom Hacohen
85baabaf09 Remove translation strings not in original file. 2017-02-22 14:06:25 +00:00
Tom Hacohen
2583f75d41 Rename DavService service. 2017-02-22 14:06:24 +00:00
Tom Hacohen
1b3cd631bc Update application id. 2017-02-22 14:06:24 +00:00
Tom Hacohen
09719f87a2 Optimise imports. 2017-02-22 14:06:24 +00:00
Tom Hacohen
9bd901e368 Turn startup popups back on. 2017-02-22 14:06:24 +00:00
Tom Hacohen
fcc365a89e Remove opentasks and donate from startup dialog. 2017-02-22 14:06:24 +00:00
Tom Hacohen
47ca55f03f Remove reference to opentasks from the UI. 2017-02-22 14:06:24 +00:00
Ricki Hirner
bc7cd65048 Android 7 workaround bugfix
* use local version of contact before calculating hash code
* don't stop upload sync if there are deleted contacts
2017-02-22 14:06:24 +00:00
Ricki Hirner
59f8305ba5 Use contact hash codes only on Android 7+ (workaround)
vcard4android: don't hash CATEGORIES, more verbose logging
2017-02-22 14:06:24 +00:00
Ricki Hirner
d707a1e643 Implement checksum to check whether DIRTY contacts have "really" changed
* contact data hash code = hash code of data fields and group memberships
* Before every contact sync, all dirty contacts are checked whether they're
  "really dirty" (= data hash code has changed). If they're not, the DIRTY
  flag is reset. Works around Android 7 behavior of setting contacts to DIRTY
  even if onky meta data has been updated (for instance, lastContacted after
  a call or SMS),
* When an "upload" sync is initiated by notifyChange and there are no
  "really dirty" contacts, the sync is ignored.
* contact upload: clearDirty() saves hash code, too
* contact download: create()/update() saves hash code, too
* debugging: sync flags (extras) are now logged
2017-02-22 14:06:24 +00:00
Ricki Hirner
774a19ae83 AccountSettingsActivity: use loader
* use Loader for AccountSettingsActivity sync intervals (fixes Android 7 display "issues")
* SyncManager: allow prepare() to skip synchronization
2017-02-22 14:06:24 +00:00
Ricki Hirner
cfb7d6b787 Use isAlwaysSyncable for contacts/calendars again because of buggy Android firmwares 2017-02-22 14:06:24 +00:00
Tom Hacohen
098496a4dc Bump okhttp version. 2017-02-22 14:06:24 +00:00
Tom Hacohen
7feddf3ff7 Change version identifier. 2017-02-22 14:06:24 +00:00
Tom Hacohen
e07c992701 Improve some strings. 2017-02-22 14:06:24 +00:00
Tom Hacohen
2011d8d121 Update about page. 2017-02-22 14:06:24 +00:00
Tom Hacohen
c0d0621887 Improve auth error error message. 2017-02-22 14:06:24 +00:00
Tom Hacohen
c169fb4afb Make login password changing work (albeit ugly). 2017-02-22 14:06:24 +00:00
Tom Hacohen
1363865660 Don't require URI in login credentials constructor. 2017-02-22 14:06:24 +00:00
Tom Hacohen
d62d7049f2 Rename DavResourceFinder. 2017-02-22 14:06:24 +00:00
Tom Hacohen
dcb3429884 Enforce all hmac/mac to always be lower case. 2017-02-22 14:06:24 +00:00
Tom Hacohen
80bb0d6a70 Handle errors when syncing journals, not just entries.
Also create a helper notification manager that encapsulates all of the
notification creation logic (from throwable).
2017-02-22 14:06:24 +00:00
Tom Hacohen
f2febfeb8c Improve integrity error, error message. 2017-02-22 14:06:24 +00:00
Tom Hacohen
1730241e5d Fix login finish button to say 'finish' 2017-02-22 14:06:24 +00:00
Tom Hacohen
44a240fd75 Sync journals when syncing everything else. 2017-02-22 14:06:24 +00:00
Tom Hacohen
0b67be2e89 Remove db reference to homesets. 2017-02-22 14:06:24 +00:00
Tom Hacohen
7e912fecec Remove menu option to refresh calendars. 2017-02-22 14:06:24 +00:00
Tom Hacohen
30631a0b89 Change DAVdroid to EteSync. 2017-02-22 14:06:24 +00:00
Tom Hacohen
695e87ebff Update icon. 2017-02-22 14:06:24 +00:00
Tom Hacohen
8b5f87c2d4 Adjust DAVdroid to use the EteSync protocol (mostly working)
This commit includes the major changes between DAVdroid and EteSync. It
adjusts the app to use the EteSync protocol and server. It includes some
ugliness still, and it's a squash of many ugly snapshot commits while
hacking on the initial DAVdroid code.

History should be "clean" from this point onwards.
2017-02-21 17:26:19 +00:00
Ricki Hirner
232eaa1d6d Version bump to 1.3.6 2017-01-01 12:43:47 +01:00
Ricki Hirner
d40af10b1f Fetch translations from Transifex 2017-01-01 12:26:02 +01:00
Ricki Hirner
364d79535a Update to ez-vcard 0.10.1
* fix REV and PREF problems
2017-01-01 01:13:03 +01:00
Ricki Hirner
d30077657c Fix permissions notification
* ical4android: remove ORGANIZER from all VEVENT components if there are not attendees
2016-12-31 14:16:18 +01:00
Ricki Hirner
4b8c44fe5b AccountSettings version 5: enable/disable OpenTasks by availability (Android 7.1.1 fix)
* better handling of setIsSyncable
2016-12-30 14:29:56 +01:00
Ricki Hirner
88b5a26c3b Don't show warning on AccountSettings version updates 2016-12-30 14:28:28 +01:00
Ricki Hirner
d5807e44af Update to SDK level 25 2016-12-30 02:58:54 +01:00
Ricki Hirner
c8ddec9651 Change handling of tasks sync when OpenTasks is not installed
* AccountDetailsFragment: at account creation, enable task sync only when OpenTasks is installed
* PackageChangedReceiver: when packages are (un)installed, check for OpenTasks availability and (de)activate task sync for all accounts accordingly
* LocalTaskList: don't cache OpenTasks availability
* sync_*.xml: don't activate sync by default
2016-12-28 22:23:13 +01:00
Ricki Hirner
0a70d91883 Fetch translations from Transifex 2016-12-23 15:54:20 +01:00
Ricki Hirner
7a4fc19814 Version bump to 1.3.5 2016-12-23 15:51:56 +01:00
Ricki Hirner
ef92753ac6 Address book selection changed: update URL as soon as possible 2016-12-19 18:58:35 +01:00
Ricki Hirner
ca38cbe935 Update okhttp to 3.5.0 2016-12-02 15:01:52 +01:00
Ricki Hirner
29068389c7 Log group assignments more verbosely 2016-11-25 21:40:40 +01:00
Ricki Hirner
d2df3c9027 Rename account: don't crash when content providers are not accessible 2016-11-17 19:59:23 +01:00
Ricki Hirner
d34efb103d Version bump to 1.3.4.1 2016-11-14 18:48:26 +01:00
Ricki Hirner
2fd0ac2dd0 Fetch translations from Transifex 2016-11-14 18:41:48 +01:00
Ricki Hirner
4f796669f6 Avoid some crashes
* check whether ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATION can be resolved before launching it
* cert4android: don't crash when service can't be bound
2016-11-14 18:39:25 +01:00
Ricki Hirner
fb7f974987 Allow renaming of accounts
* allow renaming of accounts
* always open AccountActivity, even if there are no services (so that users can delete the account from within DAVdroid)
2016-11-14 01:14:46 +01:00
Ricki Hirner
900f1fd857 Fetch translations from Transifex 2016-11-13 20:34:11 +01:00
Ricki Hirner
e0a5748da3 Update build tools to 25.0.0, fix WiFiManager leak 2016-11-13 20:22:10 +01:00
Ricki Hirner
fa17659ce8 Fetch translations from Transifex 2016-11-04 12:02:08 +01:00
Ricki Hirner
8d4eeb763b Version bump to 1.3.4
* library updates
2016-11-04 12:01:24 +01:00
Ricki Hirner
3c1e9302df Add app-wide HTTP proxy setting 2016-10-30 22:21:54 +01:00
Ricki Hirner
f2d5fe32c5 Debug info: send inline on Android <4.1 and when creating an attachment doesn't work 2016-10-22 02:05:58 +02:00
Ricki Hirner
08639b2e89 Version bump to 1.3.3.1 2016-10-21 19:52:55 +02:00
Ricki Hirner
5b50aa024e Fetch translations from Transifex 2016-10-21 19:50:09 +02:00
Ricki Hirner
d8fb9c8373 Library updates
* dav4android: disable compression for GET requests because it may change the ETag
* better logging for ical4j messages
* tests
2016-10-21 11:08:50 +02:00
Ricki Hirner
b3dda2c112 ProGuard update; signing config 2016-10-18 12:36:41 +02:00
Ricki Hirner
ae8bf4d49e Use string resource for logging file provider authority; vcard4android update 2016-10-17 23:57:53 +02:00
Ricki Hirner
8e5ca5a72d Share debug info: always use attachment
* share debug info: always use attachment (before: send inline if it was small enough)
* use FileProvider for debug info attachment (for Android 7 compatibility)
* dav4android, ical4android fixes
2016-10-17 17:47:27 +02:00
Ricki Hirner
2e78e1e746 Add useless ProGuard rule 2016-10-15 16:51:35 +02:00
Ricki Hirner
fb4321f35f Fetch translations from Transifex 2016-10-14 21:19:39 +02:00
Ricki Hirner
7d7e2584ed Version bump to 1.3.3 2016-10-14 21:00:29 +02:00
Ricki Hirner
118d873cdf ical4android: ignore invalid DUE < DTSTART for tasks 2016-10-12 17:03:46 +02:00
Ricki Hirner
e7e30e9f2f Remove VCard RFC6868 setting (always enabled now; setting not needed for Posteo compatibility anymore) 2016-10-12 16:45:26 +02:00
Ricki Hirner
bd8470e7eb Switch to JUnit4 2016-10-10 21:03:18 +02:00
Ricki Hirner
ec0e792f12 Add Gitlab CI 2016-10-10 20:18:37 +02:00
Ricki Hirner
593d907e3a Improve tests 2016-10-07 14:39:21 +02:00
Ricki Hirner
2c5b93ce43 Fix NPE in "is refreshing progress bar" 2016-10-07 14:39:18 +02:00
Ricki Hirner
68d48bb0f2 Version bump to 1.3.2.2 2016-10-05 11:14:41 +02:00
Ricki Hirner
3acc05b605 Enable verbose logging of allow loggers (for instance, okhttp) / dav4android update 2016-10-04 23:42:03 +02:00
Ricki Hirner
3813c1e0c8 Android 4.0/4.1 fixes
* require API level 15 for TransactionTooLargeException
* use SQLite WAL only on API level 16+
* various database access, provider access and UI fixes
2016-10-04 16:23:23 +02:00
Ricki Hirner
4e87186dd8 Version bump to 1.3.2 2016-10-03 20:57:14 +02:00
Ricki Hirner
5e0a3e8b9f Fetch translations from Transifex 2016-10-03 20:43:01 +02:00
Ricki Hirner
3bd96955cc Avoid "no transaction" exception 2016-10-03 20:11:56 +02:00
Ricki Hirner
3952181df2 Minimal layout change 2016-10-03 12:13:59 +02:00
Ricki Hirner
054dba6ff8 Show progress bar when synchronization is active 2016-09-26 23:07:35 +02:00
Ricki Hirner
68781fd96e Increase SEQUENCE only when we're ORGANIZER 2016-09-26 23:07:35 +02:00
Ricki Hirner
00a400569a Query/use CalDAV email address as account name, if available 2016-09-26 23:07:35 +02:00
Ricki Hirner
08b1886f9e Always increase SEQUENCE 2016-09-26 23:07:35 +02:00
Ricki Hirner
d2d7ce8fe3 lint: don't keep references to Context in static fields 2016-09-26 23:07:35 +02:00
Ricki Hirner
1354afebf7 Version bump to 1.3.1
* some cert4android tests
2016-09-18 17:39:07 +02:00
Ricki Hirner
08c8390202 Import strings from Transifex 2016-09-18 16:50:27 +02:00
Ricki Hirner
d688eb5196 Always use PROPFIND instead of REPORT addressbook-query 2016-09-18 16:43:11 +02:00
Ricki Hirner
b757cba521 README changes 2016-09-02 12:22:45 +02:00
Ricki Hirner
4fea7880e7 Fetch translations from Transifex 2016-09-02 12:13:22 +02:00
Ricki Hirner
9555c066bd lint optimizations
* permissions: declare AUTHENTICATE_ACCOUNTS, GET_ACCOUNTS and MANAGE_ACCOUNTS only until SDK level 22
* minor optimizations and bug fixes
2016-09-02 12:02:42 +02:00
Ricki Hirner
290ce7ad80 Version bump to 1.3
* vcard4android: fix bug concerning generated formatted postal addresses
2016-09-02 00:55:44 +02:00
Ricki Hirner
55ad06e328 New launcher logo 2016-09-02 00:55:39 +02:00
Ricki Hirner
19ab4a14ce Use cert4android instead of MemorizingTrustManager
* use cert4android instead of MemorizingTrustManager
* new app setting: distrust system certificates
* add network security config to manifest so that user-installed CAs will be accepted in Android 7 again
* update gradle
2016-09-02 00:38:02 +02:00
Ricki Hirner
ac940b3a12 Accept intent extras for LoginActivity 2016-08-13 23:14:33 +02:00
Ricki Hirner
7416c62c97 Fetch translations from Transifex 2016-08-06 00:13:16 +02:00
Ricki Hirner
eb70f8690f Fix OpenTasks regression bug
* version bump to 1.2.3
* enable OpenTasks sync on Android <6 again
2016-08-05 23:32:03 +02:00
Ricki Hirner
bab84d7d0f Improve HTTP authentication
* use preemptive Basic auth automatically for HTTPS connections
* cache auth parameters (Basic/Digest)
2016-08-05 23:20:19 +02:00
Ricki Hirner
ae145d897e Fetch translations from Transifex 2016-08-02 19:30:20 +02:00
Ricki Hirner
d675fb961e Request ignoring battery optimization
* startup dialog: request to ignore battery optimizations
* remove F-Droid donation startup dialog (only useful for davdroid-ose)
* version bump to 1.2.2
2016-08-02 19:30:15 +02:00
Ricki Hirner
967bc50256 Avoid sync error when OpenTasks is not installed 2016-08-01 21:54:56 +02:00
Ricki Hirner
2617063835 Clean up launcher icon
* clean up launcher icon
* update dependencies
2016-08-01 21:15:55 +02:00
Ricki Hirner
7fbdf96546 Allow large transactions
* version bump to 1.2.1-ose
* upgrade to okhttp 3.4.1
* ical4android/vcard4android: split oversized transactions
2016-07-27 14:33:06 +02:00
Ricki Hirner
f6cb92dd6d Remove gplay flavour to keep DAVdroid-OSE repo clean
* Remove gplay flavour to keep DAVdroid-OSE repo clean
* update Android gradle plugin to 2.1.2
2016-07-11 13:45:27 +02:00
Ricki Hirner
b49bdda7e8 Fix NPE, add intent to view FAQ to upgrade notification 2016-07-11 12:55:55 +02:00
Ricki Hirner
19b54748cd Version bump to 1.2
* move ETag requirement from vcard4android to davdroid
* more debug info
* vcard4android: support for custom labels (X-ABLabel)
2016-07-02 10:32:12 +02:00
Ricki Hirner
41ce609237 Support X-ABLabel for custom types
* vcard4android: support X-ABLabel for custom types
2016-07-01 22:10:20 +02:00
Ricki Hirner
aafcc36c4d Version bump to 1.1.1.2
* allow ProGuard optimization to remove non-relevant bytecode from flavors
* check flavors with direct comparison instead of .equals() to allwo optimizations
* store cookies per HttpClient, and not per DAVdroid instance (allows multiple sessions for parallel syncs)
* fetch translations from Transifex
2016-06-24 13:39:26 +02:00
Ricki Hirner
2496a3bf05 Add standard and gplay product flavor 2016-06-24 00:06:43 +02:00
Ricki Hirner
54e6426dc4 Version bump to 1.1.1.1
* add yield points to allow processing of groups with many contacts
* new script to generate contacts for testing
2016-06-23 11:42:12 +02:00
Ricki Hirner
4542da7d89 Version bump to 1.1.1
* fetch translations from Transifex
2016-06-21 21:05:18 +02:00
Ricki Hirner
977409511a Handle cookies correctly using a name/domain/path MultiKeyMap 2016-06-21 20:51:52 +02:00
Ricki Hirner
ad8c832819 Version bump to 1.1
* fetch translations from Transifex
* fix account settings version update routine
2016-06-19 19:15:38 +02:00
Ricki Hirner
389af2b738 Better group support
* change group methods to less specific values
* new account settings version: change group method to CATEGORIES for updated accounts
* change group method from CATEGORIES to GROUP_VCARDS automatically when a group VCard is received

GUI:
* AccountSettings: disable CalDAV/CardDAV options when the corresponding service is not available
* AccountSettings: new option to choose contact group method
* account setup: allow to choose contact group method at account creation
2016-06-19 18:52:56 +02:00
Ricki Hirner
be2e15e463 Merge branch 'master' into vcard4-groups 2016-06-12 15:52:07 +02:00
Ricki Hirner
c7c13520f9 Version bump to 1.0.9.2
* version bump to 1.0.9.2
* fetch translations from Transifex
2016-06-11 09:06:21 +02:00
Ricki Hirner
317144630c Make use of RFC6868 optional
* make use of RFC6868 for VCards optional because some defect servers don't accept it
* minor UI improvements (thanks biociahi)
2016-06-11 08:53:29 +02:00
Ricki Hirner
34bc27fa79 Switch from preference-v7 to preference-v14 to make preferences look more Material (thanks biociahi!) 2016-06-11 08:53:15 +02:00
Ricki Hirner
210735a500 Switch from preference-v7 to preference-v14 to make preferences look more Material (thanks biociahi!) 2016-06-09 10:13:47 +02:00
Ricki Hirner
b30733c64b Basic support for VCard4-style groups
* rewritten contact group support to support VCard3 CATEGORIES and VCard4-style KIND/MEMBER groups
* new account setting: contact group method (VCard3/VCard4/Apple "VCard4-as-VCard3")
* keep unknown properties when saving/generating VCards
2016-06-08 21:44:31 +02:00
Ricki Hirner
91234a688f Upgrade to okhttp 3.3.1 2016-05-30 12:02:04 +02:00
Ricki Hirner
5675e544b5 Better alarm handling
* ical4android: better alarm handling
* API change: pass OutputStream instead of returning it
2016-05-28 16:00:23 +02:00
Ricki Hirner
42a261b84e Revert "Contact/event/task upload: use streams directly without extra byte[] array"
This reverts commit 3bde3758fc.
Version bump to 1.0.9.1

Reason: A server MAY reject a request that contains a message body but not a Content-Length
by responding with 411 (Length Required). (RFC 7230 3.3.3 Message Body Length)
2016-05-26 22:08:22 +02:00
Ricki Hirner
0d1825cbf3 Revert "Contact/event/task upload: use streams directly without extra byte[] array"
This reverts commit 3bde3758fc.
2016-05-26 22:04:03 +02:00
Ricki Hirner
9b8fc983cd Version bump to 1.0.9
* upgrade to okhttp 3.3 to reduce HTTP/2 incompatibilties
* vcard4android: enable RFC 6868 support in ez-vcard
* minor improvements and bug fixes
* new translations from Transifex
* version bump to 1.0.9
2016-05-25 21:37:43 +02:00
Ricki Hirner
3bde3758fc Contact/event/task upload: use streams directly without extra byte[] array 2016-05-23 15:10:35 +02:00
Ricki Hirner
fd1f59d124 Logs: show which contact/event/task is being prepared for upload 2016-05-23 14:28:27 +02:00
Ricki Hirner
9886507b7d Minor improvements
* use weak references for DavService RefreshingStatusListener
* additional null checks for cases which shouldn't appear, but apparently appear
* additional database conflict handling for cases which shouldn't appear, but apparently appear
* setup by URL: null check for empty host names
* vcard4android: upgrade to ezvcard 0.9.10
2016-05-20 21:38:04 +02:00
Ricki Hirner
144643d6af Work around unexpected IllegalArgumentException when user enters garbage host name 2016-04-30 12:39:19 +02:00
Ricki Hirner
14875f63ea Always update all task fields (including null values)
* ical4android: always update all task fields (including null values)
* lint optimizations
* fetch translations from Transifex
* version bump to 1.0.8
2016-04-26 23:32:24 +02:00
Ricki Hirner
28e567cf78 Introduce local unit tests
* split tests into Android tests and local unit tests
* LoginCredentialsFragment: check for empty host before doing IDN conversion
2016-04-26 13:10:42 +02:00
Ricki Hirner
7997606550 Minor optimizations
* catch IllegalArgumentException from HttpUrl in DavResourceFinder (caused crash when logging in with email "test@server/withslash")
* use IteratorChain in DavService collection enumeration
2016-04-19 21:56:05 +02:00
Ricki Hirner
fb0552de46 Find collections when they're identical with their home set 2016-04-18 00:04:18 +02:00
Ricki Hirner
03c15a6924 Task list synchronization conditions, tests
* task list synchronization: don't set VISIBLE=1 and SYNC_ENABLED=1 at every sync, but only at creation
* task list synchronization: sync only task lists which are SYNC_ENABLED
* honor "manage calendar colors" account setting for task list colors, too
* add run-tests-connected.sh, to be used as pre-commit hook
* ical4android/vcard4android tests
* fetch translations from Transifex
* version bump to 1.0.7
2016-04-14 20:37:22 +02:00
Ricki Hirner
c3b2929f88 Changes in ical4android and vcard4android
* don't set ORGANIZER for events without attendees
* make some lists public final instead of @Getter private
* PermissionsActivity: call refresh in onResume() instead of onCreate()
2016-04-13 14:15:34 +02:00
Ricki Hirner
eb2537a278 Version bump to 1.0.7-beta1
* fetch translations from Transifex
2016-04-10 20:43:01 +02:00
Ricki Hirner
0b9727cca6 More detailled OpenTasks installation hint
* show "reinstall DAVdroid" hint only for Android <6
* fetch translations from Transifex
2016-04-10 18:50:42 +02:00
Ricki Hirner
61231b4233 Implement Android 6-style permissions
* increase target API level to 23 (Android 6), which makes Android 6-style permissions mandatory
* AUTHENTICATE_ACCOUNTS permission is only required up to API level 22
* new activity: PermissionsActivity which shows missing permissions and provides buttons to request them
* DavService: Android shouldn't send a null Intent, but sometimes it does, so implement null check
* LocalTaskList: tasksProviderAvailable may return true on API level 23+ even if permissions are not sufficient
* SyncAdapterService: show a notification (with Intent for PermissionsActivity) when permissions are not sufficient
* when creating accounts, set OpenTasks sync always to true if API level is 23+ (even if OpenTasks is not installed [yet])
* update Lombok
2016-04-10 15:55:11 +02:00
Ricki Hirner
59252d7471 Fetch translations from Transifex
* fetch translations
* minor changes (lint)
2016-04-07 08:38:09 +02:00
Ricki Hirner
6ffa6fa9a7 New feature: only sync in WiFi
* new setting: only sync in WiFi (or when sync is triggered manually)
* new setting: only sync in specific WiFI (by SSID)
* lower default sync interval when account is created to 4 hours (was 1 day)
* version bump to 1.0.6
2016-04-06 21:04:16 +02:00
Ricki Hirner
03ee9a037b Various tests 2016-04-05 23:25:18 +02:00
Ricki Hirner
7ab13d648e Check for migrations only when package is replaced, DB fixes
* AccountSettings$AppUpdatedReceiver: check for migrations only when package is replaced
* SyncAdapter: move DB helper from service to SyncAdapter to prevent databases from being closed too early
* Manual sync button: run sync immediately (without queueing)
2016-04-05 16:52:43 +02:00
Ricki Hirner
25c54cce62 SyncManager notifications: create a unique notification for every synced collection 2016-04-01 17:45:57 +02:00
Ricki Hirner
f0e45c71f5 Add account setting: manage calendar colors 2016-03-31 20:07:36 +02:00
Ricki Hirner
fa528a64e9 Sync database optimizations
* enable WAL as early as possible
* don't close database in SyncAdapter but only in SyncService
* version bump to 1.0.4
2016-03-31 14:08:48 +02:00
Ricki Hirner
c6aed90c96 OOM handling, DB transactions, calandar VISIBLE, service refresh notification
* handle and show OutOfMemoryErrors correctly (they're not Exceptions)
* use db.beginTransactionNonExclusive() because WAL is enabled
* set calendar VISIBLE=1 AND SYNC=1 only at creation and not at every sync
* update PendingIntent of service refresh notification
2016-03-31 12:47:43 +02:00
Ricki Hirner
2280f899ee Use last path segment as collection display name if there's no DAV:displayName
* use last path segment as collection display name if there's no DAV:displayName
* add Contacts Provider Settings again to show contacts without groups in all clients (bluetooth cars etc.)
2016-03-31 00:52:10 +02:00
Ricki Hirner
a283cbbae5 Add account info when creating calendars
* add ACCOUNT_NAME and ACCOUNT_TYPE when creating calendars
* close TaskProvider when checking for its presence
* when TaskProvider is not available/accessible, explicitly disallow task sync at account creation
  to prevent further crashes
* try to handle OutOfMemoryError
* version 1.0_2
2016-03-30 16:11:44 +02:00
Ricki Hirner
bb95a25b91 Fix NPE for synchronization while CalDAV/CardDAV services is not available in DB 2016-03-30 16:07:41 +02:00
Ricki Hirner
f1ccd01708 Fetch translations from Transifex
* version 1.0_1 for commercial stores
2016-03-29 15:39:10 +02:00
Ricki Hirner
c498225064 Resource detection: fix NPE 2016-03-29 15:19:53 +02:00
Ricki Hirner
879b137cfc Version bump to 1.0
* fetch translations from Transifex
2016-03-27 15:55:05 +02:00
Ricki Hirner
84379f7ee1 Verbose logging of resource detection
* enable verbose logging of resource detection
* dav4android: prevent leaking connections
2016-03-25 16:27:43 +01:00
Ricki Hirner
a594fd3d14 Handle invalid accounts where accounts are used
* add InvalidAccountException for invalid (=not existent/invalid settings version) accounts
* handle invalid accounts properly
* HttpClient: add constructors without Account when authentication is not needed
* drop upgrade compatibility for accounts without version (version<1)
2016-03-25 15:23:54 +01:00
Ricki Hirner
100b78a6a4 Version bump to 1.0-rc1
* fix migration bug (doesn't set read-only flag)
* unify progress dialogs
* improve debug info report styling
2016-03-24 21:03:10 +01:00
Ricki Hirner
758711acb2 Import translations from Transifex 2016-03-24 19:32:45 +01:00
Ricki Hirner
c90b6075db Re-initialize logger in :sync process, too (IPC using broadcast)
* re-initialize logger in :sync process after changing the settings (IPC using broadcast)
* move settings from SharedPreferences (which is not multi-process-safe) to ServiceDB
* logger: show exception details
* settings: show debug info
2016-03-24 19:10:30 +01:00
Ricki Hirner
7109915e6e Minor refactoring (lint) 2016-03-24 17:43:35 +01:00
Ricki Hirner
e8cf9fd5ab Implement AboutActivity (license information) 2016-03-24 13:48:43 +01:00
Ricki Hirner
3a49815220 Show notifications on refresh errors
* show notifications on DAV service refresh errors
* add Twitter to navigation drawer
2016-03-23 22:01:52 +01:00
Ricki Hirner
96881bd986 Improve resource detection
* honour calendar-proxy-read/write-for property
* ignore errors when quering member groups for home sets
* remove home sets and collections from the service database not only on 404, but 403, 404 and 410
* fix crash bug when <displayname> was defined, but empty
2016-03-23 14:46:13 +01:00
Ricki Hirner
c08a0bdc43 Respect read-only flag of collections
* handle read-only information properly
* don't show (clear-text) password in account settings
2016-03-23 12:30:49 +01:00
Ricki Hirner
773b2ee992 SSLSocketFactoryCompat: fix typo 2016-03-23 11:30:42 +01:00
Ricki Hirner
c2181c55d3 Translation fix 2016-03-20 21:03:25 +01:00
Ricki Hirner
8449684dd2 Version bump to 1.0-beta1
* fetch translations from Transifex
* minor changes (lint/strings)
2016-03-20 18:31:11 +01:00
Ricki Hirner
28e7c91658 Initiate DAV service refresh after migration
* initiate DAV service refresh after migration
* minor refactoring of sync adapter classes
* minor UI changes
2016-03-20 17:41:05 +01:00
Ricki Hirner
51867c5f3f Notification for external file logging
* Show notificatin when external file logging is active
* Use column name constants for ServiceDB access
2016-03-20 11:41:08 +01:00
Ricki Hirner
1786b73ac6 Provide settings migration v0.9 -> v1.0 2016-03-19 22:30:07 +01:00
Ricki Hirner
1df3ddbe74 Startup dialogs
* add startup dialogs (F-Droid: donations, Play Store: DRM bug, OpenTasks not installed)
* allow to reset hints/startup dialogs
* AccountSettings: fragment as inner class of activity
2016-03-19 11:22:30 +01:00
Ricki Hirner
5ee8d76b34 Add SQLite dump to debug report 2016-03-18 19:02:27 +01:00
Ricki Hirner
5723225475 App settings UI 2016-03-18 17:24:46 +01:00
Ricki Hirner
f73f6ca43c Account management: Create address book (similar to create calendar) 2016-03-18 15:40:05 +01:00
Ricki Hirner
753c4b05a5 Allow time-range filtering of events (to the past)
* add account setting + GUI: restrict time range in the past
* add support for restricted time range VEVENT synchronization
* fix bug in handling changed exceptions of recurring events
2016-03-16 18:23:52 +01:00
Ricki Hirner
2e34fa686d Minor refactoring 2016-02-24 23:21:25 +01:00
Ricki Hirner
a735564bc1 Use java.util.logging instead of sl4fj 2016-02-24 23:08:19 +01:00
Ricki Hirner
552f6b6936 Refactoring
* move AccountSettings up to package context
* HttpClient: take authentication from AccountSettings in the constructor
* App: provide global instance of MemorizingTrustManager
* App: provide global Java logger, optionally with verbose and external file logging
* LoginCredentials: moved from inner-class into setup package
2016-02-24 15:56:30 +01:00
Ricki Hirner
50f7006e59 Refactoring
* make DavResourceFinder.Configuration really serializable
2016-02-24 12:29:07 +01:00
Ricki Hirner
6ac5fe0204 Show debug info on management errors 2016-02-23 23:10:44 +01:00
Ricki Hirner
19bfe5c5f2 Create/delete calendars 2016-02-23 18:42:50 +01:00
Ricki Hirner
212cd8ddb0 Proof of concept: create remote address books, delete remote collections 2016-02-22 14:33:55 +01:00
Ricki Hirner
c30195d9ba AccountActivity changes
* CalDAV/CardDAV resource list views now always contain all elements without scrolling (NonScrollingListView)
* synchronization action in activity now overriddes system sync settings
2016-02-21 14:15:55 +01:00
Ricki Hirner
3ca063416e Fix crash bug caused by leaking OnAccountsUpdateListener 2016-02-19 14:15:32 +01:00
Ricki Hirner
940d622402 Upgrade to okhttp/3.1.2 + tests 2016-02-19 13:16:34 +01:00
Ricki Hirner
814abc60ed Service detection, account settings
* service detection: detect group memberships and query them for homesets
* account settings
* request account synchronization
2016-01-23 18:44:40 +01:00
Ricki Hirner
220ba4b151 Improved service detection + GUI
* DavService: query group-membership principals for home sets, too
* working collection selection
* contacts sync according to selected address book
2016-01-23 00:04:48 +01:00
Ricki Hirner
777e124b54 Selectable calendars 2016-01-20 21:12:37 +01:00
Ricki Hirner
f32493986b Update local calendars according to ServiceDB at sync 2016-01-20 15:22:58 +01:00
Ricki Hirner
5025a61cd1 Update local task lists according to ServiceDB at sync 2016-01-20 15:01:17 +01:00
Ricki Hirner
89a516bfd1 DavService: refresh collections 2016-01-20 00:39:10 +01:00
Ricki Hirner
af71ed8bc5 Collections refresh 2016-01-19 20:04:25 +01:00
Ricki Hirner
fc29988dc6 Add DavService for long-running operations 2016-01-19 13:51:52 +01:00
Ricki Hirner
77c947da14 Add account details activity (AccountActivity) 2016-01-18 14:59:19 +01:00
Ricki Hirner
ff901ce91f Service database
* HttpClient: authentication that is limited to a host name is never preemptive
* DavResourceFinder: service configuration == null means that this service is not available
* new SQLite database for CalDAV/CardDAV services
* added AccountDetailsFragment, which asks for account name and then finishes account creation
* updated AccountListFragment
2016-01-17 17:10:30 +01:00
Ricki Hirner
85a6b68a56 Rewrite initial configuration detection
* HttpClient: add Accept-Language header
* HttpClient: fix MemoryCookieStore NullPointerException
* DavResourceFinder: check for home sets, too
2016-01-17 00:34:26 +01:00
Ricki Hirner
89050d88c6 Upgrade to okhttp3 2016-01-16 21:34:41 +01:00
Ricki Hirner
ba0350c83d New initial server configuration detection
* separate initial server configuration (= principal and/or a certain collection) detection from collection refresh (to be done)
* GUI: LoginActivity
2016-01-16 00:53:05 +01:00
Ricki Hirner
515969c4b8 Initial changes for new GUI 2016-01-15 01:07:56 +01:00
Ricki Hirner
9a8d29e774 Append trailing slashes to Web URLs; okhttp upgrade 2016-01-08 17:57:51 +01:00
Ricki Hirner
d6cff63f2d Version bump to 0.9.1.3 2016-01-03 01:47:32 +01:00
Ricki Hirner
be6aa1b6a2 Upgrade to okhttp/2.7.1 2016-01-02 10:59:52 +01:00
Ricki Hirner
9ec4a4015d
Increase timeout values
* increase timeout values because some servers are known to be very slow
2015-12-06 13:45:15 +01:00
Ricki Hirner
9dbc32d30b
BuildConfig: use build time instead of current time for timestamp 2015-11-27 14:04:24 +01:00
Ricki Hirner
0142e63257
Show open-source information when MainActivity is created 2015-11-24 18:36:25 +01:00
Ricki Hirner
aaa7d71ae3
Version bump to 0.9.1.2
* debug info: send report inline up to 8000 characters, as attachment otherwise
* ical4android: fix bug which locally deleted tasks by mistake
2015-11-24 17:59:47 +01:00
Ricki Hirner
4adf3001ac
New upstream libraries, task sync bug fix
* use OkHttp 2.6.0, slf4j-android 1.7.13, and ez-vcard 0.9.8
* ical4android: don't delete all tasks instead of single one
2015-11-23 09:07:35 +01:00
Ricki Hirner
5ccdafa074
ContactsSyncManager: URL fix
* ContactsSyncManager: don't try to download external resources which do not have a valid URL
2015-11-20 10:12:48 +01:00
Ricki Hirner
fce2b85991
Increase version code……………………………………………………………………………. 2015-11-16 13:24:44 +01:00
Ricki Hirner
e5ebf10dc0
Version 0.9.1.1
* resource detection: ignore 404 errors when trying context paths
* work around crash when edit field is changed while there is no acitivity (???!)
* dav4android: fix calendar-multiget request
2015-11-16 13:15:57 +01:00
Ricki Hirner
0f0acd62a3
Optimize soft keyboard handling, make resource detection dialog not cancelable 2015-11-09 11:31:40 +01:00
Ricki Hirner
2414b42867
Add basic support for cookies
* add basic support for cookies (doesn't work for URLs with ports: https://code.google.com/p/android/issues/detail?id=193475)
* MemorizingTrustManager: log reason for inaccessible key store files
2015-11-08 18:51:19 +01:00
Ricki Hirner
12248b8bb9
Version 0.9.1-beta1
* CalendarSyncManager/TaskSyncManager: only set calendar name and color on sync when data is available
* DavResourceFinder: test getCurrentUserPrincipal
* dav4android: use java.util.ServiceLoader, resilience against multi-status with <propstat> without <status> + test
* ical4android: always set HAS_ATTENDEE_DATA to 1
* vcard4android: small fixes
* merge translations from Transifex
2015-11-07 22:03:19 +01:00
Ricki Hirner
065aa3fc84
Version bump to 0.9.1
* filter ":" and "/" from external log file names
2015-11-07 15:35:22 +01:00
Ricki Hirner
20ee4e03f3
Various improvements
* ContactsSyncManager: gracefully handle photo URLs without host name
* MainActivity: cache installer package name
* dav4android: use java.util.ServiceLoader to load DAV property factories
2015-11-07 15:18:23 +01:00
Ricki Hirner
241e15404f
Amend DebugInfoActivity
* write report to temporary file in external cache dir before sending
* don't delete the report file onActivityResult (because services like the email service may access it asynchronously)
* don't show label of installer (just the package name), because some use ambiguous strings like "App Store" etc.
* show sync. settings for all accounts again
2015-11-07 14:10:17 +01:00
Ricki Hirner
4a00ba647d
Fix crash bug when external log file can't be created 2015-10-28 14:10:03 +01:00
Ricki Hirner
8d00814eaf
Update .gitmodules to publically accessible URLs 2015-10-24 12:08:51 +02:00
Ricki Hirner
c665744c31
Version 0.9.0.4
* ical4android: treat empty-string task location and URL as null values
* vcard4android: ignore raw contact data without MIMETYPE
* gracefully ignore when server doesn't sent Content-Type in GET responses
* merge translations from Transifex
2015-10-24 00:36:22 +02:00
Ricki Hirner
2ef278c336
vcard4android: ignore raw contact data rows without MIMETYPE 2015-10-23 02:28:23 +02:00
Ricki Hirner
34de8431ae
Fallback to PROPFIND when REPORT addressbook-query returns 400, 403, 500 or 501
* increase max. log line length to 80 characters
2015-10-21 14:40:03 +02:00
Ricki Hirner
9d19d9757c
Merge translations from Transifex and bump version to 0.9.0.3 2015-10-21 02:15:10 +02:00
Ricki Hirner
81d13576e8
Minor bug fixes and improvements
* Contacts sync: if REPORT addressbook-query doesn't work, don't ignore other exceptions than HTTP 40x errors
* dav4android: Digest auth improvements (e.g. for OS X Calendar Server)
* vcard4android: better support for exotic IMPP handles and names
2015-10-21 02:06:29 +02:00
Ricki Hirner
6f429328ef
Version bump to 0.9.0.2 2015-10-20 13:28:34 +02:00
Ricki Hirner
0f5f39a9fe
Lower target SDK to 22 (pre-M) to fixes crashes on Android 6; new permissions model will be implemented later 2015-10-20 12:56:48 +02:00
Ricki Hirner
3e2459c85c
2 bug fixes
* ical4android: enumerate (=synchronize) all task lists and not only the first one
* fix crash bugs when activating external logging without external storage
2015-10-20 12:04:31 +02:00
Ricki Hirner
8f52bf160e
Version bump to 0.9.0.1
* with minor fixes
2015-10-19 19:04:01 +02:00
Ricki Hirner
661276450c
SSLSocketFactoryCompatTest 2015-10-19 16:55:01 +02:00
Ricki Hirner
c93a89348e
Handle event/task sequence == null (meaning it was created locally and not sequence has yet been assigned) 2015-10-19 16:44:37 +02:00
Ricki Hirner
93464ccf8c
Enable TLSv1.1 and TLSv1.2 (if available) for Android <5 again 2015-10-19 15:16:44 +02:00
Ricki Hirner
3646a561c6
Remove Robohydra (obsoleted by okhttp-mockwebserver) 2015-10-19 13:18:21 +02:00
Ricki Hirner
da9410c1b5
Fix lint warnings, don't require external storage permission for SDK >18 2015-10-19 11:57:43 +02:00
Ricki Hirner
82f80fed1c
Resource detection fixes
* check TXT records for <service>._tcp.domain.tld instead of domain.tld
* duplicate log to ADB for successful resource detection
2015-10-19 01:12:06 +02:00
Ricki Hirner
94770fb0c8
Version 0.9 ready!
* fix lint warnings
* line-break too long messages of network trace logs
* DebugInfoActivity "send": attach log file instead if sending it as plain text
* revert to ez-vcard 0.9.6 because of https://github.com/mangstadt/ez-vcard/issues/33
* German translations
2015-10-19 00:19:29 +02:00
Ricki Hirner
9ddcec5624
Changed source strings 2015-10-18 19:36:03 +02:00
Ricki Hirner
4b5cb30762
Log resource detection results to viewable string
* new StringLogger
* DavResourceFinder: log to StringLogger; if no collections are found, logs can be views
* DebugInfoActivity: show passed logs
* script to fetch translations from Transifex
* increase version to 0.9-beta2
2015-10-18 17:30:26 +02:00
Ricki Hirner
58f05986c9
Synchronization logging to external file
* use ExternalFileLogger to log synchronization, if enabled in Settings
* new settings: log to external file / log verbose
* DavResource: check for well-known even if service type of user-given URL can't be determined
* remove oblsete testing assets
2015-10-18 16:20:26 +02:00
Ricki Hirner
dd50f10c58
Merge translations from Transifex 2015-10-17 22:42:45 +02:00
Ricki Hirner
d3c1688407
Improve DavResourceFinder
* check whether user-given URL actually provides CalDAV/CardDAV before trusting the current-user-principal
  as there may be different principals for CalDAV and CardDAV (if both services are completely separated)
2015-10-17 19:13:16 +02:00
Ricki Hirner
80231dd44b
Sync manager optimization
* allow cancellation of synchronization within appropriate time
* sync error notification: use loader, show all accounts, show whether JB Workaround is installed, reorder
2015-10-17 11:33:35 +02:00
Ricki Hirner
4ecca76a95
Group support (VCard 3 CATEGORIES) with vcard4android
* VCard 3-style group support (CATEGORIES)
* sync error notification improvements
* some tests
2015-10-16 23:06:35 +02:00
Ricki Hirner
410a04dc11
Support Basic and Digest auth 2015-10-16 19:30:50 +02:00
Ricki Hirner
7fc01503d5
New collection/service discovery: CalDAV+CardDAV 2015-10-16 12:40:44 +02:00
Ricki Hirner
18542adb2c
New resource detection
* new resource detection: only CalDAV yet
2015-10-16 03:27:56 +02:00
Ricki Hirner
e34abf291e
Improve error/account settings notifications
* move address book settings from account user data to ContactsContract.SyncState
* remove "VCard4 capable?" setting (as it's detected at every sync)
* show user notification when updating settings version or when Android version was increased
* improve stack trace in DebugInfoActivity
* get rid of Guava (use Commons again)
2015-10-15 15:36:55 +02:00
Ricki Hirner
20bc5af4a3
Resource detection, bug fixes
* resource detection is subject to change yet
* don't use UID_2445 for Android <= 4.1
* more useful sync error notification messages
* handle 401 Unauthorized and show account info when notification is tapped
2015-10-15 13:46:19 +02:00
Ricki Hirner
f344bd3c28
Tasks with new sync logic 2015-10-15 00:49:15 +02:00
Ricki Hirner
419d732195
Process recurring events, exceptions etc. 2015-10-14 21:45:19 +02:00
Ricki Hirner
0c819c842b
Basic implementation of calendar sync. with common SyncManager 2015-10-14 18:20:51 +02:00
Ricki Hirner
d348f54deb Remove legacy calendar/task/WebDAV code 2015-10-14 13:38:18 +02:00
Ricki Hirner
c2e9b27831 New DebugInfoActivity
* DebugInfoActivity shows and allows to share sync exceptions
* log sync phase
2015-10-14 12:23:02 +02:00
Ricki Hirner
808958a69b README changes 2015-10-13 11:27:33 +02:00
Ricki Hirner
bd77a5be63 Integrate MemorizingTrustManager by Georg Lukas 2015-10-13 02:34:24 +02:00
Ricki Hirner
ab34def8b0 Contacts sync logic
* download external resources (contact images)
* improve ETag handling
* contacts: set UNGROUPED_VISIBLE to 1
2015-10-12 14:16:26 +02:00
Ricki Hirner
d024cdb495 Contact synchronization logic
* use VERSION_CODE and buildTime from BuildConfig
* new HTTP User-Agent, VCard PRODID values
* contact sync: store CTag in SyncState
* sync logic: upload contacts, check CTag, multiget
2015-10-12 01:59:05 +02:00
Ricki Hirner
4f7f3b851a New sync logic for ContactsSyncAdapter, using dav4android and vcard4android 2015-10-11 22:34:03 +02:00
Ricki Hirner
7f4b4855a0 First implementation of CardDAV sync with dav4android and vcard4android
* try to get rid of Apache Commons
2015-10-10 23:30:38 +02:00
Ricki Hirner
bc2d1ba96d Resource detection with dav4android
* handle authentication (only Basic auth yet)
* rewrite DavResourceFinder to use dav4android
2015-10-10 15:47:44 +02:00
Ricki Hirner
0bc1a8178a First use of dav4android for resource detection
* replaced Apache httplib by gradle version because it will be removed completely anyway
2015-10-10 02:15:53 +02:00
Ricki Hirner
d0b928a93d Make well-known URLs work again when user enters an initial context path 2015-09-22 12:19:39 +02:00
Ricki Hirner
b0163e16cd Merge branch 'french_translations' of https://github.com/callmemagnus/davdroid 2015-09-15 17:53:23 +02:00
Ricki Hirner
98899ab27b Fix UI crash bug 2015-09-15 17:37:36 +02:00
Magnus Anderssen
e4e1053f77 Added missing french translations 2015-09-06 21:22:43 +02:00
rfc2822
bcd2e8d4da Merge pull request #628 from gjtoth/master
Hungarian translation updated.
2015-09-06 13:16:02 +02:00
Ricki Hirner
a198309df5 Version update to 0.8.4.1
* minor (crash) bug fixes
* updated translations
2015-08-31 16:31:12 +02:00
Gábor J.Tóth
c1a26fbbb7 Hungarian translation updated. 2015-08-28 17:46:24 +02:00
Ricki Hirner
5bf3aad575 Version bump to 0.8.4 2015-08-25 22:06:33 +02:00
Ricki Hirner
97ae121331 Exception handling, verbose TLS logs
* handle IllegalArgumentException in Tasks provider (show LocalStorageException notification) (closes #601)
* add more verbose TLS cipher logs (see #608)
2015-08-25 22:04:45 +02:00
Ricki Hirner
31f5be01b4 ical4j update, clean up XML requests
* ical4j update to 2.0-beta1 (fixes #509, fixes #606)
* only run sync adapters in :sync process, set thread context class loaders appropriately
* remove "class" attribute from XML requests (fixes #615)
2015-08-25 21:18:29 +02:00
Ricki Hirner
d7fff8a760 Handle attendees and reminders for exceptions of recurring events 2015-08-10 11:54:05 +02:00
Ricki Hirner
faeb3b7dd0 Refactoring
* VEvent: don't set LAST-MODIFIED to sync time (should be last modification time which is not available)
* ignore 403 Forbidden when uploading (can happen on certain scheduling conditions)
2015-08-10 00:33:26 +02:00
Ricki Hirner
fc1874af85 Remove unnecessary getters/setters
* remove getters/setters for protected fields when they're only accessed from package scope
* version bump to 0.8.3
2015-08-09 20:02:37 +02:00
Ricki Hirner
be80b6fde8 Improve ATTENDEE/ORGANIZER handling 2015-08-08 15:39:58 +02:00
Ricki Hirner
072c763dec Process Content-Type character set information (fixes #594) 2015-08-06 15:57:06 +02:00
Ricki Hirner
6ad74c79f0 Improve event exception handling (always convert RECURRENCE-ID DATE-TIME to DATE when master event is all-day) 2015-08-06 14:11:39 +02:00
Ricki Hirner
01d1b1a6c0 Send used VTIMEZONEs with VTODOs 2015-08-03 16:54:10 +02:00
Ricki Hirner
1c461e9d13 Refactoring
* WebDavResource: properties in separate subclass
* improve time zone handling
* always provide task list color
2015-08-03 15:53:19 +02:00
Ricki Hirner
5ec4dbb9e7 Send charset information with MIME type when uploading VCard/3.0 resources 2015-08-02 16:35:02 +02:00
Ricki Hirner
3225a4bbc1 Detect VCard/4 support per sync, too 2015-08-02 16:24:00 +02:00
Jaroslav Lichtblau
40c6643b41 Czech translation update
for davdroid
2015-08-02 12:33:41 +02:00
Ricki Hirner
b3afe48179 Added uninstall warning in "Install Tasks app" string (fixes #589) 2015-08-02 09:29:28 +02:00