flutter_contacts 2.6.0
flutter_contacts: ^2.6.0 copied to clipboard
Fast, complete contact management for Android, iOS & macOS — all fields, groups, accounts, vCards, native dialogs, listeners, SIM contacts, and number blocking.
2.6.0 #
- Fix Android's contacts provider crashing (and photos being lost) when many
photos are written at once, e.g.
createAll()with photos. Bulk photo writes are also several times faster, and photos are visible when the call returns. - Behavior change:
get()returnsnullfor a missing contact instead of throwing. - Behavior change: iOS/macOS labels without a mapping read back as
Label(XLabel.custom, 'text'), as on Android. - Fix
ContactFilter.ids([])throwing on iOS/macOS. - Fix
groups.get()returning deleted groups on Android. - Blocked-number calls refused by Android now throw
security_error, as documented. - Fix
showCreator()prefill on Android for phonetic names, nicknames and addresses.
2.5.0 #
update()andupdateAll()now throwread_only_contactinstead of silently dropping properties owned by a sync adapter, which Android's provider filters out of the write — thanks @yassinsameh for the request (#95, #260).
2.4.1 #
- Reject a second
showCreator()call on iOS while one is already presented, which previously left the first call's future unresolved. - Document that
showEditor()also returns null when the contact is deleted from the system editor, not only when the user cancels.
2.4.0 #
showEditor()on iOS now waits for the user to finish instead of resolving tonullimmediately; it returns the contact identifier on save.- Fix Android dropping events whose date uses ISO 8601 basic format
(
19960415,--0415), which vCard 4.0 mandates and Android's vCard importer stores verbatim — thanks @Ruman87 for the report and diagnosis (#248). - Fix
groups.addContacts()failing withGroup has no accounton Android 12 and below, where the platform exposes no default account andgroups.create()produces a local group — thanks @Eunno-An for the report (#247). - Fix the iOS native editor staying on screen when the contact is deleted from it (iOS 26+) — thanks @liliana-tagonsoft for the report and the fix (#250).
2.3.1 #
- Fix
showCreator()name prefill not displaying in some Android contact editors (e.g. Samsung) by passingInsert.NAMEinstead of aStructuredNamerow — thanks @CrashKiki for the fix (#241) and @Eunno-An for the report (#242).
2.3.0 #
- Android now returns the same contacts the system Contacts app displays,
instead of filtering on
IN_VISIBLE_GROUP = 1: contacts from sync adapters that don't mark them visible (e.g. MS365/Exchange) are included ingetAll(), operations by ID work regardless of visibility, and filters matching no contacts return none instead of all (#240). - Fix
showCreator()dropping the pre-filled photo on Android: the system editor ignores photos passed through the insert intent, so the photo is now applied to the contact after creation when the app holdsWRITE_CONTACTS(#242).
2.2.2 #
- Update README.
2.2.1 #
- Fix name updates writing to the wrong raw contact on Android contacts with multiple raw contacts (e.g. Google + WhatsApp): the name is now updated in place on the raw contact that already holds it, instead of the raw contact with the most properties (#236).
2.2.0 #
- Round-trip unknown vCard properties via
contact.extras(#21). - Migrate Android plugin to Built-in Kotlin; requires Flutter 3.44+ (#234).
2.1.0 #
FlutterContacts.native.showPicker()now returnsContact?(withidanddisplayNamealways populated) and accepts aproperties:set for additional fields. The picker itself remains permissionless on both platforms; on Android, requestingpropertiesrequiresREAD_CONTACTSand throws otherwise. Breaking: replaceawait …showPicker()with(await …showPicker())?.id(#232).- Dedupe phone numbers and emails returned by aggregated contacts on Android, keyed on normalized value + label (#229).
2.0.2 #
- Fix Flutter SDK resolution for FVM and IDE sync compatibility (#227)
2.0.1 #
- Fix Android build failure from hardcoded Flutter SDK path (#223)
2.0.0 #
- Stable 2.0 release. Includes all changes from 2.0.0-beta.1 through 2.0.0-beta.5.
2.0.0-beta.5 #
- Relax Dart/Flutter version requirements
- Fix for older Android versions without Settings.getDefaultAccount()
2.0.0-beta.4 #
- Migrate to Swift Package Manager
- Migrate to UISceneDelegate
2.0.0-beta.3 #
- Fix for #214
- Disable Swift Package Manager for example app
2.0.0-beta.2 #
- Expose Android identifiers and timestamp
- Add
androidLookupparameter toget()
2.0.0-beta.1 #
- Complete rewrite with improved architecture and performance
- Full support for Android, iOS, and macOS platforms
- Added support for all contact fields including groups, accounts, and metadata
- vCard import/export support (v2.1, v3.0, v4.0)
- Native dialogs for contact creation, editing, viewing, and picking
- Contact change listeners for real-time updates
- SIM contacts support (Android)
- Number blocking support (Android)
- Ringtone management (Android)
- Profile/Me card support
- Bulk operations for creating, updating, and deleting contacts
- Account-aware contact management
1.1.9+2 #
- Fix wrong namespace on android (https://github.com/QuisApp/flutter_contacts/issues/171) - thanks mattmapadmi
1.1.9+1 #
- Fix openExternalInsert returning null on android (https://github.com/QuisApp/flutter_contacts/issues/100, https://github.com/QuisApp/flutter_contacts/issues/161)
1.1.9 #
- Fix kotlin/android incompability issues with java 1.8 and java 17 (https://github.com/QuisApp/flutter_contacts/issues/142, https://github.com/QuisApp/flutter_contacts/issues/147, https://github.com/QuisApp/flutter_contacts/issues/158, https://github.com/QuisApp/flutter_contacts/issues/169, https://github.com/QuisApp/flutter_contacts/pull/170) - thanks to Valent1, Hirohumi, himsarevenus, PcolBP, and other contributors
- Fix openExternalInsert() crash - thanks rahulraj-idt
1.1.8 #
- Upgrade gradle, add null-safety in example_full.
1.1.7+1 #
- Fix for AGP <4.2 (https://github.com/QuisApp/flutter_contacts/issues/127) - thanks trfiladelfo
1.1.7 #
- Add feature to pre-populate fields in openExternalInsert() - thanks sakchhams
- Fix openExternalView and openExternalEdit on iOS (https://github.com/QuisApp/flutter_contacts/issues/91, https://github.com/QuisApp/flutter_contacts/issues/70)
- Support Gradle 8 (https://github.com/QuisApp/flutter_contacts/issues/123)
- Fix fetching notes on iOS - thanks starshipcoder and yassinsameh
- Fix bug with address label default on iOS - thanks MohamedAl-Kainai and yassinsameh
1.1.6 #
- Update kotlin/gradle versions (https://github.com/QuisApp/flutter_contacts/issues/69)
1.1.5+1 #
- Fix null pointer error (https://github.com/QuisApp/flutter_contacts/pull/71 - thanks anggrayudi)
- Update README
1.1.5 #
- Edit groups (iOS) / labels (Android) and group/label membership
1.1.4 #
- Fix gradle compile error (https://github.com/QuisApp/flutter_contacts/issues/49)
1.1.3 #
- Fix social media custom label bug (https://github.com/QuisApp/flutter_contacts/issues/42)
1.1.2 #
- Read/write starred contacts on Android (https://github.com/QuisApp/flutter_contacts/issues/37)
- Fix vCard photo encoding (https://github.com/QuisApp/flutter_contacts/issues/34)
1.1.1+2 #
- Update comments
1.1.1+1 #
- Update README
1.1.1 #
- Fetch groups (iOS) / labels (Android) and containers (iOS) / accounts (Android) (https://github.com/QuisApp/flutter_contacts/issues/29)
- Ability to request read-only permissions (https://github.com/QuisApp/flutter_contacts/issues/25)
1.1.0+4 #
- Load rawContact instead of contactId after update, since Android sometimes changes the contactId
1.1.0+3 #
- Fix withThumbnail on iOS
1.1.0+2 #
- Fix hashCode and ==
1.1.0+1 #
- Fix a diacritics bug
1.1.0 #
- Add ability to open external contact app to view, edit, pick or insert contacts (https://github.com/QuisApp/flutter_contacts/issues/16)
1.0.0+1 #
- Fix for permission handler on Android (https://github.com/QuisApp/flutter_contacts/pull/17) - thanks @scroollocker
- Fix type cast error on iOS 14.5 (https://github.com/QuisApp/flutter_contacts/issues/19) - thanks @jadasi
1.0.0 #
- Stable release 🎉
- Follow-up fix for https://github.com/QuisApp/flutter_contacts/issues/9
- Fix https://github.com/QuisApp/flutter_contacts/issues/14
0.3.3 #
- Fix lint warning
0.3.2 #
- Remove unused dependency
0.3.1 #
- Change Dart SDK version requirements
0.3.0 #
- Migrated to null-safety
0.2.2 #
- Support for requesting permissions
- Option to return non-visible contacts on Android and raw contacts on Android/iOS (https://github.com/QuisApp/flutter_contacts/issues/5)
0.2.1 #
- Format
0.2.0 #
- Not backward compatible!
- Photo and thumbnail are now distinct fields
Event.dateis nowEvent.year,Event.month,Event.day- Convenience methods
contact.insert(),contact.update(),contact.delete() - Much more advanced vCard parsing and exporting (to version 3.0 and 4.0)
- We can now add multiple listeners
- Removed dependencies to
build_runnerandjson_serializable - Implemented
toString(),hashCodeandoperator==for contact and properties - Support for notes on iOS13+ by setting
FlutterContacts.config.includeNotesOnIos13AndAbove = true - Added tests
0.1.3 #
- Remove extra print statements
0.1.2 #
- Properly delete events on iOS (https://github.com/QuisApp/flutter_contacts/issues/2)
0.1.1 #
- Fix date serialization on Android (https://github.com/QuisApp/flutter_contacts/issues/2)
0.1.0 #
- Support for vCard parsing and exporting
- Add
pedanticstatic analyzer - Make default values non-const so they can be mutated
- Add tests
- Update dependencies
- Deduplicate events
- Rename
socialMedia.dart->social_media.dart
0.0.7 #
- Bug fix with normalized phone number
0.0.6 #
- Added normalized phone numbers (android only)
- Deduplicate phone numbers and emails by default
0.0.5 #
- Improved README and dartdoc.
- Added option to
getFullContacts()with high-res photos. - Fixed bug on iOS where low-res photos were fetched instead of high-res and vice-versa.
- Better Kotlin null safety.
0.0.4 #
newContact()now returns the full contact instead of ID / raw ID.
0.0.3 #
- Fix README typos.
0.0.2 #
- Fix support for iOS.
0.0.1 #
- Initial release.