* WebDavMountsScreen: M3, refactoring
* [WIP] AddWebDavMount
* Use M3 pull-to-refresh
* AddWebDavMount, move logic to WebDavMountRepository
* Show loading state in LinearProgressBar
* Add WebDAV mount: IME action and focus requester
* Move "test WebDAV" logic from model to repository
* Move "refresh quota" logic to repository
* Move querying and deleting mounts to repository; IME navigation
* KDoc
* Move hasWebDav tests to repository
* [WIP] Rewrite login to M3 and better UI states
* Use AccountRepository to create account
* LoginModel is SSOT for page navigation
* Support forced group method
* Show progress bar when account is being created
* Make account name suggestions work again
* Use M3 text field supportText for errors
* Refactor: login by URL, login by email, advanced login
* Refactor Nextcloud login, move login flow logic to separate class
* Refactor Google login, move OAuth logic to separate class
* Fix errors when navigating back after successful resource detection
* Make PasswordTextField M3
* ManagedLogin: M3, UiState
* Updated theme; managed login functionality
* Improve back navigation
* Rename AppTheme to M2Theme, add M3 theme
* Rewrite AboutActivity to M3
* Apply M3 theme; minor optimizations
* Use M3 version of AboutLibraries
* Use material3 instead of material3-android dependency
* Use reversed theme
* [WIP] Use broadcastReceiverFlow and packageReceiverFlow
to make sure that broadcast receivers are unregistered
* Rewrite remaining BroadcastReceivers to use broadcastReceiverFlow
* TasksAppWatcher: minor coroutine changes
* KDoc
* TasksActivity: use Compose state instead of LiveData
* Check if keep-permissions changed when user comes back from settings app
* Use one model only
* Use mutable state flows
* Use compose mutable state
* [CI] Improve caching behavior
* Freshly created model can never be null
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Use Compose state instead of LiveData; reset token before starting Login flow
* [WIP] Reset state variables when needed
* Always run postForJson in IO dispatcher; show progress when polling for login data
* Reset login URL in onReturnFromBrowser
* Do not show existing password when changing
* Use PasswordTextField for password input dialogs
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Added custom Compose theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of accompanist theme adapter
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed unused import
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added actionbar to the activities that didn't have one
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Theme now always hides actionbar
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added back string
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of all color definitions
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Moved color definition to drawable
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using Compose colors
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using AppCompat theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed XML theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Moved color definition
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added bars coloring in Compose
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added dark theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added custom Compose theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of accompanist theme adapter
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed unused import
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added actionbar to the activities that didn't have one
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Theme now always hides actionbar
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added back string
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of all color definitions
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Moved color definition to drawable
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using Compose colors
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using AppCompat theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed XML theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Moved color definition
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added bars coloring in Compose
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added dark theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Changed content description
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using `onSupportNavigateUp`
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Changed color on top of primary green
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added up navigation
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Made `onSupportNavigateUp` optional
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Typo
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of edge-to-edge
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added back some XML styles
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Simplify TasksCard calling
* Move theme colors to flavor-specific ThemeColors file
* Remove global AppTheme paddings for now
* Optimize imports
---------
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Don't use Gradle build and configuration cache for releases
- don't enable Gradle build and configuration cache for the project, but recommend it for the developer
- explicitly enable Gradle build and configuration cache for CI test jobs
- let AboutLibraries generate lib definitions itself again
- also don't archive test results (sometimes fails and we never use the results)
* Add encryption key for gradle cache
* Only warn on configuration cache problems (caused by AboutLibraries)
The list was computed in an automated way and includes:
intro_battery_not_whitelisted
intro_battery_whitelisted
permissions_jtx_status_off
permissions_jtx_status_on
about_flavor_info
about_translations_thanks
install_email_client
accounts_global_sync_disabled
accounts_global_sync_enable
app_settings_tasks_provider_synchronizing_with
account_no_address_books
account_no_calendars
account_no_webcals
account_swipe_down
account_create_new_address_book
account_create_new_calendar
settings_title
settings_enter_username
settings_enter_password
settings_key_default_alarm
certificate_notification_connection_security
trust_certificate_unknown_certificate_found
- OneTimeSyncWorker is also started by sync framework, so it should take network restrictions into consideration
- add "manual" flag for manual syncs that ignore network restrictions
* [WIP] Don't create a separate SyncWorker for every sync (run directly within onetime/periodic sync instead)
* [WIP] address books
* Account(s)Activity: don't show pending workers
* Migration to set new periodic sync worker tags
* Fix tests
* ContactsSyncAdapter issues address book sync on main account (not contacts sync)
* SyncAdapterService: optimize blocking with Flow instead of LiveData
* Refactoring
* Better live handling of (un)installed task apps
* Minor changes
* SettingsManager: explicitly mark possibility of null LiveData values
* Fix tests
* Move homepage and other Web URLs to Constants; minor refactoring
* Use AppTheme with built-in safe LocalUriHandler instead of MdcTheme; minor refactoring
* Account settings: add TODO for Compose rewrite
* Use UriHandler instead of UiUtils.launch when possible
* Migrated AddWebdavMountActivity to Compose
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Minor changes, use PasswordTextField
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* [WIP] Add AccountActivity2 in Compose
* Make paging collections work when data changes
* [WIP] Add ProgressIndicator TODO
* [WIP] CardDAV: add swipe-to-refresh
* [WIP] Correctly use Pager
* [WIP] Only show Webcal tab when there are subscriptions
* [WIP] Implement collection properties dialog
* Implement "create collection" and "show only personal collection"
* [WIP] Add collection overflow menu items
* Show color as left border, max. 2 icons per row
* [WIP] Delete collection dialog
* Add "delete collection"
* Implement "Force read-only"
* Delete old XML classes and resources
* Add permissions warning
* Implement "Rename account"
* Case-insensitive sorting, minor changes
* Horizontal arrangement
* Less integration of Webcal subscriptions (other layout)
* Accessibility
* Collection list: provide ID als key for lazy list
* Only show "Create addressbook/calendar" when there's at least one writable homeset
* Migrated to Compose
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Text hides when there are mounts
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Fixed todo
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Migrated to Compose
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Text hides when there are mounts
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Fixed todo
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed vertical scroll
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added action for ClickableText
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Fixed indentation
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Changed layout
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed overflow preferences
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Fixed padding
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Changed link color
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Fixed preview
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Fixed back arrow
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Require explicit Context for helpUrl to make it work in Compose preview
---------
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Make readOnly a LocalCollection property
* Move readOnly detection to SyncManager
* Add readOnly state access to LocalCalendar
* Add not implemented error to readOnly state access of LocalJtxCollection
* Handle read-only state of calendar at dirty events upload
* Handle read-only state of calendar at processing of locally deleted events
* Remove todo and update kdoc
* Fix indenting
* Add read-only prop to LocalTestCollection
* Add read-only state access to LocalTaskList
* LocalTestCollection: don't set read-only
* Update ical4android (for new KDoc)
* Make LocalCollection readOnly-API read only and take value from content provider during populate()
* SyncManager: use readOnly direct from localCollection
* Lift resetDeleted up to LocalResource
* Override and use resetDeleted for LocalEvent
* Add resetDeleted to LocalJtxICalObject
* Add resetDeleted to LocalTask
* Add resetDeleted to LocalTask
* Add resetDeleted to LocalTestResource
* Provide default access level
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Migrated to Jetpack Compose
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added `observeBoolean`
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Simplified settings interaction
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Migrated to Jetpack Compose
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added `observeBoolean`
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Simplified settings interaction
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Use SafeAndroidUriHandler instead of UiUtils.launchUri
* Removed animation for manufacturerWarning
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed animation for manufacturerWarning
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added `getBooleanLive`
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Using `getBooleanLive`
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Moved UI definitions to file scope
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Don't use specific times for waiting in tests
* Renamed function
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* More exact naming
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Add foreground notification type to expedited workers (required for Android 14)
* Make SyncWorker a long-running worker
* Don't use expedited SyncWorker for everything; handle foreground service launch restriction
* AddressBookSyncer: only request expedited for sub-jobs when parent job is expedited, too
* RefreshCollectionsWorker is not long-running -> no foreground service type needed
* Fix tests
* Don't use foreground service type in ForegroundInfo
* Make SyncWorker not long-running