Download Latest Version v0.4.0 - New APIs, a minor bugfix, and some deprecations plus a breaking change due to big build_dependency updates source code.zip (8.5 MB)
Email in envelope

Get an email when there's a new version of Android Contacts, Reborn

Home / 0.4.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-02-06 3.8 kB
v0.4.0 - New APIs, a minor bugfix, and some deprecations plus a breaking change due to big build_dependency updates source code.tar.gz 2025-02-06 8.0 MB
v0.4.0 - New APIs, a minor bugfix, and some deprecations plus a breaking change due to big build_dependency updates source code.zip 2025-02-06 8.5 MB
Totals: 3 Items   16.5 MB 0

It's been almost a year since the last release. How time flies when life and work gets busy ๐Ÿ˜… I'm super hyped to have found some time to get some work done on this precious library ๐Ÿ”ฅ

The main intent with this release was to get the build and dependencies up-to-date so this library does not get left behind in the dust with the fast pace of tech. We are now once again using the cutting-edge versions of AGP, KGP, Gradle, target/compileSdk, coroutines, tedpermissions, mkdocs, and mkdocs material ๐Ÿ˜

Aside from that, there's some new features, a minor bugfix, and deprecations and breaking changes that resulted from the big build/dep updates.

โš ๏ธ Proper semantic versioning is not being followed prior to version 1.0.0. This means that minor version bumps may contain breaking changes. More context in https://github.com/vestrel00/contacts-android/discussions/284#discussioncomment-11923170

๐Ÿ’ก New features & improvements

  1. Dedicated API for querying contacts using lookup keys [#364], documentation
  2. Allow overriding common (builtin) data kinds via custom data integration [#344], documentation
  3. Support multiple Notes per RawContact [#343], documentation

๐Ÿž Bug fixes

  1. ContactRefresh util may return null if local contact lookup key changes due to primary display name source update [#365]

๐Ÿ—๏ธ Deprecations

  1. Deprecate Im entity, fields, and related functions (deprecated in Android API 35) [#361]
  2. Deprecate SipAddress entity, fields, and related functions (deprecated in Android API 35) [#362]

๐Ÿ’ฃ Breaking changes

  1. API's data class' 'copy' methods no longer have public visibility [#358]

โ™ป๏ธ Build/Dependency updates

  1. December 2024 Build & Dependency Updates [#356]
  2. AGP 8.7.3
  3. KGP 2.1.0
  4. Gradle 8.9
  5. target/compileSdk 35
  6. coroutines 1.10.1
  7. tedpermissions 3.4.2
  8. mkdocs 1.6.1
  9. mkdocs material 9.5.41

๐Ÿง— Migrating from 0.3.2 -> 0.4.0

API's data class' 'copy' methods no longer have public visibility [#358]

You should not be affected by this, at least that is my hope ๐Ÿคž

However, for those of you that have been using the copy method of some data classes such as Contact, MutableContact, RawContact, MutableRawContact, Address, MutableAddress, Email, MutableEmail, Phone, MutablePhone, etc... you will no longer be allowed to do that ๐Ÿ˜…

There is no actual "migration guide". You simply cannot do it anymore. The API has always been designed for this to be the case. Vandolf apologizes if this was not made clear anywhere ๐Ÿ™‡. It was simply not strictly enforceable at the language level prior to Kotlin version 2. If you want more context, read the Side note section of [#358] ๐Ÿ™

It is recommended to rethink your approach to using this API. You should not need to or be doing it (using copy method).

If you believe that the API should provide a copy method for certain data classes with internal constructors, feel free to start a discussion.

๐Ÿ—’๏ธ Full Changelog

https://github.com/vestrel00/contacts-android/compare/0.3.2...0.4.0

๐Ÿ—ฃ๏ธ Discuss this release

Head on over to the v0.4.0 Release Checklist and leave a comment and/or some reactions ๐Ÿ™ ๐Ÿ˜„

Source: README.md, updated 2025-02-06