Commit Graph

70 Commits

Author SHA1 Message Date
Arnau Mora
e92f261faf
Replace AppIntro by Compose Pager (#848)
* Migrated into to compose

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

* Got rid of AppIntro

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

* Imports cleanup

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

* Imports cleanup

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

* Removed padding

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

* When launching intro, going back closes the app

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

* Added content description

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

* Moved IntroActivity.Model to IntroModel

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

* Given fixed padding

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

* Moved intro composables together

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

* Do not create new task

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

* Minor changes

* Remove last XML styles that were required for AppIntro

---------

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2024-06-25 15:12:25 +02:00
Ricki Hirner
8167e8e3cb Update dependencies 2024-06-25 14:49:57 +02:00
Ricki Hirner
bcc16e1ab6
Implement basic Push functionality (#856)
* Move PushRegistrationWorker to push package

* Add UP dependency

* [WIP] UnifiedPush basic implementation

* Handle endpoint unregistration

* [WIP] Parse push notification message

* Parse push message in PushMessageParser

* Sync only affected account on push message

* Only initiate sync when push message is about a syncable collection

* Push registration worker: log when there's no configured endpoint

* Handle invalid/non-XML push messages

* app settings: show UP endpoint
2024-06-25 14:07:29 +02:00
Ricki Hirner
28948485f6 Update AGP 2024-06-16 20:05:19 +02:00
Ricki Hirner
0985a99ed3 Update dependencies, remove unnecessary dependencies 2024-06-13 22:27:14 +02:00
Arnau Mora
1d7084b555
Add Push Subscription Management (#800)
* [wip] Create worker for push registration and call it from someplace in UI

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

* [wip] Subscription registration request

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

* Don't enqueue push registration worker from UI

* Enqueue PushRegistrationWorker on collection changes

* Fix tests

* Update dav4jvm; Use new post method

* Remove obsolete context

* Add get and deleteAll methods to serviceRepository and update usages

* requestPushRegistration: make endpoint an argument

* Update push subscription fields in DB on successful registration

* Don't create notification channels in test class

* Remove workmanager init and provide empty set of listeners in tests

* Require network connection to run PushRegistrationWorker

* Move module declaration to a separate TestModules interface

---------

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>
2024-06-13 13:12:59 +02:00
Ricki Hirner
9e0772a9dd Update AGP 2024-06-11 09:21:35 +02:00
Ricki Hirner
a3ccdc2a46
Define toolchain version; update dependencies (#834) 2024-06-08 18:09:45 +02:00
Ricki Hirner
5d97161c9b Update dependencies (including ical4android, closes bitfireAT/davx5#551) 2024-05-31 08:11:32 +02:00
Ricki Hirner
4a49c8d6c2 Update dependencies 2024-05-25 21:26:09 +02:00
Ricki Hirner
f2255e1d53
Drop M2 (everything is M3 now) (#797)
Drop M2
2024-05-16 17:56:18 +02:00
Ricki Hirner
e11d511971 Update dependencies 2024-05-16 11:46:26 +02:00
Ricki Hirner
857309c451 Correctly handle DeadObjectException (bitfireAT/davx5#578, #591)
* Soft fail sync on DeadObjectException so that it is retried without immediate error message

* Handle DeadObjectException (→ retries sync); Syncer: generalize all-catch
2024-05-09 13:52:50 +02:00
Ricki Hirner
e6eb90861e
Use hiltViewModel for creating ViewModels with parameters in new Screen architecture (#776)
* Add hilt-navigation-compose dependency

* AccountScreen: use hiltViewModel

* Use hiltViewModel for CollectionScreen and CreateCollectionScreens
2024-05-03 14:46:46 +02:00
Ricki Hirner
9005121b52 Update dependencies (including AGP) 2024-05-03 12:23:58 +02:00
Ricki Hirner
40034fe400 Update dependencies 2024-04-30 11:27:26 +02:00
Ricki Hirner
0b212fc6bd
WebDAV Mounts UI: M3, refactoring (#736)
* 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
2024-04-23 17:34:20 +02:00
Ricki Hirner
34b88c3ad8
Add M3 theme and apply to AboutActivity (#731)
* 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
2024-04-19 11:05:39 +02:00
Ricki Hirner
8c12300be3 Update dav4jvm to support relaxed parsing (bitfireAT/davx5#563)
* Update dav4jvm

* Add test
2024-04-17 13:25:48 +02:00
Ricki Hirner
463c18c4fb Update dependencies, including AGP 2024-04-10 14:10:12 +02:00
Ricki Hirner
b88c35169e
SettingsManager: use Flows instead of LiveData (#714)
* SettingsManager: use flows instead of LiveData

* Fix tests
2024-04-10 12:10:03 +02:00
Ricki Hirner
2c5292a52b Update dependencies 2024-04-09 15:38:41 +02:00
Ricki Hirner
6d462ea9e4 Update gradle, Hilt 2024-04-01 13:32:50 +02:00
Ricki Hirner
9b7a1dbe87 Update ical4android 2024-03-28 13:52:37 +01:00
Ricki Hirner
d0e5bbc0ad
Update copyright; upgrade dependencies (#687) 2024-03-27 17:32:35 +01:00
Arnau Mora
7b12a53616
Create a native Material theme and get rid of XML styles (#675)
* 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>
2024-03-27 17:21:02 +01:00
Ricki Hirner
079c3efdfd
Rewrite login activity to Compose (#672)
* Remove unnecessary layout files

* [WIP] Rewrite LoginActivity to Compose

* [WIP] Login type

* [WIP] Login by URL, Google, Nextcloud

* Remove unnecessary files and kapt

* More renaming and removing of unnecessary files

* Login with email, URL

* Login type: Advanced

* Drop "known base URLs"

* "Detect resources" and "Create account" page

* Introduce LoginTypesProvider interface
2024-03-24 18:25:30 +01:00
Arnau Mora
5921fb2bb6
Upgraded ical4android (#663)
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
2024-03-21 11:43:44 +01:00
Arnau Mora
28ddf5c86a
Provide a widget option (#643)
* Added Glance dependency

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

* Defined Glance widget

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

* Replaced with new worker

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

* Rename ui/widget to ui/composable, move sync widget into ui/widget; adapt strings

---------

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2024-03-20 12:37:57 +01:00
Ricki Hirner
c3bf95fa5c Update AGP to 8.3.1 2024-03-20 11:41:13 +01:00
Arnau Mora
d37718c58a
Rewrite CreateCalendarActivity to Compose (#645)
* Added color picker dialog

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

* Removed title

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

* Migrated to Jetpack Compose

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

* Removed unused layouts

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

* Fixed activity name

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

* Fixed duplicated title

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

* Cleanup

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

* Error tweaks

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

* Rewrite Create address book, Create collection, Delete collection

* [WIP] Create calendar: more properties; use own color picker (other one was M3)

* [WIP] Create calendar

* Add missing properties for calendars

* Support color, remove comments

---------

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2024-03-20 11:40:03 +01:00
Ricki Hirner
af5c732adc Update dependencies 2024-03-10 19:27:37 +01:00
Ricki Hirner
962dab7cf2
Rewrite AccountActivity to Compose (#617)
* [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
2024-03-08 16:32:55 +01:00
Ricki Hirner
3004bf14bc Update dependencies 2024-03-04 14:16:40 +01:00
Ricki Hirner
1337c8d648 Update ical4android 2024-03-02 00:00:18 +01:00
Ricki Hirner
dc1c77c336 Update APG and dependencies 2024-03-01 11:49:59 +01:00
Sunik Kupfer
86742f5b18
Don't upload event when calendar is read only (#587)
* 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>
2024-02-27 13:00:40 +01:00
Ricki Hirner
bc3dbf09fc
Update dependencies 2024-02-22 12:04:51 +01:00
Arnau Mora
0253cd3d89
Migrate to Kotlin DSL (#586)
* Migrated to Kotlin DSL

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

* Migrated to Kotlin DSL

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

* Update versions, suppress nofications for libs we don't want to upgrade

---------

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2024-02-20 11:48:02 +01:00
Ricki Hirner
af00ff0c4c
Update dependencies 2024-02-16 11:30:08 +01:00
Arnau Mora
8ac95e0796
Use gradle version catalog (#564)
* Using version catalog

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

* Fixed library names

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

* Remove lifecycle-ext

* Rename, reorder

* Remove unnecessary entries

* Use BOM for Compose again

* Try to fix BOM

---------

Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
2024-02-15 11:21:09 +01:00
Ricki Hirner
f2f40049b8 Update Kotlin, dependencies, Gradle 2023-12-09 11:56:00 +01:00
Ricki Hirner
273deecbe4 Update dependencies 2023-08-16 22:59:20 +02:00
Ricki Hirner
aa063adaba
Upgrade gradle, AGP, dependencies 2023-04-29 22:50:18 +02:00
Ricki Hirner
5156ff1380
Update dependencies 2023-01-20 11:12:32 +01:00
Ricki Hirner
40941f9bce
Move file, update gradle and plugin 2022-04-15 12:12:17 +02:00
Ricki Hirner
62af6f45ab Update gradle plugin 2022-01-27 12:18:09 +01:00
Ricki Hirner
0a17169a8b Update gradle and dependencies 2021-11-08 09:56:14 +01:00
Ricki Hirner
9d77b54d89 Update gradle 2021-07-29 11:16:46 +02:00
Ricki Hirner
d6dc42eb91 Update gradle plugin and version 2021-05-04 21:02:19 +02:00