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

767 Commits

Author SHA1 Message Date
Tom Hacohen
fe7aa2208b Event invitations: add a button to send an email invite from the journal item view. 2019-01-08 19:46:59 +00:00
Tom Hacohen
7b0cdff9dc Email invitation: move the code to handle the invitation generation to a different file. 2019-01-08 18:42:42 +00:00
Tom Hacohen
0e8dc1d266 Event invitation: use a random uid rather than the event uid when sharing.
The reason for that, is that in some cases it stops working for certain
files, so using a different filename works around that issue.

I haven't managed to resolve that unfortunately.
2019-01-08 18:27:29 +00:00
Tom Hacohen
8af6858422 Tasks: add ability to create, edit, deleted and view task journals 2019-01-08 11:38:10 +00:00
Tom Hacohen
3996f1824d Migrate from AsyncTask to anko's doAsync. 2019-01-08 01:07:20 +00:00
Tom Hacohen
c27a8b44ac Catch IllegalStateExceptions in the account changed receiver.
These are bad, and shouldn't happen, but ignoring them is not
the end of the world, especially since I plan on overhauling this
code very soon (probably remove).

So for now, we'll just ignore them.
2019-01-07 21:53:15 +00:00
Tom Hacohen
7f2ab44bca Implement Tasks support via OpenTasks
This adds support for tasks via OpenTasks.
https://github.com/dmfs/opentasks

Need the OpenTasks client for it to be used.

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

Fixes #7
2019-01-07 11:18:15 +00:00
Tom Hacohen
dbe3730fe4 ACRA: Only send reports in the body if Protonmail is installed. 2019-01-07 01:35:03 +00:00
Tom Hacohen
633e1228f0 Fix issue with sync on devices that don't require the hash hack.
This commit also unifies the handling so such issues don't recur.
2019-01-06 21:45:42 +00:00
Tom Hacohen
93f0e17144 Fix account and collection deletion on some devices.
Fixes #55
2019-01-06 21:13:26 +00:00
Tom Hacohen
34939ee7e3 Account Settings: drop very old upgrade path.
The cod was rotting and people should already be very much up
to date.
2019-01-06 21:13:26 +00:00
Tom Hacohen
b88ad593d7 Fix issue with deleted entries being re-added. 2019-01-06 21:13:26 +00:00
Tom Hacohen
b2f7cc811f Fix applying of groups from journal. 2019-01-06 21:13:26 +00:00
Tom Hacohen
c4daed9391 Upgrade vcard4android and ical4android.
This is a monster commit because to be honest, it's a monster change. It
was impossible to do it in smaller steps because things just wouldn't
compile.
We couldn't do the migration step by step because they moved to Kotlin
which was causing a lot of troubles.

Now we are all on Kotlin, so things should hopefully work just fine.
2019-01-06 21:12:09 +00:00
Tom Hacohen
cd33b5def8 Kotlin: move resources to Kotlin (almost compiles).
It just needs a few tiny wrappers around some public statics. I'm not
doing that because it'll sort itself out the moment we update
vcard4android and ical4android.
2019-01-06 21:06:45 +00:00
Tom Hacohen
5d05a2e6e0 Acra: disable for debug builds. 2019-01-06 21:06:45 +00:00
Tom Hacohen
6af90b38ae Acra report: include installFrom. 2019-01-05 22:32:03 +00:00
Tom Hacohen
f46bccab8e SSLSocketFactory: import newer settings from DAVDroid. 2019-01-05 16:52:15 +00:00
Tom Hacohen
1901cf1bb1 Fix sharing calendar email to not be case sensitive.
Fixes #46.
2019-01-05 16:35:42 +00:00
Tom Hacohen
3f6147d4ad Acra: Don't report as file for now so it works with ProtonMail 2019-01-05 16:25:59 +00:00
Tom Hacohen
16b7747d9f Update ACRA. 2019-01-05 15:50:34 +00:00
Tom Hacohen
e38c720d1a Kotlin: more kotlin migration. 2019-01-05 15:40:17 +00:00
Tom Hacohen
f0a0717541 Kotlin: more kotlin migration. 2019-01-05 15:27:45 +00:00
Tom Hacohen
093eee6409 Kotlin: more kotlin migration. 2019-01-05 15:23:39 +00:00
Tom Hacohen
26715f2f34 Kotlin: fix some wrong null assertions. 2019-01-05 13:03:33 +00:00
Tom Hacohen
d98d91a67f Revert "Don't rely on LOGIN_ACCOUNTS_CHANGED_ACTION"
Actually, let's not make this change just yet so we are sure we haven't
broken anything.

