Commit graph

2024 commits

Author SHA1 Message Date
Ricki Hirner f1a1d0efd8 Fix bug where sync isn't possible as soon there's any connection without INTERNET (bitfireAT/davx5#370)
Fix bug where sync wasn't possible as soon there's any connection without INTERNET (bitfireAT/davx5#369)
2023-09-07 00:29:23 +02:00
Ricki Hirner 56deab70ee Version bump to 4.3.6 2023-09-06 16:50:09 +02:00
Sunik Kupfer 5640250359 Wait an appropriate delay before SyncWorker retries after soft errors (bitfireAT/davx5#337)
* Use appropriate delayUntil value for retrying syncs on 503s.

Crop server suggested retryAfter value to self defined min/max values and use a reasonable default value if non-existent.

* Add tests for getDelayUntil

* Wait appropriate delay, before retrying sync after a soft error happened

* Increase max and default sync delays after soft errors

* Increase initial backoff time for SyncWorker retries

* Minor getDelayUntil changes

* Minor changes

- store delayUntil in seconds
- pass duration instead of timestamp to Thread.sleep
- other minor changes

* Use Instant instead of Long timestamps

* Correct calculation of blocking duration

* Indicate soft error occurred on 503 server message

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-09-05 20:30:52 +02:00
Ricki Hirner b670979f12 Fetch translations from Transifex 2023-09-05 20:30:30 +02:00
Ricki Hirner 251cf1b2e9
Update dependencies (including vcard4android), bump version to 4.3.6-rc.1 2023-09-05 10:42:33 +02:00
Ricki Hirner 4ad54cd28b
Update dependencies (including cert4android and vcard4android) (bitfireAT/davx5#360)
* Update dependencies (including cert4android and vcard4android)

* Migrated to new version of ical4android

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Increased compileSdk

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Upgraded browser

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Only use `appInForeground` for `customCertsUi`

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Removed unnecessary variable and fixed trust manager

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Cleaned up trust manager factory

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Update dependencies (including cert4android and vcard4android)

* Migrated to new version of ical4android

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Increased compileSdk

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Upgraded browser

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Only use `appInForeground` for `customCertsUi`

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Removed unnecessary variable and fixed trust manager

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Cleaned up trust manager factory

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Minor changes

* Fixed build for SDK 34

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Migrated certificate trusting

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* NetworkConfigProvider: handle invalid trusted certificate

---------

Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Arnau Mora <arnyminerz@proton.me>
2023-09-05 10:41:54 +02:00
Sunik Kupfer 1c419cd75c
Add setting to ignore VPNs at connection detection (bitfireAT/davx5#356)
* Add setting to ignore VPNs at connection detection

* Minor changes

- move methods to ConnectionUtils to keep SyncWorker class compact
- always use "ignore VPNs" as Boolean
- other minor changes

* Show ignore VPNs setting only below api lvl 23

* Change strings

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-09-05 10:38:38 +02:00
Arnau Mora 795ae49da4
SyncWorker "soft error (max retries reached)" notification confusing for users (bitfireAT/davx5#353)
* Sync error notification dismiss

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* FIXME

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Added click intent

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Delayed error info

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Added tag for max retries

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Reduced priority

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Removed max retries tag

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Using account name as tag

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Added authority to notification tag

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Added account type to notification tag

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Changed priority to min

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

---------

Signed-off-by: Arnau Mora <arnyminerz@proton.me>
2023-09-05 10:37:08 +02:00
Arnau Mora bd7b2714d2
Upgrade AGP to 8.1.1 (bitfireAT/davx5#355)
* Upgrade AGP to 8.1.1

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Upgrade Kotlin and dependencies

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Downgrade browser

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

---------

Signed-off-by: Arnau Mora <arnyminerz@proton.me>
2023-09-05 10:37:00 +02:00
Ricki Hirner 273deecbe4 Update dependencies 2023-08-16 22:59:20 +02:00
Arnau Mora a375a16edf Added tooltip to sync collections FAB (bitfireAT/davx5#340)
* Added tooltip to sync collections fab

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Greyscale tint for collections sync FAB

* Always use TooltipCompat for FAB tooltips

Closes bitfireAT/davx5#339

---------

Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Sunik Kupfer <kupfer@bitfire.at>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-08-15 18:23:27 +02:00
Sunik Kupfer 4ce33e949b Use AccountManager.setAndVerifyUserData extension method, instead of setUserData (bitfireAT/davx5#344)
Hopefully fixes bitfireAT/davx5#308

* Add new setAndVerifyUserData extension function to AccountManager
* Use new setAndVerifyUserData extension function instead of insecure setUserData
* Update KDoc [skip CI]

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-08-15 18:23:00 +02:00
Ricki Hirner fcb9d7f560 Fetch translations from Transifex 2023-08-07 20:45:55 +02:00
Ricki Hirner 3709c2ab32 Version bump to 4.3.5.2 2023-08-07 20:44:00 +02:00
Ricki Hirner 8aeb2d5064 Fix onPerformSync crash on InterruptedException (bitfireAT/davx5#343)
- use Kotlin and CompletableDeferred instead of Java synchronization
- signal cancellation by completing CompletableDeferred instead of Thread.currentThread.interrupt()
2023-08-07 20:43:51 +02:00
Arnau Mora f806122b00 Upgrade AGP to 8.1 and configure per app language (bitfireAT/davx5#338)
* Upgraded AGP

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Enabled automatic locale config generation

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Added fallback language

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Added legacy service

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Added `Accept-Language` header to custom tabs

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Nextcloud Login Flow/Google OAuth: also send language tag for default locale

---------

Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-07-28 10:53:57 +02:00
Ricki Hirner 4f192c253d Use KSP for Room (bitfireAT/davx5#333) 2023-07-27 18:20:44 +02:00
Ricki Hirner 7038bbf70a
Google OAuth: fix manifest merging so that intent-filter for OAuth callback is included again (#367) 2023-07-27 18:13:57 +02:00
Ricki Hirner b7e00fac40 Fetch translations from Transifex 2023-07-22 12:23:44 +02:00
Ricki Hirner 13d9ce089b Bump version to 4.3.5.1 2023-07-22 12:22:28 +02:00
Ricki Hirner d74e8da5c1 Update dependencies 2023-07-22 12:22:26 +02:00
Arnau Mora a2b633edc0 Updated Google login button (bitfireAT/davx5#332)
* Updated Google login button

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Moved Google G logo file

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Changed background color

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Amend warning sign [skip CI]

---------

Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-07-22 12:22:22 +02:00
Ricki Hirner 162c9effe0 Update to latest dav4jvm (uses Java 8 Time API) (bitfireAT/davx5#329)
Fixes WebDAV file timestamps always being null (see bitfireAT/dav4jvm#22)
2023-07-14 23:11:44 +02:00
Arnau Mora c62874a34b Make "Refresh collection list" more visible (bitfireAT/davx5#266)
* Added refresh collections fab

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Added listener for clicks on refresh collections fab

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Adjusted sizing

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Updated tooltip and description for collections sync

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Removed Snackbar

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Added warning for null serviceId

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Changed refresh collections service id fetching method

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Tooltip updates on refresh collections list

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Migrate to ViewPager2; show "Refresh collections" for WebCal, too

* Added refresh collections fab

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Added listener for clicks on refresh collections fab

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Adjusted sizing

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Updated tooltip and description for collections sync

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Removed Snackbar

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Added warning for null serviceId

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Changed refresh collections service id fetching method

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Tooltip updates on refresh collections list

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Migrate to ViewPager2; show "Refresh collections" for WebCal, too

* Changed collections refresh action update method

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Use lambda syntax for observers

---------

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
Co-authored-by: Sunik Kupfer <kupfer@bitfire.at>
2023-07-14 23:11:32 +02:00
Ricki Hirner 36e377001f
Clean up unused resources
- also fixes some wrong resources
2023-07-11 11:47:16 +02:00
Ricki Hirner 400d46fce2
Amend comments for repository identity 2023-07-10 15:22:24 +02:00
Ricki Hirner ec34da1ace
Google Login: add Limited Use policy (bitfireAT/davx5#327) 2023-07-10 15:14:21 +02:00
Ricki Hirner bb6ed7ec64
Fetch translations from Transifex 2023-07-10 15:13:23 +02:00
Ricki Hirner 042b2371fb
Version bump to 4.3.5 2023-07-10 15:12:04 +02:00
Ricki Hirner 5272943a05
Google: use new API base URL (bitfireAT/davx5#324)
Google: use new API base URL (finds secondary calendars and homesets)
2023-07-07 11:30:22 +02:00
Sunik Kupfer 318939e970
Ensure internet connection before syncing (bitfireAT/davx5#305)
* Comment out failing test

* Check internet connection before syncing for API 23+

* [Skip CI] Amend comments

* Comment out whole test class

* Comment out whole test class

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-07-06 23:45:08 +02:00
Ricki Hirner 1478306e54
Comment out failing test 2023-07-06 23:45:06 +02:00
Sunik Kupfer c7ff42c03f
[Google OAuth] fix Re-authentication crash (bitfireAT/davx5#319)
* Hide/Show auth settings instead of removing them prevents NPE

* Provide original OAuth login email as default value for GoogleLoginFragment started from account settings

* Account settings: explicitly trim empty user name to null

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-07-06 23:45:01 +02:00
Ricki Hirner 17ccb305f9
Configuration detection: allow null Credentials (anonymous login) (bitfireAT/davx5#323) 2023-07-06 23:44:11 +02:00
Sunik Kupfer 37a7ebb9c0
Fix test again (bitfireAT/davx5#321) 2023-07-06 23:44:08 +02:00
Sunik Kupfer 1c403d171c
Fix test (bitfireAT/davx5#320) 2023-07-06 23:44:00 +02:00
Arnau Mora 81273f028e
Added known base urls (bitfireAT/davx5#315)
* Added known base urls

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Change order

---------

Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-07-03 12:07:57 +02:00
Sunik Kupfer fac68680ee
Block sync adapter's onPerformSync until SyncWorker finishes (bitfireAT/davx5#278)
* Block sync framework until SyncWorker finishes

* Bump version code for 4.3.3 (previous version code was never released publicly)

* Fetch translations from Transifex

* Release internal version automatically [skip ci]

* Update periodic sync workers when "Sync only on WiFi" flag is changed (#282)

* Update periodic sync workers when "sync only on WiFi" flag is changed
* Remove BootCompletedReceiver which was only needed to repair sync intervals (not required with WorkManager anymore)

* Bump version code to 403030006 (stays 4.3.3)

* Use unique worker name, Java notify/wait and observeForever

* Remove observer when sync finished

* Catch and ignore, but log interruption exceptions

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-07-03 12:07:39 +02:00
Ricki Hirner 46488f1618
Version bump to 4.3.5-alpha.1; update Compose; move GoogleLoginFragment to fix build 2023-06-30 13:51:09 +02:00
Sunik Kupfer 0f92b0fb05
291 clean up oauth mess (bitfireAT/davx5#307)
* Move GoogleOAuth members into GoogleLoginFragment

* Require login flow capable browser and notify user if missing

* Receive AppAuth redirects only in standard and gplay flavor

* Set davx5 as user-agent for AppAuth connection builder

* Re-authentication in Account settings

* Catch unauthorized exceptions at collection refresh and notify user to re-authenticate

* Suggest email address on account creation

* Set contact groups default setting as per-contact categories for oauth logins

* Add authentication to debug info, minor other changes

* Better error handling; don't pre-set group type

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-06-30 12:53:16 +02:00
Ricki Hirner 6a2c366358
Update dependencies; CI: don't checkout submodules 2023-06-28 22:42:24 +02:00
Arnau Mora 4ba50b969a
Migrated to ical4android library (bitfireAT/davx5#302)
* Migrated to ical4android library

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Manually excluded Groovy

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Updated ical4android

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Update dependencies

* Added more exclusions

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Also update Room [skip CI]

---------

Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-06-28 22:30:53 +02:00
Arnau Mora 11c8866614
Security: check/fix DebugInfoActivity: Uncontrolled data used in path expression (bitfireAT/davx5#267)
* Passing file name to `EXTRA_LOG_FILE` instead of path. Replaces illegal chars

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Removed log file extra

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Removed log file extra

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Added more error logging

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Update KDoc, remove strings

* Moved ViewModel initialization to Factory

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Changed ViewModel factory

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Updated annotations

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Handle EXTRA_LOGS correctly

---------

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-06-28 12:52:57 +02:00
Arnau Mora 3ba463dbd4
Removed Twitter from navigation drawer (bitfireAT/davx5#312)
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
2023-06-26 08:53:19 +02:00
Arnau Mora f820e92d15 Integrate vcard4android as an android library (bitfireAT/davx5#300)
* Migrated to external dependency for vcard4android

Signed-off-by: Arnau Mora <arnyminerz@proton.me>

* Removed vcard4android submodule

* Update vcard4android version, remove from settings.gradle

---------

Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-06-14 14:21:10 +02:00
Ricki Hirner 1b521e3c17 Bump version code 2023-06-13 21:01:10 +02:00
Ricki Hirner 50cb223bb6 DavResourceFinder: make input arguments explicit (bitfireAT/davx5#298) 2023-06-13 21:00:56 +02:00
Ricki Hirner 764c382af3 Fetch translations from Transifex 2023-06-13 18:47:08 +02:00
Ricki Hirner aed721409f Bump version to 4.3.4.1 2023-06-13 18:43:06 +02:00
Ricki Hirner 24a3954d75 Google OAuth: fix endless loop in Fragment (bitfireAT/davx5#295)
Fix endless loop
2023-06-13 18:40:49 +02:00
Sunik Kupfer ba36d01e11 [Google OAuth] Support custom Client IDs (bitfireAT/davx5#294)
* Support custom Client IDs

* Refactoring

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-06-13 18:39:40 +02:00
Ricki Hirner ff4af11bcf
Minor HttpClient change 2023-06-11 14:30:48 +02:00
Ricki Hirner 66c93414c0
Fetch translations from Transifex 2023-06-11 14:30:24 +02:00
Ricki Hirner 278171dbac
Bump version to 4.3.4 2023-06-11 14:29:28 +02:00
Ricki Hirner 5b38943205
Support OAuth for Google (bitfireAT/davx5#289)
* Proof of concept (without auth state storage)
* Implement Bearer authentication, create network package
* Properly create/dispose AuthService
* Use proper ActivityResultContract
* Integrate into default login activity
* Change client ID to davx5integration@gmail.com
* Google Login: adapt login view
* Fix tests
* Don't allow empty Google account
* Move strings to resources
2023-06-11 14:17:50 +02:00
Sunik Kupfer 1b3fde0854 280 fix problematic toasts (bitfireAT/davx5#283)
* When renaming show a toast when account with new name exists already

* Replace toasts with snackbars

* Apply code styling hints

* Move lambdas out of parentheses

* Inject application instead of context

* Replace Toast with Snackbar

* Shorten messages shown in snackbars

* Show Toast in UI instead of model; use AndroidViewModel

* Move account name check out of lock; don't close activity if not successful

* Duplicate account name check: only check for our account type

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-06-09 17:26:11 +02:00
Sunik Kupfer caf7be5e11
New setting to preselect only personal collections (bitfireAT/davx5#276)
* Add new preselect_collections option and deprecate sync_all_collections option

* Optimize imports

* At refresh, decide on whether a collection should be preselected

* Add preselect_collections_blacklist setting and restriction

* Adhere to preselect_collections_blacklist setting

* Add preselect_collections values

* Also check for empty regex string and use new setting values

* Add unit tests

* Remove sync_all_collections setting and restriction

* Blacklist nextclouds recently contacted addressbook in restriction and setting by default

* Improve kdoc

* KDoc, changed setting names, minor code optimizations

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-06-06 21:03:50 +02:00
Ricki Hirner 3b2246e74b
Bump version code to 403030006 (stays 4.3.3) 2023-06-01 19:12:47 +02:00
Ricki Hirner 12902a051f
Update periodic sync workers when "Sync only on WiFi" flag is changed (bitfireAT/davx5#282)
* Update periodic sync workers when "sync only on WiFi" flag is changed
* Remove BootCompletedReceiver which was only needed to repair sync intervals (not required with WorkManager anymore)
2023-06-01 19:12:41 +02:00
Ricki Hirner bed762ab7d
Fetch translations from Transifex 2023-06-01 12:31:23 +02:00
Ricki Hirner b56dd96fd8
Bump version code for 4.3.3 (previous version code was never released publicly) 2023-06-01 12:30:11 +02:00
jgirardet cb5f722a87
Add mailo.com to known base urls (#329)
* Add mailo.com to known base urls

* fix order
2023-05-31 09:51:04 +02:00
Arnau Mora 17718a7ed8
Integrate cert4android as an android library (bitfireAT/davx5#274)
* Removed `cert4android` submodule

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Added cert4android dependency

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Update dependencies, fix invalid style

---------

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-05-30 11:10:06 +02:00
Arnau Mora 6d278b7e04
Made collection url selectable (bitfireAT/davx5#275)
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
2023-05-23 17:02:33 +02:00
Sunik Kupfer ae303e3e8d
Refactor queryHomeSets method for clarity (bitfireAT/davx5#270)
* Make it clear that the first call of recursive method queryHomeSets is for the current-user-principal home set

* Update whitespace in kdoc

* Update kdoc
2023-05-23 17:02:26 +02:00
Ricki Hirner 38cfd200b1
Fetch translations from Transifex 2023-05-22 08:27:33 +02:00
Ricki Hirner 968db83366
Version bump to 4.3.3 2023-05-22 08:26:46 +02:00
Ricki Hirner 5fee2375a5 Update dependencies, bump version to 4.3.3-rc.1 2023-05-17 18:13:27 +02:00
Sunik Kupfer a072cf0404 Add last synced time to collection properties (bitfireAT/davx5#260)
* Add last synced time to collection properties

* Show last synced time for every to the collection relevant authority

* Try finding the application name for given package name

* Resolve authority to package name before finding application label

* Use AndroidViewModel instead of ViewModel; change model LiveData to val

* Rewrite to Compose, use relative time description

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-05-17 18:13:27 +02:00
Ricki Hirner 2f1757bb78 Version bump to 4.3.3-beta.2
- minor workflow changes
2023-05-17 18:13:27 +02:00
Ricki Hirner 55ee89529f Update dependencies, including cert4android and vcard4android 2023-05-17 18:07:17 +02:00
Ricki Hirner b543dc9332 Fetch translations from Transifex 2023-05-12 10:50:46 +02:00
Ricki Hirner 28466ace46 Version bump to 4.3.3-beta.1 2023-05-12 10:49:38 +02:00
Sunik Kupfer 63f51c4b42 Account settings migration 13 to 14 (bitfireAT/davx5#262)
* AccountSettings: prevent redundant calls, move migrations to separate class

* Don't create AccountSettings while migrating

* Double thread sleep time to wait for sync framework to get disabled, and update logging

* Remove manual testing helper

* Fix tests

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-05-12 10:23:47 +02:00
Arnau Mora 9748b75671 Fixed toast threading (bitfireAT/davx5#256)
* Fixed toast threading

* Added `AndroidViewModel.context`

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Moved to `AndroidViewModel`

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Changed error invocation

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Added back constructor inject

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>

* Save Application with val instead of util method

* Use LiveData for error message

---------

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-05-11 18:41:07 +02:00
Sunik Kupfer 2ebb40b152 Implement proper network check before manual sync (bitfireAT/davx5#259)
* Implement proper network check before manual sync

Do a proper connectivity check, to show a message to the user, about the sync being scheduled for when connectivity is available, before enqueueing the SyncWorker.

* Update the sync status in accounts adapter to include pending syncs

This is relevant for when a manual sync is triggered without connectivity.

* Replace Toast by Snackbar

* Replace ViewModel by AndroidViewModel

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-05-11 18:40:29 +02:00
Ricki Hirner 2ff4b35bdb Use configuration cache to improve build speed (closes bitfireAT/davx5#248) (bitfireAT/davx5#255)
- disable per-app language preference for now (will be enabled again with bitfireAT/davx5#245)
- disable Jetifier (doesn't seem to be explicitly required for in-app rating API anymore)
- remove Locator dependency
- update ical4android
2023-05-10 13:20:57 +02:00
Ricki Hirner 7b2ffeb98e Update dependencies 2023-05-09 12:36:45 +02:00
Ricki Hirner 9917f7131a Comment out AccountSettingsTest for now because they cause strange failures 2023-05-07 08:03:21 +02:00
Ricki Hirner 1c474df606 Version bump to 4.3.3-alpha.1 2023-05-07 08:03:21 +02:00
Ricki Hirner c3cd970581 Use Jetpack Compose for AboutLibraries (bitfireAT/davx5#246)
- add JetPack Compose dependencies
- use existing XML theme as Compose MdcTheme
- update AboutLibraries to newest version (uses Compose)
- embed AboutLibraries Compose into existing Fragment layout
2023-05-07 08:03:21 +02:00
Ricki Hirner 0bed00c05a Handle InvalidAccountException in SyncAdapterService 2023-05-07 08:03:21 +02:00
Sunik Kupfer f9d6bb153c Workmanager scheduled sync (bitfireAT/davx5#216)
Closes bitfireAT/davx5#14

* extract WorkManager util functions and kdoc
* add PeriodicSyncWorker
* refactor and some kdoc
* use PeriodicSyncWorker and add todos
* allow SyncAdapter arguments to be passed to SyncWorker and have re-synchronization use SyncWorker
* handle sync cancellation in AccountSetting migration
* handle sync cancellation when account is renamed
* remove sync frameworks global sync setting and sync state awareness for the GUI
* Observe sync worker status in AccountListFragment
* Create setup for stepwise refactor of the sync adapters. This should keep the app from failing to build.
* Create new abstract BaseSyncer class for generic sync code. Adapt consumers and tests to use the new class.
* Move calender sync code to new CalenderSyncer class which is independent from the sync framework
* In CalendarSyncAdapterService pass sync requests from Sync Adapter Framework to SyncWorker
* Use CalenderSyncer in SyncWorker
* Move contacts sync code to new ContactsSyncer class.
* Move address book sync code to new AddressBookSyncer class
* Move jtx sync code to new JtxSyncer class
* Move tasks sync code to new TaskSyncer class
* Remove duplicate code in inherited sync adapters.
* Remove refactoring helper interface, duplicate generic sync code and some linting.
* Adapt tests for new Syncer class and move to the new package
* Remove remaining duplicate code in SyncAdapterService, add todos and edit kdoc.
* Move all the single line sync adapter services into one file.
* Remove concurrent sync runner code and its test, as we now use WorkManagers one time work requests.
* Remove SAF manual sync flag usage where unnecessary.
* Drop ability to prioritise collections for sync, as not used and hindering removal of sync adapter arguments.
* Pass simple string array to SyncWorker instead of bundle to simplify code.
* Restructure work query code.
* Get debug info from account settings and WorkManager.
* Write tests for PeriodicSyncWorker
* Test account creation will set a default sync interval for CardDAV and CalDAV
* Throw an exception if accountManager returns null for sync interval value
* Do proper interval check and add tests for AccountSettings
* Use work manager query to determine whether work is in a specific state
* [WIP] Add test to check that task provider is configured correctly on account creation
* Edit test checking that task sync is configured correctly on account creation with/without installed task app(s), by mocking TaskUtil
* Edit test such that it does not require a flaky flag
* Remove periodic sync when tasks app is uninstalled
* Bring back content triggered syncs
* Rename enqueueSyncWorker method to enqueue only for clarity
* Enable SyncAdapterFramework to cancel running SyncWorker
* Add test ensuring that SyncWorker.onStopped() interrupts the running sync thread
* Add retry policy sync on soft errors
* Check users sync conditions before enqueueing SyncWorker
* Add test for whether user sync conditions are treated correctly and kdoc
* Rename ambiguous shorthand "SAF" to "SyncFramework", as SAF usually means StorageAccessFramework
* Migration: Disable sync framework periodic syncs when interval is changed for specified authority
* Add Workers info to debug info
* Use WorkInfo.runAttemptCount to fail work after 20 soft errors
* Notify user if retry limit for soft errors has been reached
* Remove left over concurrency sync run tests prevention
* Migration: Continue to remove periodic sync framework syncs until user migration to PeriodicSyncWorker syncs is complete
* Kdoc and small changes
* Migration: Change to hard migration strategy
* Drop repairSyncIntervals method in favor of hard migration strategy
* Improve debug info of workers
* Remove sync framework periodic syncs, created by enabling content triggered syncs
* Change minimum sync interval to 15 min; minor other changes
* Fix tests
* Implement requested changes and update kdoc
* Add network connectivity restrictions to PeriodicSyncWorker
* Minor changes
* Move back sync classes to syncadapter package for now (can be separated later)
* Add KDoc
* Changes from review
* Rename test methods
* Add back global sync status warning

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-05-07 08:03:21 +02:00
Ricki Hirner 299fb27af4
Fetch translations from Transifex 2023-05-02 14:06:43 +02:00
Ricki Hirner 9c51dadce8
Version bump to 4.3.2 2023-05-02 13:57:31 +02:00
Ricki Hirner ae3f5c8bab
Fix ProGuard rules for R8 (AGP 8.0) 2023-05-01 11:00:37 +02:00
Ricki Hirner aa063adaba
Upgrade gradle, AGP, dependencies 2023-04-29 22:50:18 +02:00
Sunik Kupfer c5b02d2bde
Log warning if principal URL does not provide CalDAV/CardDAV service (bitfireAT/davx5#242)
* Log warning if principal URL does not provide CalDAV/CardDAV service

* Unified log messages for identical cases

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-04-20 14:01:30 +02:00
Arnau Mora 61b6cd5e2e
Disabled GPS feature requirement (bitfireAT/davx5#241)
* Disabled GPS feature requirement

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Updated GPS feature comment

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

---------

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>
2023-04-18 11:11:04 +02:00
Ricki Hirner aecabb9845
Update dependencies 2023-04-13 11:25:51 +02:00
Michael Biebl 16573e9ea6
Sync interval failure (#235)
* Fix log message

* Log a warning if repairing the sync interval failed
2023-04-12 11:41:24 +02:00
Ricki Hirner e2bfda71bc
Use large runners for CI Android tests (#306) 2023-04-12 11:39:32 +02:00
Sunik Kupfer 874ad7b1c6
Handle error responses when querying principals for display names (closes bitfireAT/#237) (bitfireAT/#238)
* Add test with inaccessible principal

* Catch and log exceptions where server resource is inaccessible

* Catch and log every HttpException
2023-03-31 13:29:20 +02:00
Sunik Kupfer fc17d0ed69
SettingsActivity resync now uses SyncWorker (bitfireAT/davx5#226)
* Alter the SyncWorker sync request to allow passing sync arguments along

* Request sync in SettingsActivity via SyncWorker instead of ContentResolver

* Don't use catch-all arguments as worker arguments

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-03-28 16:59:36 +02:00
Ricki Hirner 2f8340a646
SyncManager: fix logging string that always talked about address data even for events/tasks 2023-03-24 11:52:19 +01:00
Ricki Hirner 6050396a45
Update Transformations to new syntax (androidx.lifecycle:lifecycle-viewmodel-ktx:2.6) 2023-03-24 10:46:42 +01:00
Ricki Hirner 2503d92dca
Update dependencies, including ical4android (now ignores invalid properties)
Closes bitfireAT/davx5#165
2023-03-23 17:09:37 +01:00
Ricki Hirner 880abf024c
Fetch translations from Transifex 2023-03-20 13:10:34 +01:00
Ricki Hirner 83936b97ea
Bump version to 4.3.1.1 2023-03-20 12:58:10 +01:00
Ricki Hirner 50dbd66d3a
Version bump to 4.3.1 2023-03-13 18:01:20 +01:00
Arnau Mora 17fb1168cc
Generate locales with Locator (bitfireAT/davx5#218)
* Added locator plugin

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Removed old generator

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Updated source sets

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Added locator submodule

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Removed locator submodule

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Moving scripts

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Update dependencies

* Added `LocatorPlugin`

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Fixed locales generation

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Removed buildSrc

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Using plugin from Jitpack

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Using plugin from Gradle

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Removed comment

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Remove jitpack

---------

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-03-13 18:01:13 +01:00
Ricki Hirner 89a698e7b2
Bump version to 4.3.1-beta.1 2023-03-02 13:11:09 +01:00
Ricki Hirner 6dd0af2d7a
Update Kotlin and gradle plugin 2023-03-02 13:11:08 +01:00
Patrick Lang 29a97c85ff
Fixed language selector icon for night mode (bitfireAT/davx5#223)
Update ic_language.xml

Replaced tint by  android:tint="?attr/colorControlNormal">
2023-03-02 13:11:01 +01:00
Sunik Kupfer 9fee782968
Check sync workers properly (closes bitfireAT/davx5#217) (bitfireAT/davx5#220)
* check sync workers properly

* Move utils around

* Merge live data, instead of observing in view, to recalculate account list.

* Update LiveData with same value

* Remove unused context property.

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-02-28 10:28:52 +01:00
Sunik Kupfer fe7a928064
Provide owner url in jtx collection (bitfireAT/davx5#221)
* provide owner url in jtx collection

* Updated contract, added owner displayname to collections sync

* Update ical4android

---------

Co-authored-by: Patrick Lang <72232737+patrickunterwegs@users.noreply.github.com>
2023-02-28 10:28:46 +01:00
Arnau Mora fffb029362
Fixed missing languages and wrong display (bitfireAT/davx5#214)
* Displaying language with `displayName` instead of `displayLanguage`

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Added languages from `davdroid`

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Fixed wrong locale tags

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Using Map instead of list for language loading

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Typo

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Changed language loading logic

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Improved docs

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Moved method from `LangUtils`

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Using regex

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Added test for `resourceQualifierToLanguageTag`

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

---------

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>
2023-02-28 10:28:19 +01:00
Sunik Kupfer b83d116f40
show real name of davowner (bitfireAT/davx5#208)
* add principal table with dao

* add principal table with dao

* collection saves ownerId instead of owner URL

* save and refresh principals

* show display name of collection owner in GUI

* show only the owner name (preferably) or respective url

* remove principals which do not own any collections

* Don't mock AppDatabase

* ensure we are really dealing with a principal and save it even without its display name

* ensure owner label is hidden when neither owner-displayname nor  owner-url are available

* save principal urls without trailing slash

* use a custom query to find principals without collections

* Some changes

- insertOrUpdateByUrl
- don't explicitly set id=0 when not necessary,
- make it work when there are already entries with trailing slahes
- added TODOs

* Small changes
- Update principal only if display name changed
- Rename methods
- Kdoc
- Tests

* stop using simple methods with vague names

* rename method insertOrUpdateOrGet to insertOrUpdate and leave existing kdoc for explanation

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-02-20 13:29:56 +01:00
Ricki Hirner 26961d9749
Update dependencies 2023-02-20 13:29:52 +01:00
Patrick Lang 7b34f8148f
jtx-board-2-3-new-recur-handling (bitfireAT/davx5#196)
* adapted JtxSyncManager, added new method in LocalJtxCollection

* minor code improvement

* inserting recurring entry as well, as the series might not have been processed yet

* version bump (preliminarily)

* version bump (preliminarily)
2023-02-20 13:29:44 +01:00
Ricki Hirner f13164af41
Fetch translations from Transifex, tx config changes 2023-02-08 12:39:40 +01:00
Ricki Hirner 43b6b8b3db
Version bump to 4.3 2023-02-08 12:33:16 +01:00
Arnau Mora 6990479d18
Enabled automatic popup of the custom certificate dialog (bitfireAT/davx5#207)
* Enabled automatic popup of the custom certificate dialog

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Use chaining instead of .let

---------

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-02-08 12:32:29 +01:00
Ricki Hirner 1dd93ae43a
Collections fragment: cache paging data (bitfireAT/davx5#206)
Closes bitfireAT/davx5#205
2023-02-07 17:14:21 +01:00
Michael Biebl 179602df46
Drop duplicated .ForegroundService (#266)
Was added by mistake in cfee0f3461.
2023-02-07 17:13:04 +01:00
Ricki Hirner 412acbcc7d
Version bump to 4.3-rc.2 2023-02-03 21:08:24 +01:00
Ricki Hirner dc207682a5
CollectionsFragment: Replace Kotlin flow by LiveData (closes bitfireAT/davx5#201) (bitfireAT/davx5#204) 2023-02-03 21:08:14 +01:00
Ricki Hirner 00235e12a4
Fetch translations from Transifex 2023-02-01 14:02:59 +01:00
Ricki Hirner e283f5f34b
Version bump to 4.3-rc.1 2023-02-01 13:27:56 +01:00
Ricki Hirner 2349468b0b
Update dependencies, including ical4android 2023-02-01 13:27:55 +01:00
Sunik Kupfer cf4b7891e3
fix collections vanishing and remove useless home set reference (bitfireAT/davx5#199) 2023-02-01 13:10:35 +01:00
Sunik Kupfer ca62efa2aa
remove DaoTools (for syncing) (bitfireAT/davx5#190)
* add test fixtures

* Use direct DB access instead of DaoTools

* minor changes and kdoc

* minor changes and kdoc

* remove obsolete DaoTools, SyncableDao and IdEntity classes

* KDoc

* use hashmap instead of list and added kdoc

* always load from database

* add a test and make test structur more flexible for future tests

* minor KDoc

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-01-31 13:40:39 +01:00
Ricki Hirner 2661dbba34
Use Worker for account cleanup (bitfireAT/davx5#197)
* [WIP] Use Worker for account cleanup

* Remove AccountsUpdatedListener Hilt module

* Use 15 seconds, provide Hilt module for App creation
2023-01-28 21:09:58 +01:00
Ricki Hirner 954f4dcaa3
Debug info: count jtx Board tasks correctly (bitfireAT/davx5#195)
* Reformat code

* Use sync-adapter URI to count jtx Board entries

* Debug info: restrict entry counts per withSyncAdapter URI and not over WHERE clause
2023-01-28 21:09:49 +01:00
Ricki Hirner 6c8976f6ff
Version bump to 4.3-beta.1 2023-01-20 11:12:33 +01:00
Ricki Hirner 29b2b2372f
Catch SecurityException of notifications 2023-01-20 11:12:32 +01:00
Ricki Hirner 5156ff1380
Update dependencies 2023-01-20 11:12:32 +01:00
Sunik Kupfer 62617a2889
168 refactor service detection part 2 (bitfireAT/davx5#174)
* [WIP] refactor

* [WIP] refactor

* save, update and delete homesets one by one

* save, update and delete collections one by one

* cleaner code

* prevent jumps in row ids

* [WIP] small changes and kdoc

* remove duplicate code and add kdoc

* improve kdoc

* remove redundancy based on service type in resource finder

* tests setup

* handle cancellation

* add tests

* Don't use IdEntity for service detection anymore

* HomeSetDao: getByUrl requires a service (there may be two accounts with the same homeset URLs, for instance with different credentials)

* Deprecate DaoTools

* Minor changes

* Add TODO

* use self explanatory variables instead of a pair

* update kdoc

* add unfinished tests

* add test for updating a collection

* add test for preserving collection flags

* mark collections as homeless if not rediscovered in its homeset

* proper implementation of update and delete of homeless collections with test

* minor changes and kdoc

* Tests: adapt mock server 404

* KDoc

* get collections by service and url, deprecate getByUrl()

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-01-19 23:32:15 +01:00
Patrick Lang df2922f873
Added intent-filter for AccountActivity (bitfireAT/davx5#187)
* Added intent-filter for AccountActivity

* removed intent filter for account activity
2023-01-19 23:31:57 +01:00
Flo Edelmann 861bcf30b4
Add dav.mailbox.org to known base URLs (#251)
* Add dav.mailbox.org to known base URLs

* Replace mailbox.org by dav.mailbox.org

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-01-11 23:51:35 +01:00
Arnau Mora bee7cf20ac
169 webdav handle weak etags correctly (bitfireAT/davx5#185)
* Added `GetETag.NAME` fetching when `PROPFIND`ing

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* `GetETag.eTag` is only taken if tag is not weak

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Using `GetETag` instead of `QuotedStringUtils` and ignoring weak eTags

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Updated `dav4jvm`

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Fixed checks

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Use new dav4jvm where weak can't be null

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2023-01-09 17:57:04 +01:00
Sunik Kupfer 5434291c6c
fixes data saver warning showing below android 7 (bitfireAT/davx5#180)
post false to live boolean dataSaverEnabled even if below api lvl 24
2023-01-09 17:56:56 +01:00
Arnau Mora 53bd4866c3
Added Mastodon link to navigation drawer (bitfireAT/davx5#179)
* Added mastodon icon

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Added mastodon link to drawer

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Added mastodon link action

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Mastodon icon tint

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Added Mastodon icon to main

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>
2023-01-01 23:26:54 +01:00
Michael Biebl 1f4398b21e
Use consistent margins between different permission switches 2022-12-22 21:25:12 +01:00
Ricki Hirner 4c71d21d7b
WorkManager address book sync: don't run calendar/tasks sync on address book accounts; vcard4android: set N:LastName for vCard3 groups 2022-12-22 21:22:56 +01:00
Patrick Lang 1f818ee3b4
Added language selection (bitfireAT/davx5#137)
* added language selection

* PermissionsFragment: Hide notification permission switch on Android < 13

* Retrieve locales with a function

* Added locales flavoring

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Moved locales functions to `locales.gradle`

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Added `locales_config.xml` generation

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Now gets generated automatically

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Added `android:localeConfig`

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Updated submodules

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

* Using `logger` instead of `println`

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>

Signed-off-by: Arnau Mora <arnyminer.z@gmail.com>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
Co-authored-by: Arnau Mora <arnyminer.z@gmail.com>
2022-12-22 21:22:55 +01:00
Michael Biebl 0521f4bcf0
Trivial indentation fixes (#226) 2022-12-22 21:22:55 +01:00
Ricki Hirner 2730d14cb9
Version bump to 4.3-alpha.1 2022-12-22 21:22:55 +01:00
Sunik Kupfer cfee0f3461
work manager manual sync (bitfireAT/davx5#109)
* rabase with dev branch

* added test for checking whether manual work-manager sync queues worker

* overwrite getForegroundInfo to show a "sync running" notification, to run expedited work on Android <12

* basic error state with sensible feedback from syncframework

* remove integer state flags and pass SyncResult as string

* Manual sync cancellation

* rabase with dev branch

* Minor changes

- add Jtx Board sync adapter to sync worker
- use new notification ID for sync worker

* status bar reflects sync of SyncWorker and sync framework correctly

* [WIP] custom hilt SyncComponent

* fix autoclose cast not available below api24

* SyncScope implementation using WeakReference

* Remove unnecessary logging call

* AddressBooksSyncAdapter.sync uses SyncWorker instead of ContentResolve to call requestSync

* add some code documentation

* move all utility objects into one package

* Also check SyncWorker state for accounts list sync status bar

* clean up imports

* Remove duplicate copyright notices

* Minor changes

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-12-15 16:04:39 +01:00
Michael Biebl 262592a3d9
Remove duplicate copyright header (#218) 2022-12-11 17:03:27 +01:00
Ricki Hirner 18a3c0e2fd
Fetch Translations from Transifex 2022-12-10 13:20:31 +01:00
Ricki Hirner 5374afb7ae
Version bump to 4.2.6 2022-12-10 13:17:59 +01:00
Álvaro Brey 9ceee1b6c0
LoginSetupActivity: allow http/https in intent filter (#211)
* LoginSetupActivity: allow http/https in intent filter

Initially introduced in 054f1ece61,
this `intent-filter` breaks login from the Nextcloud app, as we send the server URI as `http`/`https`.

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>

* Update intent-filter for login flow on api lvl 33 (closes bitfireAT/davx5#172)

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
Co-authored-by: Sunik Kupfer <kupfer@bitfire.at>
2022-12-08 17:48:13 +01:00
Sunik Kupfer e6ecc7a9b0
Remove forced wifi-only sync when Data Saver is active (bitfireAT/davx5#171)
* Remove forced wifi-only sync when Data Saver is active

* move data saver warning to AppWarningsManager

* Minor changes

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-12-08 11:56:47 +01:00
Sunik Kupfer 1b17124b80
move warning notification logic into a warning class (bitfireAT/davx5#170)
* move warning notification logic into a warning class

* Move Warnings to UI package

* Minor changes

* Move "global sync disabled" warning to AccountListFragment, too

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-12-08 11:52:56 +01:00
Sunik Kupfer 02885947da
Refactor DavService to WorkManager (bitfireAT/#164)
* SyncManager: remove retry intent
* refactor DavService to RefreshCollectionsWorker now using WorkManager
* move DavResourceFinder to new service detection package
* Optimize imports

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-12-08 11:52:38 +01:00
Sunik Kupfer 405ef4d0b8 Version bump to 4.2.5 2022-11-29 15:09:24 +01:00
Sunik Kupfer 5e099561c1 Fetch translations from Transifex 2022-11-29 15:07:22 +01:00
Ricki Hirner dd9ac77705 Add referrer with utm_source to task app installation Intents 2022-11-29 15:04:34 +01:00
Ricki Hirner 369d5e49f1
Update dependencies, version bump to 4.2.5-rc.1 2022-11-24 18:14:26 +01:00
Sunik Kupfer 5222c13a23
Support read-only task lists for Tasks.org (bitfireAT/davx5#160)
* [WIP] save task list access level to android task list for tasks.org to use
* Disrecommend using OpenTasks in selection dialog
* Update string, use matching ical4android

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-11-24 17:33:37 +01:00
Ricki Hirner b17b38ff50
Update dependencies, including ical4android 2022-11-09 13:16:59 +01:00
Ricki Hirner 3b74ad5257
PermissionsFragment: Hide notification permission switch on Android < 13 2022-11-04 17:53:30 +01:00
Clément GIBAUD e4a5c47887
Add framagenda to pre-set URLs (#192) 2022-11-04 16:31:24 +01:00
Sunik Kupfer 8915a3c103
android 13 compatibility (bitfireAT/davx5#155)
* check for notify permission before notifying

* [WIP] add notification permission request

* Revert "check for notify permission before notifying"

This reverts commit ed8e046d73163bef5684622bd877f08b9ee781c6.

* add notification permission request

* [WIP] add notifications disabled card in accounts view

* add notifications disabled card in accounts view

* reorder permissions

* use dp instead of mm for image max height in permissions view

* stop using array to bundle notification permissions

* Use new permissions contract for PermissionsFragment

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-11-01 12:51:20 +01:00
Ricki Hirner 796eddb975
Update dav4jvm, Kotlin 2022-10-28 13:34:32 +02:00
Ricki Hirner 57a77bd5f5
Actually update vcard4android (better read-only contacts support) 2022-10-28 13:15:38 +02:00
Sunik Kupfer 31a61f508d Version bump to 4.2.4 2022-10-25 11:16:53 +02:00
Ricki Hirner a8e21bed8b
Force downloading all contacts after resetting read-only contacts when collection supports Collection Sync 2022-10-21 13:41:22 +02:00
Ricki Hirner 7b70cf45fc
Fetch translations from Transifex 2022-10-21 13:41:22 +02:00
Ricki Hirner 66282c10e6
Version bump to 4.2.4-rc.1 2022-10-21 13:41:22 +02:00
Ricki Hirner a493f0a9a9
Update dependencies 2022-10-21 13:41:22 +02:00
Ricki Hirner 951c29e66a
Force sync after resetting read-only contacts (bitfireAT/davx5#154)
* Force sync after resetting read-only contacts

* Rename variable for clarity
2022-10-21 13:41:21 +02:00
Sunik Kupfer 0f124cf5b5
LocalAddressBook: update read-only flag of groups, too (bitfireAT/davx5#153)
* LocalAddressBook: update read-only flag of groups, too

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-10-21 13:41:21 +02:00
Sunik Kupfer 9bd564b2c6
fix crash when accounts vanish (closes bitfireAT/davx5#140) (bitfireAT/davx5#148) 2022-10-21 13:41:21 +02:00
Ricki Hirner bec9f8bcfb
Fetch translations from Transifex (including new translations) 2022-10-14 23:06:56 +02:00
Ricki Hirner d2614bd87e
Create an option to pre-select the read-only setting for address books (bitfireAT/davx5#141)
* [WIP] add managed restriction to force read-only addressbooks
* Honor app-wide read-only address book setting when syncing address books
* reflect status of force read-only address books setting in the GUI

Co-authored-by: Sunik Kupfer <kupfer@bitfire.at>
2022-10-12 17:35:12 +02:00
Ricki Hirner e14460111e
Use Material switches for preferences 2022-10-11 12:48:16 +02:00
Ricki Hirner 31fb7ec190
CalDAV/CardDAV UI: replace checkbox by switch (bitfireAT/davx5#143)
Closes bitfireAT/davx5#142
2022-10-11 10:15:01 +02:00
Ricki Hirner 99710ca94e
Update Manual URL 2022-10-08 18:58:31 +02:00
Ricki Hirner c635dc8aa3 Add pre-set base URLs 2022-10-03 10:51:33 +02:00
Ricki Hirner ce3f3b7cc4 Update vcard4android (disable LABEL generation); version bump to 4.2.4-beta.1 2022-10-03 10:51:12 +02:00
Ricki Hirner 2b16cd6365
Lint 2022-09-27 13:03:08 +02:00
Ricki Hirner 8a7f51b705
Update dependencies, compile SDK level, build tools, gradle plugin 2022-09-27 13:03:08 +02:00
Ricki Hirner fbbf2a6b07
Add calendar and contacts provider to manifest/queries (for increased compatibility with apps like Huawei calendar) 2022-09-23 13:32:22 +02:00
Ricki Hirner 8ff90954cd
Don't run AccountsUpdatedListener while account is being renamed
Don't run AccountsUpdatedListener while account is being renamed (closes bitfireAT/davx5#135)
2022-09-22 20:55:08 +02:00
Sandelinos a7fcc087bc
Add monochrome icon (#151) 2022-09-20 20:32:58 +02:00
Ricki Hirner e2c2e566b9 Bump version to 4.2.3.4 2022-09-20 18:50:24 +02:00
Ricki Hirner d4eaa0718a
Fetch translations from Transifex 2022-09-19 16:36:52 +02:00
Ricki Hirner e3c44f2e50
Update ical4android (enable relaxed valiation of email addresses); bump version to 4.2.3.4-rc.2 2022-09-19 16:35:02 +02:00
Ricki Hirner c517c9c3b5
Bump version to 4.2.3.4-rc1 2022-09-19 16:35:01 +02:00
Ricki Hirner 757c01c186
Update dependencies (including ical4android to address Kiev/Kyiv bug)
See https://github.com/bitfireAT/davx5-ose/discussions/133
2022-09-19 16:35:01 +02:00
Ricki Hirner 97eb45ec12
Fetch translations from Transifex 2022-09-08 22:04:35 +02:00
Ricki Hirner d7102f94bd
Version bump to 4.2.3.3 2022-09-08 22:03:43 +02:00
Ricki Hirner cf76cc16ce
Update ical4android 2022-09-08 22:03:43 +02:00
Sunik Kupfer 78e4cbe06d roll back commons-io to 2.8.0 for API levels <26 (closes bitfireAT/davx5#130) 2022-09-07 12:23:12 +02:00
Ricki Hirner f47adbef4a
Wrap GrantPermissionRule into InitCalendarProviderRule
Closes bitfireAT/davx5#127
2022-08-31 17:16:56 +02:00
Sunik Kupfer 94c9f869c9
Generate new filename if invalid for upload (closes bitfireAT/davx5#110)
* use random UUID instead of UID as upload file name if UID would be dangerous

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-08-31 17:16:54 +02:00
Ricki Hirner ee993a8557
Rename "standard" flavor to "ose" 2022-08-31 17:12:25 +02:00
Ricki Hirner 03deb4191a
Bump version to 4.2.3.2 2022-08-29 15:07:51 +02:00
Ricki Hirner b5c16ddbd4
Fetch translations from Transifex 2022-08-29 15:07:50 +02:00
Ricki Hirner aeb4541eb9
Version bump to 4.2.3.1 2022-08-24 16:56:19 +02:00
Ricki Hirner 7144b963e4
Version bump to 4.2.3.1-rc1 2022-08-23 22:00:08 +02:00
Ricki Hirner acc3ca1b4c Version bump to 4.2.3 2022-08-23 11:36:32 +02:00
Ricki Hirner 885035fadf
Update dependencies 2022-08-19 12:39:32 +02:00
Sunik Kupfer e5604118fd
confirmation dialog for removing webdav mount (closes bitfireAT/davx5#47) (#119)
* confirmation dialog for removing webdav mount

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-08-19 12:39:32 +02:00
Ricki Hirner 20e79e49b3
Rename notification for external file logging 2022-08-15 12:41:50 +02:00
Ricki Hirner b3e0cef0a6
Fix Android10ResolverTest when IPv6 is the primary address type 2022-08-15 12:41:49 +02:00
Michael Biebl 7bb97ffa31
Remove unused colors (#110)
They are a left over from
commit 12802f8697 and the incomplete
removal in commit 054f1ece61
2022-08-10 17:09:35 +02:00
Ricki Hirner 4f143318da
Update dependencies and ical4android 2022-07-28 15:12:34 +02:00
Ricki Hirner 8aefab65f6
Update dependencies 2022-07-28 15:01:23 +02:00
Sunik Kupfer 8c22b4ed3b Version bump to 4.2.2 2022-06-21 12:35:05 +02:00
Sunik Kupfer dc94791637 etch translations from Transifex 2022-06-21 12:09:04 +02:00
Sunik Kupfer d2c0a2bb44 use findActivity() provided by hilt (closes bitfireAT/davx5#106) (#107)
* use FragmentComponentManagers findActivity method provided by hilt (closes bitfireAT/davx5#106)

* WebCalFragment CalendarViewHolder: Pass Fragment instead of FragmentManager so that requireActivity() can be used

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-06-21 12:05:43 +02:00
Patrick Lang c90e0bf085 Removed update related to from JtxSyncManager (#92)
* Removed update related to from JtxSyncManager

updateRelatedTo is now done implicitely in the sync content provider for every inserted or updated icalobject/relatedto

* Update ical4android

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-06-21 12:04:12 +02:00
Sunik Kupfer 2e6ce88c58 non-flaky tests (#103)
* [WIP] initialization code to make tests non-flaky

* init code as junit rule and remove flaky annotations

* remove exception for flaky tests in Github test workflow

* ensure correct class rule execution order
2022-06-21 12:02:28 +02:00
Patrick Lang 5b0788b2e9 Don't set account visibility if it was already visible (#102) 2022-06-21 11:55:59 +02:00
Ricki Hirner f813392c72
Version bump to 4.2.1.2-alpha.3 2022-05-30 14:49:47 +02:00
Ricki Hirner bd7d6c7b4d
AccountSettings: handle address book accounts (#101)
* AccountSettings: handle address book accounts (fixes: address books are not synced because of IllegalArgumentException)

* Tests (not finished)
2022-05-30 14:49:47 +02:00
Ricki Hirner 0e93a47d6d
Version bump to 4.2.1.2-alpha.2 2022-05-29 15:03:37 +02:00
Ricki Hirner 99325e8930
Sync adapter: improve HttpClient and cancellation (#100)
* Sync adapter: share single HttpClient between all SyncManagers (should fix bitfireAT/davx5#99)
* HttpClient: use producer for CertManager
* Call setAccountVisibility only when necessary
* Fix tests
2022-05-29 15:03:36 +02:00
Ricki Hirner 0a11a0bcfc
Don't set up periodic syncs for contacts sync of the address book acc… (#97)
Don't set up periodic syncs for contacts sync of the address book accounts (fixes bitfireAT/davx5#96)
2022-05-29 15:02:17 +02:00
Ricki Hirner f3c79367ef
Version bump to 4.2.1.2-alpha.1 2022-05-29 15:01:57 +02:00
Ricki Hirner 4dfebe4355
Hilt: use intro OpenSourceFragment 2022-05-28 19:19:43 +02:00
Ricki Hirner b51d18a659
Use Hilt instead of Koin (#93)
* Use Hilt for DI
* Use Hilt for settings providers
* Use Hilt for login credentials fragment
* Use Hilt instead of ServiceLoader for intro fragments
* Rewrite from Koin to Hilt
* Tests
* Use more Hilt modules for service loading (account drawer, intro fragments)
* Lint
* WebDAV provider: don't listen to changes in onCreate (causes problems with Hilt and tests)
2022-05-28 11:05:35 +02:00
Ricki Hirner 07ba158e66
Fix network security policy with tests 2022-05-27 14:36:25 +02:00
Patrick Lang 338d0d4691
Moved jtx Board in TaskProvider selection to first position (#94) 2022-05-27 14:35:59 +02:00
Michael Biebl b71452195e
Remove duplicate copyright header (#46) 2022-05-23 11:31:47 +02:00
Ricki Hirner cf3be750d0
Fetch translations from Transifex 2022-05-22 23:50:22 +02:00
Ricki Hirner 212392e78c
Version bump to 4.2.1.1 2022-05-22 23:49:45 +02:00
Sunik Kupfer ddae93c225
Add mocck dependency for tests 2022-05-22 23:48:00 +02:00
Ricki Hirner 1f4a25e4a4 Use Koin for all tests; CI: run tests for all flavors (#91)
Closes bitfireAT/davx5#89
2022-05-22 18:56:47 +02:00
Ricki Hirner 84f55bc39a
Fix Android10Resolver test (requires Android 10 instead of 8) 2022-05-12 10:46:49 +02:00
Ricki Hirner 8384730aff
Refactor some models to use proper constructors instead of custom initialize() methods 2022-05-12 10:46:49 +02:00
Ricki Hirner 8ca3d857d3
Use Koin Dependency Injection for Singletons (#84) 2022-05-12 10:46:48 +02:00
Ricki Hirner 12cc2cfcde
Update submodules 2022-05-12 10:39:28 +02:00
Ricki Hirner 7d424183a8
Update gradle plugin, Kotlin, AndroidX Material 2022-05-12 10:39:26 +02:00
Ricki Hirner d3c10c36b0
CI: create Github release for new tags 2022-05-05 15:21:57 +02:00
Ricki Hirner f37f3e5104
Bump version to 4.2.1 2022-05-05 14:25:38 +02:00
Ricki Hirner 541f51f77e
Version bump to 4.2.1-rc.2 2022-04-29 16:03:59 +02:00
Ricki Hirner 9bc4b0a837 Fetch translations from Transifex 2022-04-25 14:52:53 +02:00
Ricki Hirner 776adedfbf Version bump to 4.2.1-rc.1 2022-04-25 14:25:36 +02:00
Ricki Hirner 054f1ece61 Setup intent filter (#80)
* Add intent filter for caldav(s)://, carddav(s):// and davx5:// schemes
* Define intent-filter only for standard and gplay flavors
* Merge manifest; remove Espresso tests (further tests should be added)
* Lint

Closes bitfireAT/davx5#77
2022-04-25 14:25:02 +02:00
Ricki Hirner 5d61487a85
Rename at.bitfire.davdroid.model to at.bitfire.davdroid.db to make clear it contains database models (and not view models) 2022-04-24 10:38:17 +02:00
Ricki Hirner d4b82d37be
Version bump to 4.2.1-beta.2 2022-04-21 21:18:32 +02:00
Ricki Hirner f4b157a101
Server handles only tasks not jouranls (#79)
* Service detection: update properties of already existing collections which are not in homesets
* Trigger service detection after creating a collection because the server may change properties
* jtx sync: query tasks/journals only when supported

Should fix bitfireAT/davx5#78
2022-04-20 17:57:11 +02:00
Ricki Hirner c283691399
jtx Board sync: show whether VTODO and/or VJOURNAL components are supported by a collection; update ical4android 2022-04-20 17:57:09 +02:00
Ricki Hirner e2c48df68f
Version bump to 4.2.1-beta.1 2022-04-15 12:22:42 +02:00
Ricki Hirner 40941f9bce
Move file, update gradle and plugin 2022-04-15 12:12:17 +02:00
Sunik Kupfer 12802f8697
Mirror changes in AccountsDrawerHandler
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-04-15 12:01:09 +02:00
Michael Biebl 3c0a26bb0c
Preferences (#25)
* Set InputType for proxy_host and proxy_port programmatically

Since AndroidX it is no longer sufficient to simply specify
android:inputType in settings_app.xml.

* Drop custom IntEditTextPreference.kt

Doesn't appear to be necessary anymore.
2022-04-11 11:24:24 +02:00
Ricki Hirner 08dfa3f048
Fetch translations from Transifex 2022-03-23 18:09:47 +01:00
Ricki Hirner cd4aa0891b
ical4android fix; raise SDK level to 32; bump version to 4.2.0.3 2022-03-23 18:09:02 +01:00
Patrick Lang c8723d0f64
propagate privWriteContent as read only collection (#71) 2022-03-23 18:08:34 +01:00
Ricki Hirner 5ee6e57b03
Fetch translations from Transifex 2022-03-22 13:10:56 +01:00
Ricki Hirner 48bd99e0b6
Version bump to 4.2.0.2 2022-03-22 13:05:23 +01:00
Ricki Hirner 2c785684a2
Navigation drawer: update Community 2022-03-20 20:26:45 +01:00
Ricki Hirner 522fc8763f
Fetch translations from Transifex 2022-03-20 20:26:17 +01:00
Ricki Hirner df08cf6074
Version bump to 4.2.0.1 2022-03-20 20:25:32 +01:00
Ricki Hirner 763da2221c
Contact photos: always output JPEG (vcard4android); sync: query max-resource-size (at the moment only for debugging) 2022-03-20 20:25:14 +01:00
Ricki Hirner 850b1f54a8
vcard4android: better handling of (invalid) photos; reduce RAM usage by reducing sync threads a bit 2022-03-19 18:44:53 +01:00
Ricki Hirner b8d83cf46f
Fetch translations from Transifex 2022-03-18 10:36:21 +01:00
Ricki Hirner ec7d59a46b
Version bump to 4.2 2022-03-18 10:36:05 +01:00
Ricki Hirner abb60a4331
Fetch translations from Transifex 2022-03-16 14:43:44 +01:00
Ricki Hirner 4950a2390d
Version bump to 4.2-rc.1 2022-03-16 14:43:43 +01:00
Ricki Hirner 49ba32e64f
Update dependencies 2022-03-16 14:43:43 +01:00
Ricki Hirner da5ff1ea39
Move OnAccountsUpdateListener to App (may fix bitfireAT/davx5#45) 2022-03-16 14:43:43 +01:00
Ricki Hirner da4b5cf143
DebugInfo: provide IntentBuilder that truncates large logs/local resource dumps (should fix bitfireAT/davx5#69) 2022-03-16 14:43:42 +01:00
Ricki Hirner 248dd6fdb3
Update dependencies (including vcard4android with new photo handling) 2022-03-16 14:43:42 +01:00
Ricki Hirner 979123b9ef
Add option to select detected collections for synchronization automatically 2022-03-16 14:43:37 +01:00
Sunik Kupfer 7367477ebe
Add option to use socks proxy for orbot (closes bitfireAT/davx5#28) (#64)
* Add option to use SOCKS proxy for Orbot
* Fix tests, add constants
* Add option for "no proxy", add migration
* Improve UI

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-03-09 12:51:31 +01:00
Ricki Hirner 8fb9b3a86e
Update dependencies; bump version to 4.2.0-beta.1 2022-03-06 11:47:39 +01:00
Sunik Kupfer a7779ca6c3
billing and play dependencies (bitfireAT/davx5#62) (#63)
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-03-06 11:47:29 +01:00
Ricki Hirner 73a7b718e2
Update dependencies; version bump to 4.2.0-alpha.3 2022-03-06 11:44:12 +01:00
Patrick Lang 4084dc36a2
Updated queryCapabilities to use the same code as in TasksSyncManager, added try-catch block for sync-method (#60)
* Updated queryCapabilities to use the same code as in TasksSyncManager
Might solve #59

* Added try-catch block for sync-method
updated min version for JtxBoard in TaskProvider.kt
Should solve #59

* removed syncResult.databaseError = true

* Changed wrong file before

* Created TasksSyncUtils to put notifyProviderTooOld method

* Cleaned up imports

* Added Version check in JtxSyncAdapterService.kt, required TaskProvider.checkVersion to be public

* Minor changes

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-03-06 11:41:33 +01:00
Ricki Hirner 955c09d518
Update gradle plugin and build tools 2022-03-06 11:41:28 +01:00
Ricki Hirner 7493d1eda8 Version bump to 4.2.0-alpha.2 2022-02-24 11:15:42 +01:00
Ricki Hirner 1554c6ae1c Version bump to 4.2.0-alpha.1; update dependencies 2022-02-09 13:43:57 +01:00
Patrick Lang 16311708f8 Jtx Board synchronization (#56)
Support tasks and notes synchronization with Jtx Board

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-02-09 13:43:17 +01:00
Ricki Hirner 19be3c34bd Version bump to 4.1.1; add F-Droid changelog 2022-02-01 11:00:55 +01:00
Ricki Hirner 64bd373611 Fetch translations from Transifex 2022-02-01 10:46:14 +01:00
Ricki Hirner b2a5a1b1f3 Version bump to 4.1.1-rc.1 2022-01-28 17:06:26 +01:00
Ricki Hirner 6af033a351 Avoid UninitializedPropertyAccessException when accessing collectionURL for logging the sync 2022-01-27 14:11:20 +01:00
Ricki Hirner 1532fab49e Use asSyncAdapter() for calendar provider URIs 2022-01-27 12:18:09 +01:00
Ricki Hirner 62af6f45ab Update gradle plugin 2022-01-27 12:18:09 +01:00
Ricki Hirner 2ec33002c8 Version bump to 4.1.1-beta1 2022-01-24 11:23:51 +01:00
Ricki Hirner 81aa95223f Fetch translations from Transifex 2022-01-24 11:14:50 +01:00
Ricki Hirner c1125a5bd0 Update dependencies 2022-01-24 11:14:22 +01:00
Sunik Kupfer 7593229623 Delete dirty events without instances before syncing
Delete dirty events without instances before syncing (resolves bitfireAT/davx5#34)

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-01-22 10:55:32 +01:00
Ricki Hirner 87725a3b5d Show a warning when disk space is low, which will stop synchronization (resolves bitfireAT/davx5#44) 2022-01-17 18:22:45 +01:00
Ricki Hirner 6c34737cbc Fix that foreground service notification was always shown (fix for bitfireAT/davx5#32) 2022-01-13 14:18:23 +01:00
Sunik Kupfer 989cb1fd99 Fix foreground service start not allowed exception (resolves bitfireAT/davx5#32)
* Make "Battery optimization whitelisting" a global DAVx5 setting
* Make "Keep in foreground" setting dependent of "Battery optimization whitelisting" setting
* if foreground service is enabled, remind user to enable battery optimization whitelisting too, before starting the foreground service

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2022-01-13 14:18:23 +01:00
Ricki Hirner 161157a37c Fetch translations from Transifex 2022-01-05 16:20:12 +01:00
sunkup 9ac05f4f51 Add warning to avoid apostrophes in account names
Add warning to avoid apostrophes in account names. Resolves bitfireAT/davx5#5
2022-01-05 16:18:45 +01:00
sunkup ed08cc8d15 update dependencies (#33) 2022-01-04 12:38:01 +01:00
Ricki Hirner d08a1ec737 Version bump to 4.1; update vcard4android 2021-12-20 17:48:13 +01:00
Ricki Hirner 985dcf09d3 Fetch translations from Transifex 2021-12-16 13:37:18 +01:00
Ricki Hirner 2b940bfcd7 Version bump to 4.1-rc.1 2021-12-16 13:36:55 +01:00
Ricki Hirner 22e4c75064 WebDAV mounts: add empty view manual link (resolves bitfireAT/davx5#29); update dependencies 2021-12-16 13:36:38 +01:00
Ricki Hirner c7fd893b31 Update copyright (resolves bitfireAT/davx5#26) 2021-12-15 17:55:00 +01:00
Ricki Hirner ac7e717cde WebDAV mounts activity: add Help icon 2021-12-15 17:48:30 +01:00
Ricki Hirner 0009429b68 Update dependencies 2021-12-12 16:50:53 +01:00
Ricki Hirner 4b49df77ed Update room, version bump to 4.1-alpha.3 2021-12-03 16:57:09 +01:00
Ricki Hirner 3c6d1172cf Optimize singletons and companion objects (resolves bitfireAT/davx5#25) 2021-12-03 16:57:09 +01:00
Ricki Hirner 6960a48021 Change static singletons to cached singletons with weak references to save memory when the objects are not needed anymore 2021-12-03 15:46:29 +01:00
Ricki Hirner 54d1b5ec2e Refactor WebDAV cache 2021-12-03 15:46:29 +01:00
Ricki Hirner 99ecfb1ca3 WebDAV mounts: add empty view; add navigation drawer entry for Managed DAVx5 (closes bitfireAT/davx5#23) 2021-12-03 15:46:09 +01:00
Ricki Hirner f1a441c27d WebDAV: accept compliance class 2 or 3 (closes bitfireAT/davx5#21); fix division by zero in progress
- WebDAV service detection: accept compliance class 2 or 3, because they both imply class 1 (there are servers which don't show class 1 although they MUST)
- WebDAV random access: fix division by zero when file size reported by HEAD is zero
2021-12-03 15:45:31 +01:00
Ricki Hirner 56c7d2d73f Remove dokka because the generated documentation isn't used by anybody; fix dav4jvm reference 2021-11-27 18:07:12 +01:00
Ricki Hirner be98bef4ab Sync adapter: add tests, move check of simultaneous running syncs to new ConcurrentUtils 2021-11-23 14:34:25 +01:00
Ricki Hirner 1747cb2896 Update dependencies 2021-11-23 14:31:34 +01:00
Ricki Hirner c82d5cb1b4 WebcalModel: get rid of extra WorkerThread + Handler (were not stopped when fragment was closed) 2021-11-22 19:48:28 +01:00
Ricki Hirner f1de88a0f1 Android10Resolver: add test 2021-11-19 22:45:52 +01:00
Ricki Hirner a280de73a3 Update cert4android and vcard4android (only README changes); Android10Resolver: use empty JVM object instead of UUID as handle 2021-11-19 14:41:32 +01:00
Michael Biebl 489e09ea08 Drop AboutInfo override for dav4jvm
With the recent move to GitHub, the AboutInfo override for dav4jvm was
broken as it still used com_gitlab_bitfireAT__dav4jvm whereas it is now:
```
$ ./gradlew findLibraries | grep dav4jvm
bitfireAT/dav4jvm (f1d9354a41) -> com_github_bitfireAT__dav4jvm
Manually requested license: mpl_2_0
```

Since the autogenerated dav4jvm AboutInfo looks fine (see attached
screenshot), remove the override.
2021-11-19 11:58:08 +01:00
Ricki Hirner 9418b4f2a5 Temporarily disable jCard because of nextcloud/server#29693, version bump to 4.1-alpha.3 2021-11-13 13:56:42 +01:00
Ricki Hirner 26b4824124 Small Android10Resolver improvements 2021-11-13 13:56:19 +01:00
Ricki Hirner 2eeb1be833 DiskCacheTest: fixes another possible reason why tests may fail?
(trim deletes the files in modification time order, so if two files have the same
modification time, the order is not well-defined)
2021-11-13 11:09:50 +01:00
Ricki Hirner db77f43931 Bump version to 4.1-alpha.2 2021-11-12 22:23:36 +01:00
Ricki Hirner d96e311e8b Improve SRV record resolving (resolves bitfireAT/davx5#18)
- Android 8 to 10: use all DNS servers; prioritize resolvers of active connections
  (before: use only DNS servers of "active" connection, which may be a VPN connection without servers)
- Android 10+: use new DnsResolver API so that we don't need to know DNS servers anymore (also supports DoT etc.)
2021-11-12 22:23:09 +01:00
Ricki Hirner 952a10fb3d WebDAV cache: fix problem that sometimes the tests fail 2021-11-12 01:13:03 +01:00
Ricki Hirner 331c102992 Move to Github 2021-11-07 21:18:08 +01:00
Ricki Hirner 5de0718210 Update dependencies (including dav4jvm on Github instead of Gitlab) 2021-11-06 10:17:55 +01:00
Ricki Hirner 2504a81024 jCard: check MIME type from server; use MediaType for MIME types when possible 2021-11-05 01:38:59 +01:00
Michael Biebl cd1b14889b Properly cancel NOTIFY_REFRESH_COLLECTIONS error notifications
When displaying the notification, we use serviceId as tag, so use
serviceId as well when cancelling it.
2021-10-22 12:56:36 +00:00
Ricki Hirner d8fa5d4979 Version bump to 4.1-alpha.1 2021-10-22 14:52:05 +02:00
Ricki Hirner 563b131211 Support jCard (closes #11) 2021-10-22 14:51:41 +02:00
Ricki Hirner 201719af1a Debug info: show available/total storage memory (closes #10) 2021-10-21 07:10:47 +02:00
Ricki Hirner 290e73229b Update dependencies 2021-10-17 16:06:15 +02:00
Ricki Hirner 265d899d2c WebDAV: always return MIME type; change cached file size/modification time after successful upload 2021-10-15 12:38:18 +02:00
Ricki Hirner 918c2647da Version bump to 4.0 2021-10-10 13:53:45 +02:00
Ricki Hirner 1bf66770ef Version bump to 4.0-beta3 2021-10-07 21:50:19 +02:00
Ricki Hirner 75bd04e882 CardDAV KIND/MEMBER: always download group vCards after uploading them to keep groups in sync with server 2021-10-07 21:50:04 +02:00
Ricki Hirner 566d10ef8d Add time zone to debug info 2021-10-06 13:57:22 +02:00
Ricki Hirner a10b1153ea Improve group assignment 2021-10-05 12:29:10 +02:00
Ricki Hirner 5b6a0a8114 Comments, version bump to 4.0-beta3 2021-10-05 10:19:39 +02:00
Ricki Hirner e8fb6becf9 Fix Room crash and group processing performance problem 2021-10-05 10:08:14 +02:00
Ricki Hirner f7eea633fb WebDAV: fix random access without DocumentState; add tests 2021-10-04 19:09:47 +02:00
Ricki Hirner e22928eeea Fetch translations from Transifex 2021-10-04 17:42:43 +02:00
Ricki Hirner be63957507 Version bump to 4.0-beta2 2021-10-04 17:42:43 +02:00
Ricki Hirner 764102ae6e vCard4-groups: apply pending memberships after a contact has been downloaded again 2021-10-04 14:35:31 +02:00
Ricki Hirner 459cb538d7 GroupMembershipHandler: ignore memberships in groups that don't exist (anymore) 2021-10-04 11:20:19 +02:00
Ricki Hirner 9ee2930312 WebDAV: Add permanent notification to hopefully avoid being killed because of "excessive cpu usage" 2021-10-04 11:08:50 +02:00
Ricki Hirner 5161fad251 WebDAV: optimize cache 2021-10-03 12:51:33 +02:00
Ricki Hirner a42517e1ed Improve WebDAV UI 2021-10-02 18:54:43 +02:00
Ricki Hirner 231e54db4f Lint 2021-09-29 13:40:36 +02:00
Ricki Hirner 6e502ae8dc Squashed commit of the following:
commit 56f5f5a6cbad595534148a160678972734ca6cf2
Author: Ricki Hirner <hirner@bitfire.at>
Date:   Wed Sep 29 10:59:23 2021 +0200

    Version bump to 4.0-beta1

commit 2a4d7501d9d6cd572269de21e82c204c5a2a57e8
Author: Ricki Hirner <hirner@bitfire.at>
Date:   Tue Sep 28 21:45:49 2021 +0200

    Fix UiUtils.launchUri once again

commit 293accaf8f26842d198e9d5c4fc9029cb6ac71cc
Author: Ricki Hirner <hirner@bitfire.at>
Date:   Tue Sep 28 13:47:06 2021 +0200

    Adjust gradle daemon heap size

commit 7763a51c9bbc7baee36ef71648889f7fb4fe965d
Author: Ricki Hirner <hirner@bitfire.at>
Date:   Tue Sep 28 12:21:37 2021 +0200

    Query and show quota

commit 95f4dbfd8ffadd930aab9fc36dc3865bfee54fb7
Author: Ricki Hirner <hirner@bitfire.at>
Date:   Mon Sep 27 22:16:48 2021 +0200

    Persist cookies over WebDAV sessions

commit 17c9327eb3ef3d9384b28b70aa9637718d34e8a2
Author: Ricki Hirner <hirner@bitfire.at>
Date:   Sun Sep 26 19:54:57 2021 +0200

    Add WebDAV caches

    * add random access page cache
    * add thumbnail cache
    * add HEAD response cache

commit 0e5237f8b178ab66099999f72e657c59c9302d71
Author: Ricki Hirner <hirner@bitfire.at>
Date:   Tue Aug 31 13:25:36 2021 +0200

    Add WebDAV Access over Storage Access Framework
2021-09-29 11:04:44 +02:00
Ricki Hirner da7d1e1ec6 UiUtils: fix wrong "Please install a browser" message 2021-09-29 11:04:00 +02:00
Ricki Hirner 1a13fbbff4 ical4android: fix attendee problem; version bump to 3.4.1-beta1 2021-09-11 15:02:03 +02:00
Ricki Hirner 425a88f6f7 Fetch translations from Transifex 2021-09-09 19:31:34 +02:00
Ricki Hirner 3afc7c8dbc Version bump to 3.4.0.1 2021-09-09 19:31:17 +02:00
Ricki Hirner fc574f5853 lint 2021-09-09 16:34:52 +02:00
Ricki Hirner e0e69d3ffd Collection list: migrate to Paging3 2021-09-07 23:04:28 +02:00
Ricki Hirner 3e77b3ab1b SyncManager syncRemote: use main dispatcher for outer coroutine 2021-09-01 18:03:02 +02:00
Ricki Hirner 700ced1701 Simplify checking of duplicated sync calls (don't use WeakReference but locks instead) 2021-09-01 18:03:02 +02:00
Ricki Hirner d8a70ca30c ProGuard rules: XmlPullParser 2021-08-31 15:08:17 +02:00
Ricki Hirner 660daf6573 Fetch translations from Transifex 2021-08-31 13:47:54 +02:00
Ricki Hirner ad657dfad7 Version bump to 3.4 2021-08-31 13:47:19 +02:00
Ricki Hirner 925bc6a7b0 Update dav4jvm; group strategy: passing LocalAddressBook instead of ContactSyncManager is enough 2021-08-26 18:22:20 +02:00
Ricki Hirner 514dfdae80 Location permission for SSID restriction: make clear that "precise" location is required in Android 12+ 2021-08-26 12:47:20 +02:00