-
-
Notifications
You must be signed in to change notification settings - Fork 15
/
ContactStoreDSL.kt
40 lines (33 loc) · 1.3 KB
/
ContactStoreDSL.kt
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
package com.alexstyl.contactstore
suspend fun ContactStore.execute(request: SaveRequest.() -> Unit) {
execute(SaveRequest().apply(request))
}
fun SaveRequest.insert(builder: MutableContactBuilder.() -> Unit) {
val values = MutableContactBuilder().apply(builder)
insert(MutableContact().apply {
isStarred = values.isStarred
imageData = values.imageData
prefix = values.prefix
firstName = values.firstName
middleName = values.middleName
lastName = values.lastName
suffix = values.suffix
fullNameStyle = values.fullNameStyle
phoneticFirstName = values.phoneticFirstName
phoneticLastName = values.phoneticLastName
phoneticMiddleName = values.phoneticMiddleName
nickname = values.nickname
note = values.note?.let { Note(it) }
jobTitle = values.jobTitle
organization = values.organization
phones.addAll(values.phones)
mails.addAll(values.mails)
events.addAll(values.events)
postalAddresses.addAll(values.postalAddresses)
webAddresses.addAll(values.webAddresses)
groups.addAll(values.groupMemberships)
sipAddresses.addAll(values.sipAddresses)
relations.addAll(values.relations)
imAddresses.addAll(values.imAddresses)
})
}