Implement contact plugins

This commit is contained in:
MM20
2025-04-06 12:53:38 +02:00
parent cab93f87aa
commit 02cec92d72
14 changed files with 321 additions and 59 deletions
@@ -11,6 +11,11 @@ data class Contact(
* A unique and stable identifier for this contact.
*/
val id: String,
/**
* The URI to view this contact.
*/
val uri: Uri,
/**
* The display name for this contact.
* First name + last name, if applicable.
@@ -22,6 +22,7 @@ abstract class ContactProvider(
override fun List<Contact>.toCursor(): Cursor {
return buildCursor(ContactColumns, this) {
put(ContactColumns.Id, it.id)
put(ContactColumns.Uri, it.uri.toString())
put(ContactColumns.Name, it.name)
put(ContactColumns.PhoneNumbers, it.phoneNumbers)
put(ContactColumns.EmailAddresses, it.emailAddresses)
@@ -35,6 +36,7 @@ abstract class ContactProvider(
return Contact(
id = get(ContactColumns.Id) ?: return null,
name = get(ContactColumns.Name) ?: return null,
uri = Uri.parse(get(ContactColumns.Uri) ?: return null),
phoneNumbers = get(ContactColumns.PhoneNumbers) ?: emptyList(),
emailAddresses = get(ContactColumns.EmailAddresses) ?: emptyList(),
postalAddresses = get(ContactColumns.PostalAddresses) ?: emptyList(),