This reverts commit dda23fb484.
2019-01-05 13:03:33 +00:00
Tom Hacohen
dda23fb484 Don't rely on LOGIN_ACCOUNTS_CHANGED_ACTION
Based on the davdroid commit: 1f7298f947a4878e86fcba0c6722e34b03cb63c6
2019-01-05 12:26:38 +00:00
Tom Hacohen
0b21502645 Widgets: use the support library edit password widget. 2019-01-05 12:01:00 +00:00
Tom Hacohen
6ef78085bd Kotlin: more kotlin migration. 2019-01-05 11:45:17 +00:00
Tom Hacohen
4d516c5fe1 Kotlin: more kotlin migration. 2019-01-05 11:44:14 +00:00
Tom Hacohen
4c4c94ca1c Kotlin: more kotlin migration. 2019-01-05 11:29:03 +00:00
Tom Hacohen
f77063ff1a Kotlin: more kotlin migration. 2019-01-05 11:21:26 +00:00
Tom Hacohen
c26ae4fba6 Kotlin: more kotlin migration. 2019-01-05 10:05:31 +00:00
Tom Hacohen
943611a511 Kotlin: more kotlin migration. 2019-01-05 10:01:36 +00:00
Tom Hacohen
959bc4992b Kotlin: migrate to kotlin. 2019-01-05 09:18:25 +00:00
Tom Hacohen
828254a1f7 Event invites: gracefully handle missing timezone information.
The code before didn't fallback to UTC nicely and was causing a crash.
2019-01-04 20:33:06 +00:00
Tom Hacohen
12c41b450c Contact import: Don't list accounts with an empty account name or type. 2018-12-25 09:58:22 +00:00
Tom Hacohen
25759a4e86 Fix typo in error message. 2018-12-25 09:54:01 +00:00
Tom Hacohen
e20e79e840 Fix bug causing group duplication every time a group is changed.
The bug was causing a new group to be created every time a group was changed
instead of just changing the group itself.
2018-12-25 09:19:20 +00:00
Tom Hacohen
4184751664 Event invites: fix issue with times showing wrong across timezones.
Fixes #52.
2018-12-24 12:05:45 +00:00
Ricki Hirner
0a6fd197d3 Add group memberships to contacts.xml so that they can be edited with some Contacts apps
Also includes:
Add maxOccurs to contacts.xml group membership (allows editing of contacts again)
2018-12-24 10:42:51 +00:00
Tom Hacohen
cd58a6bcac Event invites: don't hardcode the locale when formatting time. 2018-12-05 14:58:26 +00:00
Tom Hacohen
b93c5228c7 Event invites: add location information to email summary. 2018-11-30 11:18:41 +00:00
Tom Hacohen
f5d08e07bb Event invites: add timezone information to email summary. 2018-11-30 11:18:35 +00:00
Tom Hacohen
3efa76579e Fix crash with missing contact downloader when importing. 2018-10-30 21:34:54 +00:00
Tal Hacohen
47b04132a6 Add settings to control the change notifications 2018-10-26 14:23:45 +01:00
Tom Hacohen
0bd459c280 Journal contact view: correctly handle partial dates. 2018-09-20 10:37:51 +01:00
Tom Hacohen
5e568ec43e Fix crash when viewing contacts with empty (but existing) nicknames. 2018-09-18 12:00:05 +01:00
Tom Hacohen
34b8fce5c4 Move to the new method of getting end date.
This also fixes the issues with events having both an end date
and duration.
2018-09-06 16:28:52 +01:00
Tom Hacohen
8a868c1c1a Add a "Sent by" line to the calendar invite email. 2018-08-21 10:00:21 +01:00
tal
cb54e51280 Add invite attendees notification for new and modified calendar events 2018-08-21 09:45:02 +01:00
tal
20feee0df7 Add notification channel to all notifications
Android SDK 26 requirs setting a channel in order to show nofiticaitons
2018-08-21 09:45:02 +01:00
tal
182d6ebe66 Restore WebView state on orientation changes
This fixes #28
2018-04-16 17:18:09 +01:00
Tom Hacohen
8982e4a800 Don't crash when deleting a non-existent record
This shouldn't even happen, but it apparently happened to a user. This
commit changes it so it logs a warning instead of crashing.
2018-04-11 10:17:31 +01:00
Tom Hacohen
5a64bd90cc Fix adding members on some devices.
Networking is not allowed on the main thread, and on some devices with strict
mode on, even the creation of the http handler is enough to trigger an
exception (i.e even if not used from the thread).

