Skip to content

Releases: bitfireAT/davx5-ose

v4.5.2.1-ose

21 Jul 16:29
Compare
Choose a tag to compare

What's Changed

Bug fixes

Refactoring

Other changes

Full Changelog: v4.5.2-ose...v4.5.2.1-ose

v4.5.2-ose

21 Jul 09:18
Compare
Choose a tag to compare

What's Changed

Bug fixes

  • [Sync framework] Disable contacts content change triggered syncs if sync interval set to manual only by @sunkup in #1569

Refactoring

  • AndroidCalendar refactoring by @rfc2822 in #1560
  • Synctools: AndroidEvent companion object moved by @rfc2822 in #1572
  • [synctools] Use EventReader / EventWriter by @rfc2822 in #1573
  • Move external URIs from Constants to ExternalUris object by @rfc2822 in #1574
  • Move SyncState to resource package because it's not in the database by @rfc2822 in #1585
  • Move Insert/update to DAO by @rfc2822 in #1587
  • Fix exceptions being fetched as Parcelable instead of Serializable in DebugInfoActivity by @ArnyminerZ in #1597

Other changes

  • Use system defined line separator by @mbiebl in #1562
  • Sync davx5 / davx5-ose repos by @rfc2822 in #1575
  • Update cert4android to get 16 kB page size support over Conscrypt 2.5.3 by @rfc2822 in #1581
  • Update dependencies, including dav4jvm that updates okhttp to 5.x by @rfc2822 in #1593

Full Changelog: v4.5.1-ose...v4.5.2-ose

v4.5.1-ose

02 Jul 13:28
Compare
Choose a tag to compare

What's Changed

New features

Bug fixes

  • Update sync progress bar when pending in SAF by @sunkup in #1445
  • OAuth: Synchronize access token generation by @rfc2822 in #1547

Refactoring

  • Update synctools and use unified BatchOperation by @rfc2822 in #1543
  • Don't subclass AndroidEvent / AndroidCalendar populate / build methods anymore by @rfc2822 in #1544
  • Set iCalendar PRODID in Constants and use it in respective classes by @rfc2822 in #1550
  • LocalEvent: don't subclass AndroidEvent by @rfc2822 in #1551
  • LocalCalendar: don't subclass AndroidCalendar by @rfc2822 in #1552
  • Update to synctools version that uses explicit parsing / splitting by @rfc2822 in #1554

Other changes

  • Update README.md after switch to synctools by @mbiebl in #1549

Full Changelog: v4.5-ose...v4.5.1-ose

v4.5-ose

23 Jun 11:28
Compare
Choose a tag to compare

grafik

Video announcement and short tutorial

Announcement video: https://www.youtube.com/watch?v=3TWb5U6pPYg
YT Shorts version: https://www.youtube.com/shorts/fWhaLgcrcvI
Tutorial for Nextcloud: https://www.youtube.com/watch?v=Ppvt1TS8VVA

What is Push and why do I need it?

TLDR;

Get updates for your contacts/events/tasks/notes instantly on your mobile device instead of polling the server in regular intervals like once an hour.

Requirements:

  • DAVx5: minimal version DAVx5 4.5 (released June 2025)
  • FCM (pre-installed on devices with Google Play Store) or any UnifiedPush distributor app (ntfy, Conversations, the NextPush app for Android, Mozillas Sunup, etc).
  • The server must support WebDAV Push.

More Details

WebDAV Push is a very new addition to the WebDAV ecosystem and extends the WebDAV Standard with the ability to make synchronization in near-realtime. So if a file on the WebDAV server is added, changed or deleted you will receive this instantly also on your mobile devices via DAVx5.

This is especially useful for Contacts, Events and Tasks all of which DAVx5 offers synchronization for. Whenever a resource on the server changes (be it from directly changing it or if the change is being made from another device) you should get this update within a few seconds depending on network and server speed.

How-to-use in 5 steps (watch the video):

  1. Install and activate the servers WebDAV Push extension (for example the Nextcloud dav_push app in your Nextcloud App center – minimal version 0.0.3)
  2. If you add a new account, continue with step 3. If already have an existing DAVx5 account:
    • refresh the collection list in the CalDAV/CardDAV tabs to receive the new information that the server supports WebDAV Push and check in the details view of a collection if you see either a "Server announces Push support" or "Subscribed message with a date".
  3. If you add a fresh DAVx5 account, the capability of Push will be detected during setup.
  4. Choose or Change the Push distributor in the DAVx5 settings at the very bottom.
  5. To test it, add an event, contact or task on the server side and open your respective Contacts / Calendars / Tasks app on Android. You should get the change within 5 – 60 seconds (depending on network speed)

Resources for server developers:

In order to provide your users with the ability to real-time sync data from your server you can implement the WebDAV Push draft. Although it is still a draft this solution already is working in the public. You can see an implementation for example on Nextcloud where this is being solved via an app plugin that can be activated upon a users wish.

See also UnifiedPush 3: https://unifiedpush.org/ and https://codeberg.org/UnifiedPush


What's Changed since 4.4.11

New features

Bug fixes

Refactoring

Other changes

  • Replace ical4android and vcard4android with synctools by @rfc2822 in #1519
  • Redact Authorization header from HTTP requests by @mbiebl in #1520
  • Intro / battery optimizations warning: remove Samsung; change wording from "probably" to "may" by @rfc2822 in #1532
  • UnknownHostException by @rfc2822 in #1535

Full Changelog: v4.4.11-ose...v4.5-ose

v4.4.11-ose

30 May 15:03
Compare
Choose a tag to compare

What's Changed

New features

