Skip to content

Releases: bitfireAT/davx5-ose

v4.5.4-ose

13 Sep 10:34
Compare
Choose a tag to compare

What's Changed

New features

  • Change "Account doesn't exist" toast message to "Account has been removed" for deleting accounts by @ArnyminerZ in #1650
  • Using new suggested icons for tabs by @ArnyminerZ in #1657

Bug fixes

  • Fix bottom bar color on custom tabs by @ArnyminerZ in #1640
  • Make "sync pending" work in AccountsScreen and AccountScreen by @rfc2822 in #1615
  • [Sync Framework] Android 14+: Cancel forever pending address book account syncs by @sunkup in #1643
  • Fix NPE when Event._ID is larger than Integer.MAX_VALUE by @rfc2822 in #1661
  • Don't disable sync-ability of address books when set to manual only by @sunkup in #1662
  • Handle null cases for Events.DIRTY by @ArnyminerZ in #1663
  • Disable pending sync indicator on Android 14+ by @sunkup in #1689
  • Fix KotlinNotImplementedError in LocalGroup update method by @rfc2822 in #1696
  • Update synctools to fix #1701 by @rfc2822 in #1702

Refactoring

  • Rename CollectionListRefresher to CollectionsWithoutHomeSetRefresher by @sunkup in #1644
  • Update synctools for events as Entity and EventAndExceptions by @rfc2822 in #1605

Dependencies

Other changes

Full Changelog: v4.5.3-ose...v4.5.4-ose

v4.5.3-ose

04 Aug 10:18
51d6ed2
Compare
Choose a tag to compare

What's Changed

New features

Bug fixes

  • [Sync framework] Fix sync always pending on Android 14+ by @sunkup in #1463
  • Use early entry point for sync adapter services by @rfc2822 in #1610
  • AndroidSyncFrameworkTest: allow optional states by @rfc2822 in #1625
  • Correctly handle SecurityException for acquireContentProvider by @ArnyminerZ in #1622
  • Fix ETag update logic in QueryChildDocumentsOperation by @rfc2822 in #1626

Refactoring

  • Update synctools for AndroidEvent2 by @rfc2822 in #1601
  • [UI] Use "(optional)" in labels to indicate optional textfields by @sunkup in #1571
  • Extract discoverHomesets() to ServiceRefresher by @sunkup in #1604
  • Choose real or fake (for tests) SyncAdapter over DI by @rfc2822 in #1608
  • Extract refreshHomesetsAndTheirCollections to HomeSetRefresher by @sunkup in #1606
  • [WebDAV] Implement command pattern, streamline lifecycle, remove WebdavScope by @rfc2822 in #1617
  • WebDAV: remove notifications, timeout logic by @rfc2822 in #1630
  • Replaced Webcal tab icon in collections list by @ArnyminerZ in #1628

Other changes

Full Changelog: v4.5.2.1-ose...v4.5.3-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