Ricki Hirner
4e2640ca01
Synctools: AndroidEvent companion object moved ( #1572 )
...
* Update synctools
* Refactor LocalCalendar to use Hilt
* Update synctools
2025-07-09 16:35:27 +02:00
Ricki Hirner
58344099f7
AndroidCalendar refactoring ( #1560 )
...
* [WIP] Refactor calendar sync manager to use synctools library
* [WIP] Update synctools
* [WIP] Tests
* Remove test logger module and update calendar color methods
* Fix migrations
* Update libs.versions.toml
2025-07-03 22:12:21 +02:00
Ricki Hirner
b62c7eff0b
Update to synctools version that uses explicit parsing / splitting ( #1554 )
...
* Update to synctools version that uses explicit parsing / splitting
* Update synctools
2025-07-02 15:33:13 +02:00
Ricki Hirner
f78e7868e8
Revert "Update to synctools version that uses explicit parsing / splitting ( #1554 )"
...
This reverts commit 5dbaedfa60 .
Reason: we don't want it in 4.5.1 yet
2025-07-02 14:28:57 +02:00
Ricki Hirner
5dbaedfa60
Update to synctools version that uses explicit parsing / splitting ( #1554 )
...
* Update to synctools version that uses explicit parsing / splitting
* Update synctools
2025-07-01 21:52:20 +02:00
Ricki Hirner
3e3c346019
Update dav4jvm
2025-06-29 14:58:12 +02:00
Ricki Hirner
1773dff8a4
Update synctools for R8 rules
2025-06-27 21:54:14 +02:00
Ricki Hirner
35cffa603b
LocalCalendar: don't subclass AndroidCalendar (#1552 )
...
* [WIP] Refactor LocalEvent to delegate to AndroidEvent
* Move tests
* Use test rules from synctools
* Add null check for content provider client in JtxSyncManagerTest
* Update dependencies, move OkhttpClientTest
* Refactor LocalCalendar to wrap AndroidCalendar
* Update bitfire-synctools to 1a613d5d3c
2025-06-27 17:43:14 +02:00
Ricki Hirner
89c3eacd36
LocalEvent: don't subclass AndroidEvent ( #1551 )
...
* [WIP] Refactor LocalEvent to delegate to AndroidEvent
* Move tests
* Use test rules from synctools
* Add null check for content provider client in JtxSyncManagerTest
* Update dependencies, move OkhttpClientTest
2025-06-27 17:06:41 +02:00
Ricki Hirner
789e7f3045
Set iCalendar PRODID in Constants and use it in respective classes ( #1550 )
...
* Set iCalendar PRODID in Constants and use it in respective classes
* Update bitfire-synctools
2025-06-26 15:38:37 +02:00
Ricki Hirner
a7f8ea8a48
Don't subclass AndroidEvent / AndroidCalendar populate / build methods anymore ( #1544 )
...
* Fix tests
* Update synctools; use AndroidCalendar SyncState
* Update synctools; move companion objects to end of class declarations
2025-06-25 14:17:58 +02:00
Ricki Hirner
a26847cf10
Update AGP, Kotlin, dependencies
2025-06-24 23:00:19 +02:00
Ricki Hirner
0e6c26aec6
Update synctools and use unified BatchOperation ( #1543 )
...
* Update synctools and use unified BatchOperation
* Fix tests
2025-06-24 16:26:40 +02:00
Ricki Hirner
c517647819
Update dependencies
2025-06-24 09:40:21 +02:00
Ricki Hirner
f91c968eb8
Update synctools, unify local storage exception handling
2025-06-16 13:16:18 +02:00
Ricki Hirner
f25c22eba5
Replace ical4android and vcard4android with synctools ( #1519 )
2025-06-10 13:32:46 +02:00
Ricki Hirner
b1f742fb3a
Update dependencies to latest versions
2025-06-05 20:10:09 +02:00
Ricki Hirner
711543c5f1
Credentials / dav4jvm: store passwords as CharArray ( #1483 )
...
* Credentials / dav4jvm: store passwords as CharArray
* Fix tests
2025-05-30 17:37:14 +02:00
Ricki Hirner
5c485834e9
Update Gradle wrapper and Android Gradle Plugin versions
2025-05-30 17:36:10 +02:00
Michael Biebl
d4b5039297
Use lowercase GroupIDs as a workaround for jitpack.io issues ( #1489 )
...
Related discussion at
https://github.com/bitfireAT/davx5-ose/discussions/1236
and
https://github.com/jitpack/jitpack.io/issues/3295#issuecomment-2329134019
For example trying to access:
https://jitpack.io/com/github/bitfireAT/dav4jvm/b87d772e44/ I get:
File not found. Build ok
In comparison under
https://jitpack.io/com/github/bitfireat/dav4jvm/b87d772e44/ I get:
build.log
dav4jvm-b87d772e44-sources.jar
dav4jvm-b87d772e44.jar
dav4jvm-b87d772e44.module
dav4jvm-b87d772e44.pom
dav4jvm-b87d772e44.pom.md5
dav4jvm-b87d772e44.pom.sha1
2025-05-26 13:53:21 +02:00
Ricki Hirner
9bbc4c096d
Update Compose BOM version to 2025.05.01
2025-05-21 11:55:51 +02:00
Ricki Hirner
c9fb7dc7a2
Update dependency
2025-05-14 13:46:47 +02:00
Ricki Hirner
d460e4ca7b
Update dav4jvm
2025-05-09 11:50:45 +02:00
Ricki Hirner
54bcda1bb4
Update Android Gradle Plugin and Compose BOM versions
2025-05-08 13:27:13 +02:00
Ricki Hirner
3fca4d60f1
Update dependencies
2025-05-07 18:02:57 +02:00
Ricki Hirner
2099f47d22
Use ical4android that removes ClassLoader checks; refactor SyncDispatcher ( #1446 )
...
* Use ical4android that removes ClassLoader checks; refactor SyncDispatcher
* [Tests] Add SyncDispatcher provider for tests
* Add sync dispatcher with fixed thread pool
* Replace fixed thread pool context with thread pool executor (as we had it previously, but without setting the contextClassLoader)
* Replace sync dispatcher with I/O dispatcher with limited parallelism
2025-05-07 17:57:46 +02:00
Sunik Kupfer
c12a723a52
Send Push-Dont-Notify header ( #1444 )
...
* Update dav4jvm
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Add push-dont-notify header to requests when push subscription has not expired
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Fix mocks in TestSyncManager
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Use relaxed mockk for collection
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Use lazy val for pushDontNotifyHeader
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Use null instead of empty map for pushDontNotifyHeader
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Get push subscription state as calculated collection property
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Add tests for active push subscription status in collection
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Rename test methods
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Return active subscription or null
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Use empty map instead of null for pushDontNotifyHeader
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Fix test
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Always send push-dont-notify header if subscription exists
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Fix copyright
* Send Push-Dont-Notify URL as quoted string
---------
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
Co-authored-by: Ricki Hirner <hirner@bitfire.at >
2025-05-07 17:22:54 +02:00
Ricki Hirner
ba7f95aad5
Clean up app/build.gradle ( #1421 )
...
* Remove packaging resources exclusion and configurations
* Update mikepenz-aboutLibraries to 12.1.0-rc03 and configure resource merging for LICENSE files
2025-04-27 11:10:20 +02:00
Arnau Mora
4c9ad959dd
Upgrade about libs to 12.1.0-rc02 ( #1416 )
...
* Upgrade about libs to 12.1.0
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
* Update AboutLibraries version to 12.1.0-rc02
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
Co-authored-by: Ricki Hirner <hirner@bitfire.at >
2025-04-26 14:43:51 +02:00
Ricki Hirner
fe0c1e67e7
Drop LiveData ( #1414 )
...
* Remove LiveData dependencies
2025-04-25 09:59:08 +02:00
Ricki Hirner
d679dc5e97
[Push] Fix various subscription problems ( #1411 )
...
* Handle non-existing account gracefully when (un)subscribing collections
* Unsubscribe from all (subscribed) collections when no push distributor is selected
2025-04-24 20:03:39 +02:00
Ricki Hirner
845d979046
Update dependency versions
2025-04-24 13:12:14 +02:00
Arnau Mora
f62509ed80
[Push] Support UnifiedPush Connector 3.x, VAPID, Encryption, Google FCM ( #1325 )
...
* Upgrade UnifiedPush Connector to 3.0.4
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
* Updated overrides
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
* Added storing keys and auths
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
* Excluded tink
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
* Fixed deprecations and calls
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
* Integrate UnifiedPush 3.x connector and FCM distributor
* Integrate UnifiedPush connector 3.x, use VAPID and message encryption
* [WIP] Refactor push registration logic and remove deprecated methods
* [WIP] Remove PushRegistrationWorkerManager and refactor PushRegistrationManager
* Remove unused service repository dependency and update worker to suspend
* Add suspend modifier to DAO methods and repository methods
* Add runBlocking to getByService call in CollectionListRefresherTest
* Add documentation for UnifiedPushService and PushRegistrationManager
* Add fallback for push messages without topic
* [WIP] Add UnifiedPushService test with workaround for PushService binder
* Update UnifiedPush library version and clean up test code
* Refactor push message handling, synchronization and coroutines
* Add coroutine dispatchers for push registration and unregistration
* Add async support for push subscription updates
* Refactor unsubscribe logic into reusable method
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
Co-authored-by: Ricki Hirner <hirner@bitfire.at >
2025-04-24 13:09:51 +02:00
Arnau Mora
5c35741226
Update AboutLibraries to 12.0.0 ( #1406 )
...
* Upgrade aboutlibs to 12.0.0
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
* Migrated code
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
* Apply AboutLibraries after other gradle plugins
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
Co-authored-by: Ricki Hirner <hirner@bitfire.at >
2025-04-24 10:33:59 +02:00
Ricki Hirner
b90b8ce6a2
Update AGP to 8.9.2
2025-04-23 17:30:29 +02:00
Ricki Hirner
93d715bb99
Test coroutines with runTest instead of runBlocking ( #1399 )
...
Add kotlinx-coroutines-test dependency and replace runBlocking with runTest in tests
2025-04-22 10:44:08 +02:00
Ricki Hirner
a0acd4e929
Use ProGuard rules from libraries ( #1387 )
...
Update library versions and optimize ProGuard rules (most of them are now in the libraries consumer rules)
2025-04-20 12:46:46 +02:00
Ricki Hirner
6644e4acd7
Fix 4.4.9 release compile error ( #1386 )
...
Update ical4android version and force Apache Commons dependencies
2025-04-17 16:39:23 +02:00
Ricki Hirner
038c2df524
Update dependencies
2025-04-17 12:52:20 +02:00
Arnau Mora
0d2e5a1f07
Avoid NPE when missing DTSTART for recurring events ( #1336 )
...
* Added handling of null dtstart
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
* Added JtxSyncManagerTest
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
* Test recurrence id without dtstart does not cause NPE
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Extract syncmanager creation from try-catch
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Add tests
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Assert RRULE remains in main vtodo
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Skip tests when jtx board not installed
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Correct annotation
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Simplify null checks
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Extract recurid definition
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Update ical4android
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Find recurrence instance without dtstart
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Rename method for clarity and update kdoc
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Use new method in test too
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Fix lint warnings
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Use a custom rule to wrap and ignore security exception if jtxboard is not installed
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Use existing permission utils
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Rename capture to catch exceptions rule
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
* Format code
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me >
Signed-off-by: Sunik Kupfer <kupfer@bitfire.at >
Co-authored-by: Sunik Kupfer <kupfer@bitfire.at >
2025-04-16 14:49:44 +02:00
Ricki Hirner
955de83b35
Add VAPID support to Collection entity ( #1376 )
2025-04-13 11:41:30 +02:00
Ricki Hirner
29a09f2038
Update dependencies, including dav4jvm ( #1374 )
...
* Update dependencies
* Remove unused import and simplify topic extraction
* Fix room issue
2025-04-13 10:26:34 +02:00
Ricki Hirner
b4d4a2fddd
Update Android Gradle Plugin and Compose BOM versions
2025-04-01 10:40:56 +02:00
Ricki Hirner
ced6abea3f
Update AGP and dependencies
2025-03-05 10:41:35 +01:00
Ricki Hirner
50879b6a0c
Update AGP, Kotlin, dependencies
2025-02-27 13:14:47 +01:00
Ricki Hirner
e34952bca9
Update dependencies
2025-02-19 12:58:36 +01:00
Ricki Hirner
acd4e41f8b
Update cert4android to avoid Conscrypt crash in custom certificate handling ( #1290 )
2025-02-02 14:35:36 +01:00
Ricki Hirner
30283f36a4
Update dependencies
2025-01-31 22:51:53 +01:00
Sunik Kupfer
b910ba25ae
Use ID to match DB collections with content provider collections ( #1274 )
...
* Update ical4android
* Match DB collections with content provider collections via ID
* Minor renaming and KDoc
* Move string constant to companion object
* Update KDoc
* Use getOrDefault to be more explicit
* Remove exception throw on missing collection ID
* Rewrite LocalAddressBookStoreTest
* Minor changes
- remove unused param
- make companion methods internal
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at >
2025-01-29 16:47:51 +01:00
Ricki Hirner
7e43524ff5
Update dependencies
2025-01-22 15:53:00 +01:00