* Migrated to M3
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Fixed theme
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Moved Composables and Model to individual files
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Move AppTheme to screen composable
* Fixed model name
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Minor re-ordering
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Sunik Kupfer <kupfer@bitfire.at>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Soft fail sync on DeadObjectException so that it is retried without immediate error message
* Handle DeadObjectException (→ retries sync); Syncer: generalize all-catch
* Migrated to M3
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Replaced preview theme
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Fixed theme
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Forced all sets to be private
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Moved Composables and Model to individual files
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Fixed naming
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Theme / M3 changes
* Observe lifecycle from within Screen
* Minor changes
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* [WIP] Separate AccountScreen, use M3 elements
* [WIP] Use UseCases for complex flow calculations
* [WIP] Move account deletion logic into AccountRepository
* Move rename operation to repository
* Adapt FABs
* Don't use snackbars to show when the collection list is refreshed
* New collection list layout (bitfireAT/davx5#159)
* [WIP] Create AccountModel from within screen
* [WIP] Clean up AccountScreen
* [WIP] CreateAddressBook
* [WIP] Create address book / calendar screen
* [WIP] Begin CollectionScreen
* [WIP] CollectionScreen
* Error handling
* String resources
* Optimizations, remove unnecessary things
* 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