This moves even the creation to a thread which fixes the issue.
2018-04-10 13:38:28 +01:00
Tom Hacohen
1e7a38159f Increase HTTP logging verbose level.
HTTP requests and responses are logged when logging to file. Until now,
only the existence of requests was logged. With this change, also the
content and headers of the requests and responses is printed to the log.
2018-02-06 19:15:04 +00:00
Tom Hacohen
a28b46f8f9 Don't print content of added/changed contacts and groups.
Before this change we were printing added/changed contacts and groups
to the adb log. This is not a big deal on its own, but now since we
have ACRA, we share these logs on crash (if user approves) so it's
better to remove personal information to make sure it's not being
accidentally shared.
2018-01-25 10:51:50 +00:00
Tom Hacohen
730e5c0119 Debug Info: improve warning text about personal information. 2018-01-24 17:23:59 +00:00
Tom Hacohen
2f1a9281b8 SyncManager: change pushing entries in chunks to also process in chunks
Android annoyingly kill sync managers that don't have a significant
amount of network traffic within a given minute. This means that if we
have a lot of entries to process, we may get killed by the system if we
have a lot of entries to prepare for pushing. We were sending in chunks,
for network performance, but now we make the whole process work in
chunks.

This should fix an issue reported by a user who imported a significant
amount of contacts in one go.

This is similar to the issue fixed for fetch in:
f7104bbcef
2018-01-24 16:02:20 +00:00
Tom Hacohen
5a2f8260c7 Sync: don't re-apply local entries.
We were doing it to make sure we don't get overridden by
server changes. But we already changed this behaviour in
the past, so this call was just doing nothing and slowing
down the sync.
2018-01-24 15:22:08 +00:00
Tom Hacohen
90434e0d82 ACRA: Share more logs (500 last lines instead of 100) 2018-01-24 12:00:38 +00:00
Tom Hacohen
64a86e50d4 Debug info: when sharing, also share the full ACRA info. 2018-01-24 11:58:40 +00:00
Tom Hacohen
2e92422ea6 Import: fix showing the import finished dialog. 2018-01-22 16:40:48 +00:00
Tom Hacohen
c93e21e2d3 Contact import: fix accidental double-import. 2018-01-22 16:40:48 +00:00
Tom Hacohen
536bef9815 Import: always import, don't try to find duplicates based on UID.
This was causing issues when importing from a Google account in some cases
because we were getting weird UIDs.

This was also problematic when importing from other sources that
reported weird UIDs.
2018-01-22 16:40:48 +00:00
Tom Hacohen
dd96ea38d0 Remove lombok usage entirely, but keep it for the submodules 2018-01-22 16:40:36 +00:00
Tom Hacohen
1046164b83 Delombokify: remove Setter/Getter usages. 2018-01-19 19:44:03 +00:00
Tom Hacohen
13c718977e Delombokify: remove RequiredArgsConstructor usages. 2018-01-19 19:26:25 +00:00
Tom Hacohen
6ab3401bf5 Move journal owner tests to the journal and make case insensitive. 2018-01-19 19:01:47 +00:00
Tom Hacohen
b8299a81ce Add ACRA for crash reporting.
This will make it easier to identify and fix crashes.

Until now we relied on user to automatically figure out if the app has
crashed and gather debug info manually. This didn't work well,
especially in places like "import" where they just assumed the import
finished successfully if there was a crash.

This change makes it so whenever there's a crash, the email app is
opened with a template email and the stack trace attached.

This should make it easier for us to detect and fix issues.

