diff options
Diffstat (limited to 'src/main/java/at/bitfire/vcard4android/contactrow/NicknameHandler.kt')
-rw-r--r-- | src/main/java/at/bitfire/vcard4android/contactrow/NicknameHandler.kt | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/NicknameHandler.kt b/src/main/java/at/bitfire/vcard4android/contactrow/NicknameHandler.kt new file mode 100644 index 0000000..558bf90 --- /dev/null +++ b/src/main/java/at/bitfire/vcard4android/contactrow/NicknameHandler.kt @@ -0,0 +1,36 @@ +package at.bitfire.vcard4android.contactrow + +import android.content.ContentValues +import android.provider.ContactsContract.CommonDataKinds.Nickname +import at.bitfire.vcard4android.Contact +import at.bitfire.vcard4android.LabeledProperty +import at.bitfire.vcard4android.property.CustomType + +object NicknameHandler: DataRowHandler() { + + override fun forMimeType() = Nickname.CONTENT_ITEM_TYPE + + override fun handle(values: ContentValues, contact: Contact) { + super.handle(values, contact) + + val name = values.getAsString(Nickname.NAME) ?: return + val nick = ezvcard.property.Nickname() + val labeledNick = LabeledProperty(nick) + + nick.values += name + + when (values.getAsInteger(Nickname.TYPE)) { + Nickname.TYPE_MAIDEN_NAME -> + nick.type = CustomType.Nickname.MAIDEN_NAME + Nickname.TYPE_SHORT_NAME -> + nick.type = CustomType.Nickname.SHORT_NAME + Nickname.TYPE_INITIALS -> + nick.type = CustomType.Nickname.INITIALS + Nickname.TYPE_CUSTOM -> + values.getAsString(Nickname.LABEL)?.let { labeledNick.label = it } + } + + contact.nickName = labeledNick + } + +}
\ No newline at end of file |