Bug fixes

  • [Push] Display FCM instead of DAVx⁵ in distributor settings by @ArnyminerZ in #1468
  • SyncManager: directly wrap HTTP calls with runInterruptible by @rfc2822 in #1472
  • Reset subscription URLs on distributor change by @sunkup in #1467
  • [Push] Append sync when already syncing by @sunkup in #1480
  • Implemented sort order for DAV documents by @ArnyminerZ in #1434
  • Handle when AccountActivity is started without account by @sunkup in #1481
  • TaskSyncer: accept nullable ResyncType by @rfc2822 in #1487

Refactoring

  • Simplify running suspending tests by @rfc2822 in #1452
  • Make SyncManager suspending (first part) by @rfc2822 in #1451
  • [Sync] Replace extras Bundle by explicit arguments by @rfc2822 in #1475
  • [CI] Run tests on pull requests instead of git pushes by @rfc2822 in #1479

Other changes

  • Always append one-time syncs by @rfc2822 in #1482
  • Use lowercase GroupIDs as a workaround for jitpack.io issues by @mbiebl in #1489

Full Changelog: v4.4.10-ose...v4.4.11-ose

v4.4.10-ose

09 May 09:58
Compare
Choose a tag to compare

What's Changed

New features

  • Sync after sync flag or forceReadOnly flag of a collection are changed by @sunkup in #1383
  • [Push] Support UnifiedPush Connector 3.x, VAPID, Encryption, Google FCM by @ArnyminerZ in #1325
  • [Push] Better title/description for Google FCM in UI by @ArnyminerZ in #1424
  • Send Push-Dont-Notify header by @sunkup in #1444

Bug fixes

Refactoring

Full Changelog: v4.4.9-ose...v4.4.10-ose

v4.4.9-ose

20 Apr 09:11
Compare
Choose a tag to compare

What's Changed

New features

Bug fixes

Refactoring

  • Refactor SharedPreferences edits to use Kotlin extension function by @rfc2822 in #1382

Other changes

Full Changelog: v4.4.8-ose...v4.4.9-ose

v4.4.8-ose

13 Mar 11:59
Compare
Choose a tag to compare

What's Changed

New features

  • Added confirmation dialog for "Distrust System Certificates" by @ArnyminerZ in #1307
  • Added timestamp to debug info by @ArnyminerZ in #1323
  • Show a notification at sync when ContentProvider inaccessible by @sunkup in #1278

Bug fixes

  • SyncAdapter: Hilt error handling by @rfc2822 in #1299
  • Add syncActive flag to control SyncAdapter behavior during tests by @rfc2822 in #1302
  • Skip login type selection when logging in via intent by @sunkup in #1267
  • DnsRecordResolverTest: Use seeded random number generator for deterministic test result by @sunkup in #1306
  • Remove special chars in address book account names by @sunkup in #1334
  • Track app foreground state via AppTheme using separate object by @sunkup in #1335

Refactoring

  • Refactor: replace deprecated getShowOnlyPersonalPair method and simplify removeAccount logic by @rfc2822 in #1304
  • Use TaskStackBuilder instead of PendingIntent.getActivity by @ArnyminerZ in #1293
  • Provide test address books via DI by @sunkup in #1310

Full Changelog: v4.4.7-ose...v4.4.8-ose

v4.4.7-ose

02 Feb 17:45
Compare
Choose a tag to compare

Note: This version removes support for the deprecated TLS versions 1.0 and TLS 1.1, as required by RFC 8996.

What's Changed

Bug fixes

  • [CI] Use if: !cancelled() instead of if: always() by @rfc2822 in #1266
  • MKCALENDAR does not send valid calendar-timezone by @ArnyminerZ in #1251
  • Syncer SecurityException: disable permission notification for now by @rfc2822 in #1284
  • Update cert4android to avoid Conscrypt crash in custom certificate handling by @rfc2822 in #1290
  • Open-source intro page: don't select a "dont show for... months" option by default by @rfc2822 in #1287
  • Add migration for Syncer URL → ID change by @rfc2822 in #1285

Refactoring

  • Use DI for HttpClient.Builder by @rfc2822 in #1250
  • MockK: use MockkRule if possible by @rfc2822 in #1269
  • Use ID to match DB collections with content provider collections by @sunkup in #1274
  • Move authority and ContentProvider creation to LocalDataStore by @rfc2822 in #1272

Full Changelog: v4.4.6-ose...v4.4.7-ose

v4.4.6-ose

25 Jan 14:00
Compare
Choose a tag to compare

What's Changed

New features

Bug fixes

  • Rename account with jtx collection: IllegalArgumentException by @ArnyminerZ in #1198
  • Collection list refresh: Don't update fetched homesets by @sunkup in #1222
  • Don't remove port from URI of nextcloud login intent by @sunkup in #1242
  • Fix show only personal setting not updating the view immediately by @sunkup in #1238

Refactoring

  • Simplify TasksAppManager and TasksAppWatcher by @rfc2822 in #1193
  • AccountSettings: allow to create new instances during migrations by @rfc2822 in #1195
  • Sync workers: use data type enum instead of specific authority by @rfc2822 in #1177
  • [Push] Upon notification, only enqueue sync for the respective service type by @ArnyminerZ in #1175
  • Use bundleOf and contentValuesOf, if applicable by @rfc2822 in #1204
  • DB: move migrations to separate files and use DI by @rfc2822 in #1206
  • Drop address books authority by @sunkup in #1217
  • Remove test account type by @rfc2822 in #1224
  • Use StringDef to annotate possible service and collection types by @sunkup in #1227
  • Make room entity properties immutable by @sunkup in #1218
  • Use DB StringDefs also in DAOs and methods where they are used by @ArnyminerZ in #1252
  • Replaced LocalContext casting with LocalActivity by @ArnyminerZ in #1261

Other changes

Full Changelog: v4.4.5-ose...v4.4.6-ose