blob: 7e3020e01d153f0f0f3c60738ae1d3aa076bc96f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
package at.bitfire.vcard4android.contactrow
import android.content.ContentValues
import android.provider.ContactsContract.CommonDataKinds.Phone
import at.bitfire.vcard4android.Contact
import at.bitfire.vcard4android.LabeledProperty
import at.bitfire.vcard4android.property.CustomType
import ezvcard.parameter.TelephoneType
import ezvcard.property.Telephone
object PhoneHandler: DataRowHandler() {
override fun forMimeType() = Phone.CONTENT_ITEM_TYPE
override fun handle(values: ContentValues, contact: Contact) {
super.handle(values, contact)
val number = values.getAsString(Phone.NUMBER) ?: return
val tel = Telephone(number)
val labeledNumber = LabeledProperty(tel)
when (values.getAsInteger(Phone.TYPE)) {
Phone.TYPE_HOME ->
tel.types += TelephoneType.HOME
Phone.TYPE_MOBILE ->
tel.types += TelephoneType.CELL
Phone.TYPE_WORK ->
tel.types += TelephoneType.WORK
Phone.TYPE_FAX_WORK -> {
tel.types += TelephoneType.FAX
tel.types += TelephoneType.WORK
}
Phone.TYPE_FAX_HOME -> {
tel.types += TelephoneType.FAX
tel.types += TelephoneType.HOME
}
Phone.TYPE_PAGER ->
tel.types += TelephoneType.PAGER
Phone.TYPE_CALLBACK ->
tel.types += CustomType.Phone.CALLBACK
Phone.TYPE_CAR ->
tel.types += TelephoneType.CAR
Phone.TYPE_COMPANY_MAIN ->
tel.types += CustomType.Phone.COMPANY_MAIN
Phone.TYPE_ISDN ->
tel.types += TelephoneType.ISDN
Phone.TYPE_MAIN ->
tel.types += TelephoneType.VOICE
Phone.TYPE_OTHER_FAX ->
tel.types += TelephoneType.FAX
Phone.TYPE_RADIO ->
tel.types += CustomType.Phone.RADIO
Phone.TYPE_TELEX ->
tel.types += TelephoneType.TEXTPHONE
Phone.TYPE_TTY_TDD ->
tel.types += TelephoneType.TEXT
Phone.TYPE_WORK_MOBILE -> {
tel.types += TelephoneType.CELL
tel.types += TelephoneType.WORK
}
Phone.TYPE_WORK_PAGER -> {
tel.types += TelephoneType.PAGER
tel.types += TelephoneType.WORK
}
Phone.TYPE_ASSISTANT ->
tel.types += CustomType.Phone.ASSISTANT
Phone.TYPE_MMS ->
tel.types += CustomType.Phone.MMS
Phone.TYPE_CUSTOM -> {
values.getAsString(Phone.LABEL)?.let { label ->
labeledNumber.label = label
}
}
}
if (values.getAsInteger(Phone.IS_PRIMARY) != 0)
tel.pref = 1
contact.phoneNumbers += labeledNumber
}
}
|