Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bitfireAT/vcard4android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/bitfire/vcard4android/contactrow/NicknameHandler.kt')
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/NicknameHandler.kt36
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