add IM exporting/importing
This commit is contained in:
parent
36fbc9f0c6
commit
60bcbcb4a6
3 changed files with 42 additions and 0 deletions
|
@ -65,6 +65,11 @@ const val HOME_FAX = "HOME;FAX"
|
||||||
const val PAGER = "PAGER"
|
const val PAGER = "PAGER"
|
||||||
const val MOBILE = "MOBILE"
|
const val MOBILE = "MOBILE"
|
||||||
|
|
||||||
|
// IMs not supported by Ez-vcard
|
||||||
|
const val HANGOUTS = "Hangouts"
|
||||||
|
const val QQ = "QQ"
|
||||||
|
const val JABBER = "Jabber"
|
||||||
|
|
||||||
const val ON_CLICK_CALL_CONTACT = 1
|
const val ON_CLICK_CALL_CONTACT = 1
|
||||||
const val ON_CLICK_VIEW_CONTACT = 2
|
const val ON_CLICK_VIEW_CONTACT = 2
|
||||||
const val ON_CLICK_EDIT_CONTACT = 3
|
const val ON_CLICK_EDIT_CONTACT = 3
|
||||||
|
|
|
@ -102,6 +102,22 @@ class VcfExporter {
|
||||||
card.addAddress(address)
|
card.addAddress(address)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
contact.IMs.forEach {
|
||||||
|
val impp = when (it.type) {
|
||||||
|
CommonDataKinds.Im.PROTOCOL_AIM -> Impp.aim(it.value)
|
||||||
|
CommonDataKinds.Im.PROTOCOL_YAHOO -> Impp.yahoo(it.value)
|
||||||
|
CommonDataKinds.Im.PROTOCOL_MSN -> Impp.msn(it.value)
|
||||||
|
CommonDataKinds.Im.PROTOCOL_ICQ -> Impp.icq(it.value)
|
||||||
|
CommonDataKinds.Im.PROTOCOL_SKYPE -> Impp.skype(it.value)
|
||||||
|
CommonDataKinds.Im.PROTOCOL_GOOGLE_TALK -> Impp(HANGOUTS, it.value)
|
||||||
|
CommonDataKinds.Im.PROTOCOL_QQ -> Impp(QQ, it.value)
|
||||||
|
CommonDataKinds.Im.PROTOCOL_JABBER -> Impp(JABBER, it.value)
|
||||||
|
else -> Impp(it.label, it.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
card.addImpp(impp)
|
||||||
|
}
|
||||||
|
|
||||||
if (contact.notes.isNotEmpty()) {
|
if (contact.notes.isNotEmpty()) {
|
||||||
card.addNote(contact.notes)
|
card.addNote(contact.notes)
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import org.joda.time.DateTime
|
||||||
import org.joda.time.format.DateTimeFormat
|
import org.joda.time.format.DateTimeFormat
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileOutputStream
|
import java.io.FileOutputStream
|
||||||
|
import java.net.URLDecoder
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class VcfImporter(val activity: SimpleActivity) {
|
class VcfImporter(val activity: SimpleActivity) {
|
||||||
|
@ -111,7 +112,27 @@ class VcfImporter(val activity: SimpleActivity) {
|
||||||
val photo = null
|
val photo = null
|
||||||
val thumbnailUri = savePhoto(photoData)
|
val thumbnailUri = savePhoto(photoData)
|
||||||
val cleanPhoneNumbers = ArrayList<PhoneNumber>()
|
val cleanPhoneNumbers = ArrayList<PhoneNumber>()
|
||||||
|
|
||||||
val IMs = ArrayList<IM>()
|
val IMs = ArrayList<IM>()
|
||||||
|
ezContact.impps.forEach {
|
||||||
|
val typeString = it.uri.scheme
|
||||||
|
val value = URLDecoder.decode(it.uri.toString().substring(it.uri.scheme.length + 1), "UTF-8")
|
||||||
|
val type = when {
|
||||||
|
it.isAim -> CommonDataKinds.Im.PROTOCOL_AIM
|
||||||
|
it.isYahoo -> CommonDataKinds.Im.PROTOCOL_YAHOO
|
||||||
|
it.isMsn -> CommonDataKinds.Im.PROTOCOL_MSN
|
||||||
|
it.isIcq -> CommonDataKinds.Im.PROTOCOL_ICQ
|
||||||
|
it.isSkype -> CommonDataKinds.Im.PROTOCOL_SKYPE
|
||||||
|
typeString == HANGOUTS -> CommonDataKinds.Im.PROTOCOL_GOOGLE_TALK
|
||||||
|
typeString == QQ -> CommonDataKinds.Im.PROTOCOL_QQ
|
||||||
|
typeString == JABBER -> CommonDataKinds.Im.PROTOCOL_JABBER
|
||||||
|
else -> CommonDataKinds.Im.PROTOCOL_CUSTOM
|
||||||
|
}
|
||||||
|
|
||||||
|
val label = if (type == CommonDataKinds.Im.PROTOCOL_CUSTOM) URLDecoder.decode(typeString, "UTF-8") else ""
|
||||||
|
val IM = IM(value, type, label)
|
||||||
|
IMs.add(IM)
|
||||||
|
}
|
||||||
|
|
||||||
val contact = Contact(0, prefix, firstName, middleName, surname, suffix, nickname, photoUri, phoneNumbers, emails, addresses, events,
|
val contact = Contact(0, prefix, firstName, middleName, surname, suffix, nickname, photoUri, phoneNumbers, emails, addresses, events,
|
||||||
targetContactSource, starred, contactId, thumbnailUri, photo, notes, groups, organization, websites, cleanPhoneNumbers, IMs)
|
targetContactSource, starred, contactId, thumbnailUri, photo, notes, groups, organization, websites, cleanPhoneNumbers, IMs)
|
||||||
|
|
Loading…
Reference in a new issue