* 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
* Added initial layout
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Improved UI
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Replaced autofill with radio buttons
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of unnecessary errors
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of null indicators
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added default home set selection
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Minor UI changes
* Drop displayNameError
---------
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>
* Rewrite RenameAccountFragment to compose
* Add padding to text field, disable RENAME button when old name = new name
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Show battery saver warning in account list and debug info
* Move app warnings to model class
* Debug info: more verbose text
* Restore previous strings for sync enqueued/started
* Make ranged GET requests cancellable; reduce notification update frequency
* Include original exception as a cause in WebDAV ErrnoException
* Add KDoc for threading
* Got rid of uid writes
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using new ical4android version
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Changed commit id
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Updated ical4android
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
---------
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added optional modifier
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Fixed model argument name
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added bottom padding for bottom bar
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Moved all colors to resources
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Darkened colors for night mode
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Gave more flexibility
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Migrated to Compose
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Adjusted paddings
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added missing observer
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* CardWithImagE: add another preview with subtitle, icon and content
* Made buttons uppercase
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Adjusted spacings
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Changed snackbar host state
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Changed nullable expression
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using shareFile for zip
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Minor changes (comments/formatting)
* Switched to view instead of sharing files
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Adapted image height for landscape
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* CardView: allow to pass image alignment; use card_theme_max_height
* DebugInfoActivity: paddings, images
---------
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>
* WebDAV: don't try to load 0-byte segments
* Extracted segmentation logic to SegmentedReader for testability
* Reorganize and simplify caches
* Refactor thumbnail cache
* Use coroutines with Dispatchers.IO instead of custom Executor
* Remove obsolete classes
* Fix tests, simplify DiskCache
* Paging reader: cache current page
* PagingReader tests
* Thumbnails: timeout for generation and not only for waiting
* openDocumentThumbnail: actually cancel HTTP request when method is cancelled
* Better KDoc
* Add further tests
* Renamed LoginCredentialsFragmentFactory to LoginFragmentFactory
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Fixed fragment name
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Rename LoginInitFragment (managed) to ManagedLoginInitFragment
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Added `CardWithImage`
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added `RadioWithSwitch`
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Migrating to Compose
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added observers
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Fixed functions signature
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added kdoc
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Removed layout
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Color for disabled
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added "don't show" behaviour
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added all tasks providers
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Moved checkbox to correct location
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Fixed don't need behaviour
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added theme
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added todo
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added support for link annotations
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added support for annotated strings and urls
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added tests for HTML annotation
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Extracted `linkStyle`
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Removed observers for requested
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Removed more observers
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added multiple links test
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Moved `installApp` to `TasksCard`
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Moved all model calls to composable
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Removed preview since not usable
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Got rid of TasksFragment
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Fixed import
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Switched link color to orange
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added missing copyright information
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Use HtmlCompat and existing Spanned.toAnnotatedString
* Added default content
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Renamed image content description
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of empty content
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Made summary of RadioWithSwitch composable
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added missing entry point annotation
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added click handling for tasks org
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of the preview provider
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Minor changes
---------
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>
* RefreshCollectionsWorker: use runInterruptible instead of interrupting manually
* SyncWorker: use CoroutineWorker + runInterruptible
* Use global SyncWorkDispatcher that guarantees classLoader to be set
* Set SyncWorkDispatcher for whole SyncWorker's doWork
* Remove obsolete test
* SyncManager: add structured concurrency again
* Use up to <number of processors> threads for synchronization
---------
Co-authored-by: Sunik Kupfer <kupfer@bitfire.at>
- Rewrite DetectConfigurationFragment to Compose
- Use coroutines and runInterruptible instead of Thread
- Only cancel service detection when back is pressed
* RandomAccessCallback.Wrapper: support multiple state machine instances at same time
- support multiple state machine instances at same time
- provide explicit Exception/error code when the remote server doesn't support ranged requests
* Only use RandomAccessCallback when server explicitly advertises range requests
---------
Co-authored-by: Arnau Mora <arnyminerz@proton.me>
* Minor changes
- update kdoc
- rename method and variables
* Add proxy parents to related resource detection
* Rename argument, query ResourceType
* Remove unnecessary utility method
* Change parentOf to extension function; Always return URL with trailing slash
* Use calendar-proxy-read/write ResourceType from new dav4jvm
* Use max. two levels of recursion to detect shared Google calendars
* Revise test and adapt method
* Simplify HttpUrl.parent()
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* LoginActivity: refactor menu to MenuProvider; LoginModel: add contact group type
* Take LoginModel group method into account when creating the account; Nextcloud login: set preferred contact group type
* Replace onActivityResult by contract
* Add Nextcloud option to default login screen
* Decouple NextcloudLoginFlowComposable from model
* UI and model changes
* Single-line URL field
* Add progress indicator and other secondary UI
* Using result launcher
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Minor re-ordering
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* [WIP] Add timeout for RandomAccessCallback
* Use state machine to handle timeout
* Use sealed class for states, guard callback access with correct states
* Use tags instead of uniqueWorkNames for work queries.
* Also include address book accounts, when querying sync status.
Give address book account sync workers their parent (main account) sync workers tag too, such that they will be included at the query for sync status of their parent account.
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Low storage: don't show notification anymore, adapt info message
- The impact of low storage is not as critical anymore that a notification is required.
- Info message adapted
* Update "account settings: ignore VPN" strings
* Update "No internet" string
- use Google Play In-App Review API for private feedback on -gplay (fall back to email)
- start email intent again when "beta feedback" is selected in navigation drawer
* [WIP] Animate invisibility
* Reordered for cleaner look
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Fixed animation
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Reduced animation time for going to visible to 0
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Remove logging
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Arnau Mora <arnyminerz@proton.me>
* Doubled bottom padding
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Account activity: increase margin for two FABs even more
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>