Inspired by cwac-adapter, RecyclerAdapterWrapper allows you to add more functionalities into an existing RecyclerView.Adapter. The wrapper delegates all behaviors to the wrapped object, you just need to override the specific behaviors you need.
Simplifies and wraps all Contacts Provider / ContactsContract functionality in a nice and simple Kotlin/Java API so you no longer have to deal with content resolvers and cursors.
The API provides:
Models for all ContactsContracts entities (e.g. Contact, RawContact, Data; name, email, phone, etc)
Get/set/remove contact photo, thumbnail, starred, send to voicemail, custom ringtone, and default (primary) data
Link/unlink Contacts
Optional extensions for async work and permissions handling using Kotlin Coroutines
Planned optional support for RxJava and Kotlin Flow
Custom data integration
Framework-agnostic design. The core API will not force you to use RxJava, Flow, or any other frameworks. Just pure Kotlin/Java. Up to you how you want to use it.