Important to note: nothing is sent automatically.
2018-01-19 15:40:12 +00:00
Tom Hacohen
99afd923d5 Add detection and a pop-up of vendor specific bugs.
Some device manufacturers (I'm looking at you Xiaomi!) made some changes
to Android that break content providers and other background apps. This
affects a few apps, including DAVdroid from which EteSync is derived.

This change attempts to automatically detect such devices, alert users
and point them to the relevant FAQ entry.

I've already had to deal with a few bug reports stemming from this
issue, so it's good to have this handled automatically.

This addresses #22
2018-01-18 11:42:27 +00:00
Tom Hacohen
9277581607 File logging: make it more obvious how to get rid of the notification.
Fixes #23.
2018-01-17 14:26:08 +00:00
Tom Hacohen
9d12e9c809 Fix confusing error message when creating/fetching user info. 2018-01-07 17:29:10 +00:00
Tom Hacohen
3a1b980384 Improve error message when using the wrong password on account creation. 2017-12-16 14:46:00 +00:00
Tom Hacohen
cf15bc39c0 Update compile and target sdk version. 2017-12-11 17:28:49 +00:00
Daria Szatan
18143d8d1f Update polish strings.xml 2017-12-01 09:42:11 +00:00
Tom Hacohen
7a40cf615e Improve empty joural text. 2017-11-29 13:06:41 +00:00
Tom Hacohen
0e6ee9c101 Fix content provider leak. 2017-11-29 13:05:11 +00:00
Tom Hacohen
71563eddfe Import: fix crash when import finishes while the app is minimised. 2017-11-29 10:05:48 +00:00
Tom Hacohen
c2521bf556 Fix DB resource leak.
It doesn't affect anything in a noticeable way, but still, obviously,
   worth fixing.
2017-11-29 09:59:16 +00:00
bla-ke
e4eb0e5f35 [Update] Polish translation 2017-11-26 11:44:56 +00:00
bla-ke
4e4c1847bd Polish translation 2017-11-26 11:44:56 +00:00
Tom Hacohen
f6007019e8 Add support for setting custom servers
This makes it easier to host your own etesync server.
2017-11-19 20:26:19 +00:00
Ricki Hirner
f2825b3fb3 Also support for anniversaries without a year. 2017-11-14 20:58:50 +00:00
Tom Hacohen
0d508854e9 Fix compilation following the force language commit. 2017-09-26 18:46:10 +01:00
Tal Hacohen
d1fa0114e6 Add debug option to force language.
Resolves #3 Add option to force a language
2017-09-12 17:35:28 +01:00
Tal Hacohen
f631fe4452 Notify the user on journal modification.
This Resolves #13.
2017-09-08 18:33:20 +01:00
Ricki Hirner
02e44b0ab5 Support for birthdays without year 2017-05-31 17:05:17 +01:00
Tom Hacohen
c1979846bd Service test: test inviting members to journals.
The test server now support multiple test users so we can now test this
code path (was temporarily removed).
2017-05-30 16:26:14 +01:00
Tom Hacohen
09685d08e3 LocalGroup: correctly check if a group is local only or not. 2017-05-16 14:28:39 +01:00
Tom Hacohen
873fc0ad0c Journal item activity: Improve presentation of groups. 2017-05-16 12:24:21 +01:00
Tom Hacohen
c54baccdc7 SyncManager: add back support for contact groups
Groups are saved as separate vCards. We removed support for groups to
speed up development and deferred adding them back until there was
demand.

There is demand now, and also, not having this support resulted in the
sync not working, not just groups not supported.

Many thanks to "359" (this user's preferred alias) for investigating and
reporting this issue.
2017-05-16 12:05:26 +01:00
Ricki Hirner
5031efe845 Remove "ical4android" from iCal PRODID (same format as for VCard) 2017-05-16 11:19:45 +01:00
Ricki Hirner
7391dfd656 Remove "vcard4android" from VCard PRODID to avoid folding for better compatibility 2017-05-16 11:19:45 +01:00
Tom Hacohen
7ddb11c670 Change PRODID to better match the davdroid format. 2017-05-16 11:19:45 +01:00
Tom Hacohen
04e50459d4 Syncmanager: fix an issue causing local cache corruption when failing to push.
Due to a logical issue in the code, new journal entries were added to the
local cache after they've been created locally, and not after they've
been added to the server. Under normal circumstances this doesn't pose a
problem, however when pushing to the server fails, the local cache
would have the new entries as if they were saved on the server, causing
the app to think there has been a corruption on the server (as entries
should never be removed from the server) and halt the sync.

This change makes it so the entries are saved to the local cache only
after they've been saved on the server.

Note: this was not spotted until now because it relies on an unfortunate
specific sequence of events. It only happens when creating journal
entries, and when trying to sync them successfully connecting to the
server to fetch the journal list and the content of the journal itself,
and only failing when coming to push the journals.

Many thanks to "359" (this user's preferred alias) for reporting the
issue that resulted in this fix.
2017-05-15 16:17:48 +01:00
Tom Hacohen
30fa0128b6 AsyncTask: cancel background tasks when the fragments are destroyed.
I assumed the lifecycle of the fragment and the task were tied because they
are tied to the instance, but it looks like I was wrong. We need to
explicitly cancel tasks.
2017-05-12 20:28:47 +01:00
Tom Hacohen
28aa80fe07 Syncmanager: don't try to fetch again if we already fetched everything.
This patch changes the fetching so if the last fetch returned less entries
than the limit, we don't try and fetch again because we already know there
are no others left.
2017-05-12 19:27:05 +01:00
Tom Hacohen
2b0b35c9be Service test: inviting owner to a journal is no longer allowed.
This is a new validation on the server, so this hack we did is no longer
possible.
2017-05-12 14:48:19 +01:00
Tom Hacohen
f7104bbcef Syncmanager: fetch journal entries in chunks.
Before this commit we used to fetch the whole journal entry list in one
go, which caused issues in two cases:
1. On slow internet connections the download may fail.
2. With big journals: Android interrupts sync managers if they don't
    perform any significant network traffic for over a minute[1],
    and because we would first download and only then process, we would
    sometimes hit this threshold.

Current chunk size is set to 50.

1: https://developer.android.com/reference/android/content/AbstractThreadedSyncAdapter.html
2017-05-12 14:36:43 +01:00