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