Commit graph

2076 commits

Author SHA1 Message Date
Ricki Hirner fbcf6996ad Don't access DB in UnifiedPushReceiver main thread
Some checks failed
CodeQL / Analyze (java) (push) Failing after 2s
Development tests / Compile and cache (push) Failing after 1s
Development tests / Tests with emulator (push) Has been skipped
Development tests / Tests without emulator (push) Has been skipped
2024-07-24 17:43:58 +02:00
Ricki Hirner cf994ee82e Move UrlUtils methods to DavUtils 2024-07-24 17:15:57 +02:00
Ricki Hirner 9880dd5158 Move TaskUtils to TasksAppManager (closes #937) 2024-07-24 16:39:30 +02:00
Ricki Hirner 8e7d289971
Tests: don't create account as long as Hilt is not ready (#939) 2024-07-24 15:13:34 +02:00
Ricki Hirner d4c05b9282 NotificationRegistry: enforce creation of channels before they can be accessed 2024-07-24 15:13:06 +02:00
Ricki Hirner 768f462549
Use AccountRepository to get list of accounts (#938)
* Use AccountRepository to get list of accounts

* No AndroidEntryPoint in (Glance) widget
2024-07-24 14:50:48 +02:00
Ricki Hirner cbd9a55c15 Replace some non-injected loggers
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
2024-07-24 09:53:31 +02:00
Arnau Mora 73d0b63705
Debug info: Sync interval "0 min" when actually -1 (manual) (#928)
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
Added check for only manual sync

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
2024-07-23 19:08:06 +02:00
Ricki Hirner a361888d94 Version bump to 4.4.2-alpha.2
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
2024-07-23 01:11:39 +02:00
Ricki Hirner 907b38fd6a Better verbose log formatting
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
2024-07-22 00:18:52 +02:00
Ricki Hirner bf0e169cf1
Remove obsolete Logger object (#930) 2024-07-21 23:32:45 +02:00
Ricki Hirner fd2b3f0018 Refactor SettingsManager/SettingsProvider to use DI properly (bitfireAT/davx5#599)
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
* Refactor SettingsManager/SettingsProvider to use DI

* Fix tests

* Remove BaseDefaultsProvider

* Fix gplay tests
2024-07-20 21:47:15 +02:00
Ricki Hirner 6217582677 Debug builds: add StrictMode for ThreadPolicy, don't setup crash handler
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
2024-07-20 18:51:57 +02:00
Ricki Hirner d03dc1f37d Remove unnecessary SyncComponent 2024-07-20 18:40:42 +02:00
Ricki Hirner d33e4dcb23 Update dependencies 2024-07-20 18:35:31 +02:00
Ricki Hirner f4c02d4ab6
[DI] Use @Inject lateinit var for abstract classes (#929)
* Use @Inject lateinit var for abstract classes (subclasses have @Inject constructor)

* Fix tests
2024-07-20 18:19:04 +02:00
Arnau Mora fafa358dd8
DB: some missing indices (#890)
* Added index for `ownerId`

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

* Increased version number

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

* Increased version number

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

* Added version

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

* Added pushTopic as index

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

* Moved index

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

* Changed uniqueness

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

* Changed indexing method

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

* Moved `parentId` to independent index

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

---------

Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
2024-07-20 17:35:39 +02:00
Ricki Hirner d5d6592ae2
SyncWorker: use Provider for lazy injection (#925)
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
* SyncWorker: use Provider for lazy injection

* Use Provider to lazyily inject SyncAdapter
2024-07-19 18:09:20 +02:00
Ricki Hirner ac48e65b1a Remove deprecated code / annotate as deprecated 2024-07-19 17:41:47 +02:00
Ricki Hirner 26f95db62a
Re-factor Notifications and various Utils to DI (#924)
* [WIP] Use NotificationRegistry to post notifications

* Replace NotificationUtils by NotificationRegistry

* Re-factor SyncConditions; move tests to default location

* Describe notification channels
2024-07-19 17:10:29 +02:00
Ricki Hirner 5c4d697767
WebDAV cache: re-factor using Guava and Hilt (#921)
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
* Use per-resource Guava cache with weak keys and values as WebDAV page cache

* Replace ExtendedLruCache by Guava cache

* Use injected logger in DavDocumentsProvider

* Use DI for RandomAccessCallback, move Wrapper to outer class

* Fix tests

* Use Hilt for more classes

* Use Guava LoadingCache as page cache

* Fix tests

* Minor code change
2024-07-19 11:59:10 +02:00
Ricki Hirner 59a57fc40a
Update dnsjava, use desugaring with nio, refactor DNS resolving (#917)
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
* Update dnsjava, use desugaring with nio, refactor DNS resolving

* KDoc

* Rewrite bestSRVRecord test

* Add pathsFromTXTRecords tests

* Add desugaring note

* Rename @AssistedFactory method to "create"

* testBestSRVRecord_MultipleRecords_Priority_Same: broaden range for distribution
2024-07-18 11:09:00 +02:00
Ricki Hirner 50c13e5b6d Install uncaught exception handler in a separate startup plugin (bitfireAT/davx5#597) 2024-07-18 10:21:31 +02:00
Ricki Hirner 3a38a06302 Version bump to 4.4.2-alpha.2
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
2024-07-17 12:41:50 +02:00
Ricki Hirner c489002f5c
Create interface for startup plugins (#915)
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
* Create StartupPlugin interface, implement with TasksAppWatcher (don't run during tests)

* KDoc
2024-07-16 14:45:40 +02:00
Ricki Hirner 7cbc9bd4f5 Sync: take URL from DB (Collection) instead of making a detour over other places 2024-07-16 12:14:10 +02:00
Ricki Hirner 1fd65a4d42
Use DI for AccountSettings and Android tests (#911)
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
* Use DI for AccountSettings

* AccountSettings: clarify different account variables

* Fix tests

* Inject @ApplicationContext instead of Application

* Add Hilt rule to various tests

* Fix tests

* Consequently use injected @ApplicationContext in Android tests; fix Hilt rules
2024-07-15 19:39:21 +02:00
Sunik Kupfer b3cc24e4be
Fix: Syncer synchronizes only once (#910)
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
* Use a separate HashMap to determine new remote collections

* Close provider after sync
2024-07-15 11:00:34 +02:00
Ricki Hirner 556741ae1e
Get rid of Apache Commons (#901)
Some checks are pending
CodeQL / Analyze (java) (push) Waiting to run
Development tests / Tests with emulator (push) Blocked by required conditions
Development tests / Tests without emulator (push) Blocked by required conditions
Development tests / Compile and cache (push) Waiting to run
* Replace StringUtils

* Replace DateFormatUtils and NumberUtils

* Fix tests

* Replace ReflectionToStringBuilder

* Rewrite MemoryCookieStore to get rid of MultiMap

* Get rid of org.apache.commons.lang3.exception.ExceptionUtils

* Replace org.apache.commons.collections4.CollectionUtils

* Replace DigestUtils

* Replace ContextedException by SyncException

* Fix HttpClientTest

* SyncManager: remove obsolete code

* Fix StringUtilsTest

* DiskCache: add hit/miss logging

* DebugInfoModel: simplify PrintWriter generation
2024-07-14 10:22:00 +02:00
Ricki Hirner be43d360ba
Refactor logging (#906)
* LogcatHandler: log source class as tag and not in the text, remove max length

* Separate LogManager and Logger usage

* Improve StringHandler for DavResourceFinder

* Tests, KDoc
2024-07-13 17:37:07 +02:00
Ricki Hirner 0adceb64ec Squashed commit of the following:
commit 60219aafc7
Author: Ricki Hirner <hirner@bitfire.at>
Date:   Thu Jul 11 23:59:54 2024 +0200

    Version bump to 4.4.1.1

commit 209fdf3e7c
Author: Ricki Hirner <hirner@bitfire.at>
Date:   Thu Jul 11 23:37:37 2024 +0200

    AccountSettings v16: re-enqueue periodic sync workers with correct class name (bitfireAT/davx5#593)
2024-07-12 12:30:19 +02:00
Ricki Hirner 5ebef30abb
Tasks screen: adapt padding and recommendation (#898)
Tasks screen: adapt padding and text
2024-07-11 15:47:56 +02:00
Sunik Kupfer 3d65afbf8f
Provide collection to SyncManager (#881)
* Provide collection to CalendarSyncManager

* Provide collection to ContactsSyncManager

* Provide collection to JtxSyncManager

* Provide collection to TasksSyncManager

* Provide collection to SyncManager

* Fix test

* Minor changes

* Add kdoc

* Minor changes

- added KDoc
- SyncManager can never handle address book authority (content
  authority for contacts is contacts authority)
- moved @UsesThreadContextClassLoader to respective sync manager

* Mock collection in test

* Add comments separating the sync process into separate steps

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2024-07-11 14:09:35 +02:00
Sunik Kupfer 51f01b215c
Remove address books sync authority and content provider (#877)
* Drop address book provider

* Drop address book sync adapter service

* Replace address books authority with contacts authority

* Update kdoc

* Revert "Update kdoc"

This reverts commit dfb14d466f6c58d9422e59c770e0a5348a497b7d.

* Revert "Replace address books authority with contacts authority"

This reverts commit 0e15bf11b3235dfbc38696741100210fbe497dbd.

* Don't enable addressbook sync for main account

* Acquire content provider in Syncer

* Use contacts authority instead of address book authority when acquiring content provider

* Set default sync interval for address book authority again

* Minor re-ordering of lines

* Add comment, rename variable

* Move SyncAdapterServices out of adapter package

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2024-07-11 11:17:09 +02:00
Arnau Mora c02bf942e4
Replaced "Create" by "Add" when creating accounts (#892)
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
2024-07-08 11:11:21 +02:00
Ricki Hirner d7025d4e9e
Use proper DI for Syncer implementations (#889) 2024-07-04 22:21:20 +02:00
Ricki Hirner 56f7b4bbc5
Replace Apache Commons by native calls/Guava (#883)
* Replace Commons IO by native calls/Guava

* Drop other Apache Commons

* Fix tests
2024-07-04 16:00:29 +02:00
Ricki Hirner 4a3ebc422f Version bump to 4.4.1 2024-07-02 17:03:37 +02:00
Ricki Hirner 4b18302ec7 Fix JtxSyncer entry point 2024-07-02 15:25:12 +02:00
Ricki Hirner 5dd7609524 Fix tests 2024-07-02 14:06:19 +02:00
Ricki Hirner 48855c7bb8
[DI] Use constructor injection for SyncManager sub-classes (#874) 2024-07-02 12:59:42 +02:00
Ricki Hirner 7a8761f703 Version bump to 4.4.1-rc.1 2024-07-01 21:58:21 +02:00
Ricki Hirner 1dd91a2848 Update dependencies 2024-07-01 21:55:09 +02:00
Ricki Hirner 90f1c015d2 Fix "force read-only address books" setting in UI (bitfireAT/davx5#587)
* AccountScreen: take "force read-only address books" setting into account

* Collection screen: take "force read-only address books" setting into account

* Add KDoc

* Small naming change
2024-07-01 21:50:15 +02:00
Ricki Hirner 726e20ed52
Show CalDAV/CardDAV tab when the respective service is present (#868)
Use existence of CalDAV/CardDAV service as condition for whether to show the respective tab
2024-07-01 12:28:35 +02:00
Ricki Hirner 7f750e22cb Split syncadapter package (bitfireAT/davx5#586)
* Split syncadapter package into:

- sync: actual collection sync code and everything else
- sync.account: related to Android accounts
- sync.framework: Android sync framework integration
- sync.groups: contact group strategies
- sync.worker: sync workers (WorkManager)

* Remove unused file, fix imports
2024-06-30 14:42:40 +02:00
Ricki Hirner 8849b363c7 Fetch translations from Transifex 2024-06-29 09:57:17 +02:00
Ricki Hirner 005d6b30c0 Version bump to 4.4.1-beta.1; update dependencies 2024-06-29 09:56:08 +02:00
Ricki Hirner c3436fd23f Mark UnifiedPush setting as experimental 2024-06-27 19:54:28 +02:00
Ricki Hirner d4b4981e26 Version bump to 4.4.1-alpha.3 2024-06-25 22:22:09 +02:00