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/WebsiteBuilder.kt')
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/WebsiteBuilder.kt51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/WebsiteBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/WebsiteBuilder.kt
new file mode 100644
index 0000000..16608ea
--- /dev/null
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/WebsiteBuilder.kt
@@ -0,0 +1,51 @@
+package at.bitfire.vcard4android.contactrow
+
+import android.net.Uri
+import android.provider.ContactsContract.CommonDataKinds.Website
+import at.bitfire.vcard4android.BatchOperation
+import at.bitfire.vcard4android.Contact
+import at.bitfire.vcard4android.property.CustomType
+import java.util.*
+
+class WebsiteBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+
+ override fun build(): List<BatchOperation.CpoBuilder> {
+ val result = LinkedList<BatchOperation.CpoBuilder>()
+ for (labeledUrl in contact.urls) {
+ val url = labeledUrl.property
+ if (url.value.isNullOrBlank())
+ continue
+
+ val typeCode: Int
+ var typeLabel: String? = null
+ if (labeledUrl.label != null) {
+ typeCode = Website.TYPE_CUSTOM
+ typeLabel = labeledUrl.label
+ } else
+ typeCode = when (url.type?.lowercase()) {
+ CustomType.Url.TYPE_HOMEPAGE -> Website.TYPE_HOMEPAGE
+ CustomType.Url.TYPE_BLOG -> Website.TYPE_BLOG
+ CustomType.Url.TYPE_PROFILE -> Website.TYPE_PROFILE
+ CustomType.Url.TYPE_FTP -> Website.TYPE_FTP
+ CustomType.HOME -> Website.TYPE_HOME
+ CustomType.WORK -> Website.TYPE_WORK
+ else -> Website.TYPE_OTHER
+ }
+
+ result += newDataRow()
+ .withValue(Website.URL, url.value)
+ .withValue(Website.TYPE, typeCode)
+ .withValue(Website.LABEL, typeLabel)
+ }
+ return result
+ }
+
+
+ object Factory: DataRowBuilder.Factory<WebsiteBuilder> {
+ override fun mimeType() = Website.CONTENT_ITEM_TYPE
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
+ WebsiteBuilder(dataRowUri, rawContactId, contact)
+ }
+
+} \ No newline at end of file