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:
authorSunik Kupfer <kupfer@bitfire.at>2022-10-19 15:27:45 +0300
committerGitHub <noreply@github.com>2022-10-19 15:27:45 +0300
commit7fbec18c28cf242225126f36aa858e007b28efac (patch)
tree0fa352325208899b9b8c81a5dbbeaa9950ca9041
parent581eac4117634bf59eba14b69acb8bb1cce95d2a (diff)
8 support IS_READ_ONLY for Data and Group rows (closes bitfireAT/vcard4android#8) (#9)
* IS_READ_ONLY support for Data rows * GROUP_IS_READ_ONLY support for AndroidGroup * introduce default parameter to leave tests unchanged * add test to check whether the read-only flag is set for groups * add test for DataRowBuilder setting IS_READ_ONLY * remove default param and edit all the constructor calls in tests * add KDoc params to DataRowBuilder class
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/AndroidGroupTest.kt44
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/DataRowBuilderTest.kt37
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/EmailBuilderTest.kt20
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/EventBuilderTest.kt16
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/ImBuilderTest.kt22
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/NicknameBuilderTest.kt14
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/NoteBuilderTest.kt6
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/OrganizationBuilderTest.kt16
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/PhoneBuilderTest.kt46
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/PhotoBuilderTest.kt7
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/RelationBuilderTest.kt48
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/SipAddressBuilderTest.kt18
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/StructuredNameBuilderTest.kt4
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/StructuredPostalBuilderTest.kt12
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/contactrow/WebsiteBuilderTest.kt24
-rw-r--r--src/main/java/at/bitfire/vcard4android/AndroidContact.kt2
-rw-r--r--src/main/java/at/bitfire/vcard4android/AndroidGroup.kt3
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/ContactProcessor.kt4
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/DataRowBuilder.kt20
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/EmailBuilder.kt8
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/EventBuilder.kt8
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/ImBuilder.kt8
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/NicknameBuilder.kt8
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/NoteBuilder.kt8
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/OrganizationBuilder.kt8
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/PhoneBuilder.kt8
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/PhotoBuilder.kt8
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/RelationBuilder.kt8
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/SipAddressBuilder.kt8
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/StructuredNameBuilder.kt8
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/StructuredPostalBuilder.kt8
-rw-r--r--src/main/java/at/bitfire/vcard4android/contactrow/WebsiteBuilder.kt8
32 files changed, 279 insertions, 188 deletions
diff --git a/src/androidTest/java/at/bitfire/vcard4android/AndroidGroupTest.kt b/src/androidTest/java/at/bitfire/vcard4android/AndroidGroupTest.kt
index 03c5ac0..42c8828 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/AndroidGroupTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/AndroidGroupTest.kt
@@ -71,4 +71,48 @@ class AndroidGroupTest {
assertEquals(0, addressBook.queryGroups("${ContactsContract.Groups.TITLE}=?", arrayOf(contact.displayName!!)).size)
}
+ @Test
+ fun testAdd_readOnly() {
+ addressBook.readOnly = true
+
+ val contact = Contact()
+ contact.displayName = "at.bitfire.vcard4android-AndroidGroupTest"
+ contact.note = "(test group)"
+
+ // ensure we start without this group
+ assertEquals(0, addressBook.queryGroups("${ContactsContract.Groups.TITLE}=?", arrayOf(contact.displayName!!)).size)
+
+ // create group
+ val group = AndroidGroup(addressBook, contact, null, null)
+ group.add()
+ val groups = addressBook.queryGroups("${ContactsContract.Groups.GROUP_IS_READ_ONLY}=?", arrayOf("1"))
+ assertEquals(1, groups.size)
+
+ // delete group
+ group.delete()
+ assertEquals(0, addressBook.queryGroups("${ContactsContract.Groups.TITLE}=?", arrayOf(contact.displayName!!)).size)
+ }
+
+ @Test
+ fun testAdd_notReadOnly() {
+ addressBook.readOnly = false
+
+ val contact = Contact()
+ contact.displayName = "at.bitfire.vcard4android-AndroidGroupTest"
+ contact.note = "(test group)"
+
+ // ensure we start without this group
+ assertEquals(0, addressBook.queryGroups("${ContactsContract.Groups.TITLE}=?", arrayOf(contact.displayName!!)).size)
+
+ // create group
+ val group = AndroidGroup(addressBook, contact, null, null)
+ group.add()
+ val groups = addressBook.queryGroups("${ContactsContract.Groups.GROUP_IS_READ_ONLY}=?", arrayOf("0"))
+ assertEquals(1, groups.size)
+
+ // delete group
+ group.delete()
+ assertEquals(0, addressBook.queryGroups("${ContactsContract.Groups.TITLE}=?", arrayOf(contact.displayName!!)).size)
+ }
+
}
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/DataRowBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/DataRowBuilderTest.kt
new file mode 100644
index 0000000..2fef9d9
--- /dev/null
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/DataRowBuilderTest.kt
@@ -0,0 +1,37 @@
+/***************************************************************************************************
+ * Copyright © All Contributors. See LICENSE and AUTHORS in the root directory for details.
+ **************************************************************************************************/
+
+package at.bitfire.vcard4android.contactrow
+
+import android.net.Uri
+import at.bitfire.vcard4android.BatchOperation
+import at.bitfire.vcard4android.Contact
+import org.junit.Assert.*
+import org.junit.Test
+import java.util.*
+
+class DataRowBuilderTest {
+
+ @Test
+ fun newDataRow_readOnly() {
+ val list = TestDataRowBuilder(Uri.EMPTY, 0, Contact(), true).build()
+ assertEquals(1, list[0].values["is_read_only"])
+ }
+
+ @Test
+ fun newDataRow_notReadOnly() {
+ val list = TestDataRowBuilder(Uri.EMPTY, 0, Contact(), false).build()
+ assertEquals(null, list[0].values["is_read_only"]) // ensure value was not set
+ }
+
+ class TestDataRowBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder("", dataRowUri, rawContactId, contact, readOnly) {
+ override fun build(): List<BatchOperation.CpoBuilder> {
+ return LinkedList<BatchOperation.CpoBuilder>().apply {
+ add(newDataRow())
+ }
+ }
+ }
+
+} \ No newline at end of file
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/EmailBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/EmailBuilderTest.kt
index afd6cc2..6768dc8 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/EmailBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/EmailBuilderTest.kt
@@ -18,7 +18,7 @@ class EmailBuilderTest {
@Test
fun testEmpty() {
- EmailBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ EmailBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -28,7 +28,7 @@ class EmailBuilderTest {
fun testAddress_Address() {
EmailBuilder(Uri.EMPTY, null, Contact().apply {
emails += LabeledProperty(Email("test@example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(1, result.size)
assertEquals("test@example.com", result[0].values[CommonDataKinds.Email.ADDRESS])
}
@@ -38,7 +38,7 @@ class EmailBuilderTest {
fun testAddress_Blank() {
EmailBuilder(Uri.EMPTY, null, Contact().apply {
emails += LabeledProperty(Email(""))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -48,7 +48,7 @@ class EmailBuilderTest {
fun testLabel() {
EmailBuilder(Uri.EMPTY, null, Contact().apply {
emails += LabeledProperty(Email("test@example.com"), "Label")
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals("Label", result[0].values[CommonDataKinds.Email.LABEL])
}
}
@@ -58,7 +58,7 @@ class EmailBuilderTest {
fun testMimeType() {
EmailBuilder(Uri.EMPTY, null, Contact().apply {
emails += LabeledProperty(Email("test@example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Email.CONTENT_ITEM_TYPE, result[0].values[CommonDataKinds.Email.MIMETYPE])
}
}
@@ -68,7 +68,7 @@ class EmailBuilderTest {
fun testPref_None() {
EmailBuilder(Uri.EMPTY, null, Contact().apply {
emails += LabeledProperty(Email("test@example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(0, result[0].values[CommonDataKinds.Email.IS_PRIMARY])
}
}
@@ -79,7 +79,7 @@ class EmailBuilderTest {
emails += LabeledProperty(Email("test@example.com").apply {
pref = 1
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(1, result[0].values[CommonDataKinds.Email.IS_PRIMARY])
}
}
@@ -91,7 +91,7 @@ class EmailBuilderTest {
emails += LabeledProperty(Email("test@example.com").apply {
types.add(EmailType.HOME)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Email.TYPE_HOME, result[0].values[CommonDataKinds.Email.TYPE])
}
}
@@ -102,7 +102,7 @@ class EmailBuilderTest {
emails += LabeledProperty(Email("test@example.com").apply {
types.add(CustomType.Email.MOBILE)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Email.TYPE_MOBILE, result[0].values[CommonDataKinds.Email.TYPE])
}
}
@@ -113,7 +113,7 @@ class EmailBuilderTest {
emails += LabeledProperty(Email("test@example.com").apply {
types.add(EmailType.WORK)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Email.TYPE_WORK, result[0].values[CommonDataKinds.Email.TYPE])
}
}
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/EventBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/EventBuilderTest.kt
index 9e3f2a3..bc5ca2d 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/EventBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/EventBuilderTest.kt
@@ -20,7 +20,7 @@ class EventBuilderTest {
@Test
fun testEmpty() {
- EventBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ EventBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -32,7 +32,7 @@ class EventBuilderTest {
anniversary = Anniversary(Calendar.getInstance().apply {
set(1984, /* zero-based */ 7, 20)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(1, result.size)
assertEquals("1984-08-20", result[0].values[CommonDataKinds.Event.START_DATE])
assertEquals(CommonDataKinds.Event.TYPE_ANNIVERSARY, result[0].values[CommonDataKinds.Event.TYPE])
@@ -60,7 +60,7 @@ class EventBuilderTest {
anniversary = Anniversary(Calendar.getInstance().apply {
set(1984, /* zero-based */ 7, 20)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(1, result.size)
assertEquals("1984-08-20", result[0].values[CommonDataKinds.Event.START_DATE])
}
@@ -74,7 +74,7 @@ class EventBuilderTest {
.date(20)
.month(8)
.build()), "Custom Event")
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Event.TYPE_CUSTOM, result[0].values[CommonDataKinds.Event.TYPE])
assertEquals("Custom Event", result[0].values[CommonDataKinds.Event.LABEL])
}
@@ -88,7 +88,7 @@ class EventBuilderTest {
set(1984, /* zero-based */ 7, 20)
})
}
- EventBuilder(Uri.EMPTY, null, c).build().also { result ->
+ EventBuilder(Uri.EMPTY, null, c, false).build().also { result ->
assertEquals(CommonDataKinds.Event.CONTENT_ITEM_TYPE, result[0].values[CommonDataKinds.Event.MIMETYPE])
}
}
@@ -100,7 +100,7 @@ class EventBuilderTest {
anniversary = Anniversary(Calendar.getInstance().apply {
set(1984, /* zero-based */ 7, 20)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Event.TYPE_ANNIVERSARY, result[0].values[CommonDataKinds.Event.TYPE])
}
}
@@ -111,7 +111,7 @@ class EventBuilderTest {
birthDay = Birthday(Calendar.getInstance().apply {
set(1984, /* zero-based */ 7, 20)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Event.TYPE_BIRTHDAY, result[0].values[CommonDataKinds.Event.TYPE])
}
}
@@ -123,7 +123,7 @@ class EventBuilderTest {
.date(20)
.month(8)
.build()))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Event.TYPE_OTHER, result[0].values[CommonDataKinds.Event.TYPE])
}
}
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/ImBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/ImBuilderTest.kt
index 164d3bd..e9fdfeb 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/ImBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/ImBuilderTest.kt
@@ -17,7 +17,7 @@ class ImBuilderTest {
@Test
fun testEmpty() {
- ImBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ ImBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -27,7 +27,7 @@ class ImBuilderTest {
fun testHandle_Empty() {
ImBuilder(Uri.EMPTY, null, Contact().apply {
impps += LabeledProperty(Impp(""))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -36,7 +36,7 @@ class ImBuilderTest {
fun testHandle_WithoutProtocol() {
ImBuilder(Uri.EMPTY, null, Contact().apply {
impps += LabeledProperty(Impp("test@example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -45,7 +45,7 @@ class ImBuilderTest {
fun testHandle_WithProtocol() {
ImBuilder(Uri.EMPTY, null, Contact().apply {
impps += LabeledProperty(Impp.xmpp("jabber@example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(1, result.size)
assertEquals(CommonDataKinds.Im.PROTOCOL_CUSTOM, result[0].values[CommonDataKinds.Im.PROTOCOL])
assertEquals("xmpp", result[0].values[CommonDataKinds.Im.CUSTOM_PROTOCOL])
@@ -58,7 +58,7 @@ class ImBuilderTest {
fun testIgnoreSip() {
ImBuilder(Uri.EMPTY, null, Contact().apply {
impps += LabeledProperty(Impp("sip:voip@example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -68,7 +68,7 @@ class ImBuilderTest {
fun testLabel() {
ImBuilder(Uri.EMPTY, null, Contact().apply {
impps += LabeledProperty(Impp.xmpp("jabber@example.com"), "Label")
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Im.TYPE_CUSTOM, result[0].values[CommonDataKinds.Im.TYPE])
assertEquals("Label", result[0].values[CommonDataKinds.Im.LABEL])
}
@@ -79,7 +79,7 @@ class ImBuilderTest {
fun testMimeType() {
ImBuilder(Uri.EMPTY, null, Contact().apply {
impps += LabeledProperty(Impp.xmpp("jabber@example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Im.CONTENT_ITEM_TYPE, result[0].values[CommonDataKinds.Im.MIMETYPE])
}
}
@@ -89,7 +89,7 @@ class ImBuilderTest {
fun testProtocol_Sip() {
ImBuilder(Uri.EMPTY, null, Contact().apply {
impps += LabeledProperty(Impp.sip("voip@example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
// handled by SipAddressHandler
assertEquals(0, result.size)
}
@@ -102,7 +102,7 @@ class ImBuilderTest {
impps += LabeledProperty(Impp.xmpp("jabber@example.com").apply {
types.add(ImppType.HOME)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Im.TYPE_HOME, result[0].values[CommonDataKinds.Im.TYPE])
}
}
@@ -114,7 +114,7 @@ class ImBuilderTest {
impps += LabeledProperty(Impp.xmpp("jabber@example.com").apply {
types.add(ImppType.MOBILE)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Im.TYPE_OTHER, result[0].values[CommonDataKinds.Im.TYPE])
}
}
@@ -125,7 +125,7 @@ class ImBuilderTest {
impps += LabeledProperty(Impp.xmpp("jabber@example.com").apply {
types.add(ImppType.WORK)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Im.TYPE_WORK, result[0].values[CommonDataKinds.Im.TYPE])
}
}
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/NicknameBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/NicknameBuilderTest.kt
index ad5484f..5fd643d 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/NicknameBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/NicknameBuilderTest.kt
@@ -17,7 +17,7 @@ class NicknameBuilderTest {
@Test
fun testEmpty() {
- NicknameBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ NicknameBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -31,7 +31,7 @@ class NicknameBuilderTest {
type = CustomType.Nickname.SHORT_NAME // will be ignored because there's a label
}, "Label 1")
}
- NicknameBuilder(Uri.EMPTY, null, c).build().also { result ->
+ NicknameBuilder(Uri.EMPTY, null, c, false).build().also { result ->
assertEquals(1, result.size)
assertEquals("Nick 1", result[0].values[CommonDataKinds.Nickname.NAME])
assertEquals(CommonDataKinds.Nickname.TYPE_CUSTOM, result[0].values[CommonDataKinds.Nickname.TYPE])
@@ -47,7 +47,7 @@ class NicknameBuilderTest {
values.add("Name 1")
})
}
- NicknameBuilder(Uri.EMPTY, null, c).build().also { result ->
+ NicknameBuilder(Uri.EMPTY, null, c, false).build().also { result ->
assertEquals(CommonDataKinds.Nickname.CONTENT_ITEM_TYPE, result[0].values[CommonDataKinds.Nickname.MIMETYPE])
}
}
@@ -61,7 +61,7 @@ class NicknameBuilderTest {
type = CustomType.Nickname.INITIALS
})
}
- NicknameBuilder(Uri.EMPTY, null, c).build().also { result ->
+ NicknameBuilder(Uri.EMPTY, null, c, false).build().also { result ->
assertEquals(1, result.size)
assertEquals("N1", result[0].values[CommonDataKinds.Nickname.NAME])
assertEquals(CommonDataKinds.Nickname.TYPE_INITIALS, result[0].values[CommonDataKinds.Nickname.TYPE])
@@ -76,7 +76,7 @@ class NicknameBuilderTest {
type = CustomType.Nickname.MAIDEN_NAME
})
}
- NicknameBuilder(Uri.EMPTY, null, c).build().also { result ->
+ NicknameBuilder(Uri.EMPTY, null, c, false).build().also { result ->
assertEquals(1, result.size)
assertEquals("Mai Den", result[0].values[CommonDataKinds.Nickname.NAME])
assertEquals(CommonDataKinds.Nickname.TYPE_MAIDEN_NAME, result[0].values[CommonDataKinds.Nickname.TYPE])
@@ -91,7 +91,7 @@ class NicknameBuilderTest {
type = CustomType.Nickname.SHORT_NAME
})
}
- NicknameBuilder(Uri.EMPTY, null, c).build().also { result ->
+ NicknameBuilder(Uri.EMPTY, null, c, false).build().also { result ->
assertEquals(1, result.size)
assertEquals("Short Name", result[0].values[CommonDataKinds.Nickname.NAME])
assertEquals(CommonDataKinds.Nickname.TYPE_SHORT_NAME, result[0].values[CommonDataKinds.Nickname.TYPE])
@@ -107,7 +107,7 @@ class NicknameBuilderTest {
values.add("Nick 2")
})
}
- NicknameBuilder(Uri.EMPTY, null, c).build().also { result ->
+ NicknameBuilder(Uri.EMPTY, null, c, false).build().also { result ->
assertEquals(2, result.size)
assertEquals("Nick 1", result[0].values[CommonDataKinds.Nickname.NAME])
assertEquals("Nick 2", result[1].values[CommonDataKinds.Nickname.NAME])
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/NoteBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/NoteBuilderTest.kt
index 751f1f7..46e02da 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/NoteBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/NoteBuilderTest.kt
@@ -14,7 +14,7 @@ class NoteBuilderTest {
@Test
fun testNote_Empty() {
- NoteBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ NoteBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -23,7 +23,7 @@ class NoteBuilderTest {
fun testNote_Blank() {
NoteBuilder(Uri.EMPTY, null, Contact().apply {
note = ""
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -32,7 +32,7 @@ class NoteBuilderTest {
fun testNote_Value() {
NoteBuilder(Uri.EMPTY, null, Contact().apply {
note = "Some Note"
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(1, result.size)
assertEquals(CommonDataKinds.Note.CONTENT_ITEM_TYPE, result[0].values[CommonDataKinds.Note.MIMETYPE])
assertEquals("Some Note", result[0].values[CommonDataKinds.Note.NOTE])
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/OrganizationBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/OrganizationBuilderTest.kt
index a6c9ad2..3bf433f 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/OrganizationBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/OrganizationBuilderTest.kt
@@ -16,7 +16,7 @@ class OrganizationBuilderTest {
@Test
fun testEmpty() {
- OrganizationBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ OrganizationBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -25,7 +25,7 @@ class OrganizationBuilderTest {
fun testEmpty_OrganizationEmpty() {
OrganizationBuilder(Uri.EMPTY, null, Contact().apply {
organization = Organization()
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -35,7 +35,7 @@ class OrganizationBuilderTest {
fun testJobDescription() {
OrganizationBuilder(Uri.EMPTY, null, Contact().apply {
jobDescription = "Job Description"
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals("Job Description", result[0].values[CommonDataKinds.Organization.JOB_DESCRIPTION])
}
}
@@ -45,7 +45,7 @@ class OrganizationBuilderTest {
fun testMimeType() {
OrganizationBuilder(Uri.EMPTY, null, Contact().apply {
jobDescription = "Job Description"
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Organization.CONTENT_ITEM_TYPE, result[0].values[CommonDataKinds.Organization.MIMETYPE])
}
}
@@ -57,7 +57,7 @@ class OrganizationBuilderTest {
organization = Organization().apply {
values.add("Organization")
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals("Organization", result[0].values[CommonDataKinds.Organization.COMPANY])
assertNull(result[0].values[CommonDataKinds.Organization.DEPARTMENT])
}
@@ -70,7 +70,7 @@ class OrganizationBuilderTest {
values.add("Organization")
values.add("Department")
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals("Organization", result[0].values[CommonDataKinds.Organization.COMPANY])
assertEquals("Department", result[0].values[CommonDataKinds.Organization.DEPARTMENT])
}
@@ -84,7 +84,7 @@ class OrganizationBuilderTest {
values.add("Department")
values.add("Division")
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals("Organization", result[0].values[CommonDataKinds.Organization.COMPANY])
assertEquals("Department / Division", result[0].values[CommonDataKinds.Organization.DEPARTMENT])
}
@@ -95,7 +95,7 @@ class OrganizationBuilderTest {
fun testTitle() {
OrganizationBuilder(Uri.EMPTY, null, Contact().apply {
jobTitle = "Job Title"
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals("Job Title", result[0].values[CommonDataKinds.Organization.TITLE])
}
}
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/PhoneBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/PhoneBuilderTest.kt
index 6844bf6..07a6dc6 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/PhoneBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/PhoneBuilderTest.kt
@@ -18,7 +18,7 @@ class PhoneBuilderTest {
@Test
fun testEmpty() {
- PhoneBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ PhoneBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -28,7 +28,7 @@ class PhoneBuilderTest {
fun testNumber_Blank() {
PhoneBuilder(Uri.EMPTY, null, Contact().apply {
phoneNumbers += LabeledProperty(Telephone(""))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -37,7 +37,7 @@ class PhoneBuilderTest {
fun testNumber_Value() {
PhoneBuilder(Uri.EMPTY, null, Contact().apply {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(1, result.size)
assertEquals("+1 555 12345", result[0].values[CommonDataKinds.Phone.NUMBER])
}
@@ -48,7 +48,7 @@ class PhoneBuilderTest {
fun testLabel() {
PhoneBuilder(Uri.EMPTY, null, Contact().apply {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345"), "Label")
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals("Label", result[0].values[CommonDataKinds.Phone.LABEL])
}
}
@@ -58,7 +58,7 @@ class PhoneBuilderTest {
fun testMimeType() {
PhoneBuilder(Uri.EMPTY, null, Contact().apply {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.CONTENT_ITEM_TYPE, result[0].values[CommonDataKinds.Phone.MIMETYPE])
}
}
@@ -68,7 +68,7 @@ class PhoneBuilderTest {
fun testPref_None() {
PhoneBuilder(Uri.EMPTY, null, Contact().apply {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(0, result[0].values[CommonDataKinds.Phone.IS_PRIMARY])
}
}
@@ -79,7 +79,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
pref = 1
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(1, result[0].values[CommonDataKinds.Phone.IS_PRIMARY])
}
}
@@ -91,7 +91,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
types.add(CustomType.Phone.ASSISTANT)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_ASSISTANT, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -102,7 +102,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
types.add(CustomType.Phone.CALLBACK)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_CALLBACK, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -113,7 +113,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
types.add(TelephoneType.CELL)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_MOBILE, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -125,7 +125,7 @@ class PhoneBuilderTest {
types.add(TelephoneType.CELL)
types.add(TelephoneType.WORK)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_WORK_MOBILE, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -136,7 +136,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
types.add(CustomType.Phone.COMPANY_MAIN)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_COMPANY_MAIN, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -147,7 +147,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
types.add(TelephoneType.FAX)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_OTHER_FAX, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -159,7 +159,7 @@ class PhoneBuilderTest {
types.add(TelephoneType.FAX)
types.add(TelephoneType.HOME)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_FAX_HOME, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -171,7 +171,7 @@ class PhoneBuilderTest {
types.add(TelephoneType.FAX)
types.add(TelephoneType.WORK)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_FAX_WORK, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -182,7 +182,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
types.add(TelephoneType.HOME)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_HOME, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -193,7 +193,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
types.add(TelephoneType.ISDN)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_ISDN, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -204,7 +204,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
types.add(CustomType.Phone.MMS)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_MMS, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -216,7 +216,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
types.add(TelephoneType.VIDEO)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_OTHER, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -227,7 +227,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
types.add(TelephoneType.PAGER)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_PAGER, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -239,7 +239,7 @@ class PhoneBuilderTest {
types.add(TelephoneType.PAGER)
types.add(TelephoneType.WORK)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_WORK_PAGER, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -250,7 +250,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
types.add(CustomType.Phone.RADIO)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_RADIO, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
@@ -261,7 +261,7 @@ class PhoneBuilderTest {
phoneNumbers += LabeledProperty(Telephone("+1 555 12345").apply {
types.add(TelephoneType.WORK)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Phone.TYPE_WORK, result[0].values[CommonDataKinds.Phone.TYPE])
}
}
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/PhotoBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/PhotoBuilderTest.kt
index ff382eb..bc8d607 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/PhotoBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/PhotoBuilderTest.kt
@@ -18,7 +18,6 @@ import at.bitfire.vcard4android.AndroidContact
import at.bitfire.vcard4android.Contact
import at.bitfire.vcard4android.impl.TestAddressBook
import org.apache.commons.io.IOUtils
-import org.junit.Assert
import org.junit.Assert.*
import org.junit.BeforeClass
import org.junit.ClassRule
@@ -42,7 +41,7 @@ class PhotoBuilderTest {
@JvmStatic
fun connect() {
provider = testContext.contentResolver.acquireContentProviderClient(ContactsContract.AUTHORITY)!!
- Assert.assertNotNull(provider)
+ assertNotNull(provider)
addressBook = TestAddressBook(testAccount, provider)
}
@@ -58,7 +57,7 @@ class PhotoBuilderTest {
@Test
fun testBuild_NoPhoto() {
- PhotoBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ PhotoBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -68,7 +67,7 @@ class PhotoBuilderTest {
val blob = ByteArray(1024) { Random.nextInt().toByte() }
PhotoBuilder(Uri.EMPTY, null, Contact().apply {
photo = blob
- }).build().also { result ->
+ }, false).build().also { result ->
// no row because photos have to be inserted with a separate call to insertPhoto()
assertEquals(0, result.size)
}
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/RelationBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/RelationBuilderTest.kt
index 91b43cf..a1f0fe0 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/RelationBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/RelationBuilderTest.kt
@@ -17,7 +17,7 @@ class RelationBuilderTest {
@Test
fun testEmpty() {
- RelationBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ RelationBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -30,7 +30,7 @@ class RelationBuilderTest {
types += RelatedType.FRIEND
}
}
- RelationBuilder(Uri.EMPTY, null, c).build().also { result ->
+ RelationBuilder(Uri.EMPTY, null, c, false).build().also { result ->
assertEquals(Relation.CONTENT_ITEM_TYPE, result[0].values[Relation.MIMETYPE])
}
}
@@ -43,7 +43,7 @@ class RelationBuilderTest {
text = "Somebody"
types += RelatedType.FRIEND
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals("Somebody", result[0].values[Relation.NAME])
}
}
@@ -55,7 +55,7 @@ class RelationBuilderTest {
text = "Text"
types += RelatedType.FRIEND
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals("Text", result[0].values[Relation.NAME])
}
}
@@ -66,7 +66,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += RelatedType.FRIEND
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals("somebody", result[0].values[Relation.NAME])
}
}
@@ -78,7 +78,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += CustomType.Related.ASSISTANT
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_ASSISTANT, result[0].values[Relation.TYPE])
}
}
@@ -89,7 +89,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += CustomType.Related.BROTHER
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_BROTHER, result[0].values[Relation.TYPE])
}
}
@@ -101,7 +101,7 @@ class RelationBuilderTest {
types += RelatedType.SIBLING
types += CustomType.Related.BROTHER
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_BROTHER, result[0].values[Relation.TYPE])
}
}
@@ -112,7 +112,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += RelatedType.CHILD
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_CHILD, result[0].values[Relation.TYPE])
}
}
@@ -123,7 +123,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += CustomType.Related.DOMESTIC_PARTNER
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_DOMESTIC_PARTNER, result[0].values[Relation.TYPE])
}
}
@@ -134,7 +134,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += CustomType.Related.FATHER
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_FATHER, result[0].values[Relation.TYPE])
}
}
@@ -146,7 +146,7 @@ class RelationBuilderTest {
types += RelatedType.PARENT
types += CustomType.Related.FATHER
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_FATHER, result[0].values[Relation.TYPE])
}
}
@@ -157,7 +157,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += RelatedType.FRIEND
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_FRIEND, result[0].values[Relation.TYPE])
}
}
@@ -168,7 +168,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += RelatedType.KIN
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_RELATIVE, result[0].values[Relation.TYPE])
}
}
@@ -179,7 +179,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += CustomType.Related.MANAGER
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_MANAGER, result[0].values[Relation.TYPE])
}
}
@@ -190,7 +190,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += CustomType.Related.MOTHER
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_MOTHER, result[0].values[Relation.TYPE])
}
}
@@ -202,7 +202,7 @@ class RelationBuilderTest {
types += RelatedType.PARENT
types += CustomType.Related.MOTHER
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_MOTHER, result[0].values[Relation.TYPE])
}
}
@@ -214,7 +214,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += RelatedType.SWEETHEART
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_CUSTOM, result[0].values[Relation.TYPE])
assertEquals("Sweetheart", result[0].values[Relation.LABEL])
}
@@ -226,7 +226,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += RelatedType.PARENT
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_PARENT, result[0].values[Relation.TYPE])
}
}
@@ -237,7 +237,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += CustomType.Related.PARTNER
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_PARTNER, result[0].values[Relation.TYPE])
}
}
@@ -248,7 +248,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += CustomType.Related.REFERRED_BY
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_REFERRED_BY, result[0].values[Relation.TYPE])
}
}
@@ -259,7 +259,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += CustomType.Related.SISTER
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_SISTER, result[0].values[Relation.TYPE])
}
}
@@ -271,7 +271,7 @@ class RelationBuilderTest {
types += RelatedType.SIBLING
types += CustomType.Related.SISTER
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_SISTER, result[0].values[Relation.TYPE])
}
}
@@ -282,7 +282,7 @@ class RelationBuilderTest {
relations += Related("somebody").apply {
types += RelatedType.SPOUSE
}
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(Relation.TYPE_SPOUSE, result[0].values[Relation.TYPE])
}
}
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/SipAddressBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/SipAddressBuilderTest.kt
index 09c4d4b..7aacc41 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/SipAddressBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/SipAddressBuilderTest.kt
@@ -17,7 +17,7 @@ class SipAddressBuilderTest {
@Test
fun testEmpty() {
- SipAddressBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ SipAddressBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -27,7 +27,7 @@ class SipAddressBuilderTest {
fun testHandle_Empty() {
SipAddressBuilder(Uri.EMPTY, null, Contact().apply {
impps += LabeledProperty(Impp(""))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -36,7 +36,7 @@ class SipAddressBuilderTest {
fun testHandle_NotSip() {
SipAddressBuilder(Uri.EMPTY, null, Contact().apply {
impps += LabeledProperty(Impp.xmpp("test@example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -45,7 +45,7 @@ class SipAddressBuilderTest {
fun testHandle_Sip() {
SipAddressBuilder(Uri.EMPTY, null, Contact().apply {
impps += LabeledProperty(Impp.sip("voip@example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(1, result.size)
assertEquals("voip@example.com", result[0].values[SipAddress.SIP_ADDRESS])
}
@@ -56,7 +56,7 @@ class SipAddressBuilderTest {
fun testLabel() {
SipAddressBuilder(Uri.EMPTY, null, Contact().apply {
impps += LabeledProperty(Impp.sip("voip@example.com"), "Label")
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(SipAddress.TYPE_CUSTOM, result[0].values[SipAddress.TYPE])
assertEquals("Label", result[0].values[SipAddress.LABEL])
}
@@ -67,7 +67,7 @@ class SipAddressBuilderTest {
fun testMimeType() {
SipAddressBuilder(Uri.EMPTY, null, Contact().apply {
impps += LabeledProperty(Impp.sip("voip@example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(SipAddress.CONTENT_ITEM_TYPE, result[0].values[SipAddress.MIMETYPE])
}
}
@@ -79,7 +79,7 @@ class SipAddressBuilderTest {
impps += LabeledProperty(Impp.sip("voip@example.com").apply {
types.add(ImppType.HOME)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(SipAddress.TYPE_HOME, result[0].values[SipAddress.TYPE])
}
}
@@ -91,7 +91,7 @@ class SipAddressBuilderTest {
impps += LabeledProperty(Impp.sip("voip@example.com").apply {
types.add(ImppType.MOBILE)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(SipAddress.TYPE_OTHER, result[0].values[SipAddress.TYPE])
}
}
@@ -102,7 +102,7 @@ class SipAddressBuilderTest {
impps += LabeledProperty(Impp.sip("voip@example.com").apply {
types.add(ImppType.WORK)
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(SipAddress.TYPE_WORK, result[0].values[SipAddress.TYPE])
}
}
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/StructuredNameBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/StructuredNameBuilderTest.kt
index 98ab4b4..4b34629 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/StructuredNameBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/StructuredNameBuilderTest.kt
@@ -14,7 +14,7 @@ class StructuredNameBuilderTest {
@Test
fun testEmpty() {
- StructuredNameBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ StructuredNameBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -31,7 +31,7 @@ class StructuredNameBuilderTest {
phoneticGivenName = "Phonetic Given"
phoneticMiddleName = "Phonetic Middle"
phoneticFamilyName = "Phonetic Family"
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(1, result.size)
assertEquals(StructuredName.CONTENT_ITEM_TYPE, result[0].values[StructuredName.MIMETYPE])
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/StructuredPostalBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/StructuredPostalBuilderTest.kt
index b434c26..9a7217b 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/StructuredPostalBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/StructuredPostalBuilderTest.kt
@@ -17,7 +17,7 @@ class StructuredPostalBuilderTest {
@Test
fun testEmpty() {
- StructuredPostalBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ StructuredPostalBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -30,7 +30,7 @@ class StructuredPostalBuilderTest {
streetAddress = "Street"
}, "Label")
}
- StructuredPostalBuilder(Uri.EMPTY, null, c).build().also { result ->
+ StructuredPostalBuilder(Uri.EMPTY, null, c, false).build().also { result ->
assertEquals(StructuredPostal.TYPE_CUSTOM, result[0].values[StructuredPostal.TYPE])
assertEquals("Label", result[0].values[StructuredPostal.LABEL])
}
@@ -50,7 +50,7 @@ class StructuredPostalBuilderTest {
postalCode = "ZIP"
country = "Country"
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(1, result.size)
assertEquals(StructuredPostal.CONTENT_ITEM_TYPE, result[0].values[StructuredPostal.MIMETYPE])
@@ -80,7 +80,7 @@ class StructuredPostalBuilderTest {
types += AddressType.HOME
})
}
- StructuredPostalBuilder(Uri.EMPTY, null, c).build().also { result ->
+ StructuredPostalBuilder(Uri.EMPTY, null, c, false).build().also { result ->
assertEquals(StructuredPostal.TYPE_HOME, result[0].values[StructuredPostal.TYPE])
}
}
@@ -92,7 +92,7 @@ class StructuredPostalBuilderTest {
streetAddress = "Street"
})
}
- StructuredPostalBuilder(Uri.EMPTY, null, c).build().also { result ->
+ StructuredPostalBuilder(Uri.EMPTY, null, c, false).build().also { result ->
assertEquals(StructuredPostal.TYPE_OTHER, result[0].values[StructuredPostal.TYPE])
}
}
@@ -105,7 +105,7 @@ class StructuredPostalBuilderTest {
types += AddressType.WORK
})
}
- StructuredPostalBuilder(Uri.EMPTY, null, c).build().also { result ->
+ StructuredPostalBuilder(Uri.EMPTY, null, c, false).build().also { result ->
assertEquals(StructuredPostal.TYPE_WORK, result[0].values[StructuredPostal.TYPE])
}
}
diff --git a/src/androidTest/java/at/bitfire/vcard4android/contactrow/WebsiteBuilderTest.kt b/src/androidTest/java/at/bitfire/vcard4android/contactrow/WebsiteBuilderTest.kt
index 6d7be42..484057e 100644
--- a/src/androidTest/java/at/bitfire/vcard4android/contactrow/WebsiteBuilderTest.kt
+++ b/src/androidTest/java/at/bitfire/vcard4android/contactrow/WebsiteBuilderTest.kt
@@ -17,7 +17,7 @@ class WebsiteBuilderTest {
@Test
fun testEmpty() {
- WebsiteBuilder(Uri.EMPTY, null, Contact()).build().also { result ->
+ WebsiteBuilder(Uri.EMPTY, null, Contact(), false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -27,7 +27,7 @@ class WebsiteBuilderTest {
fun testUrl_Empty() {
WebsiteBuilder(Uri.EMPTY, null, Contact().apply {
urls += LabeledProperty(Url(""))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(0, result.size)
}
}
@@ -36,7 +36,7 @@ class WebsiteBuilderTest {
fun testUrl_Value() {
WebsiteBuilder(Uri.EMPTY, null, Contact().apply {
urls += LabeledProperty(Url("https://example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals("https://example.com", result[0].values[CommonDataKinds.Website.URL])
}
}
@@ -46,7 +46,7 @@ class WebsiteBuilderTest {
fun testLabel() {
WebsiteBuilder(Uri.EMPTY, null, Contact().apply {
urls += LabeledProperty(Url("https://example.com"), "Label")
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Im.TYPE_CUSTOM, result[0].values[CommonDataKinds.Website.TYPE])
assertEquals("Label", result[0].values[CommonDataKinds.Website.LABEL])
}
@@ -57,7 +57,7 @@ class WebsiteBuilderTest {
fun testMimeType() {
WebsiteBuilder(Uri.EMPTY, null, Contact().apply {
urls += LabeledProperty(Url("https://example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Website.CONTENT_ITEM_TYPE, result[0].values[CommonDataKinds.Website.MIMETYPE])
}
}
@@ -69,7 +69,7 @@ class WebsiteBuilderTest {
urls += LabeledProperty(Url("https://example.com").apply {
type = CustomType.Url.TYPE_BLOG
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Website.TYPE_BLOG, result[0].values[CommonDataKinds.Im.TYPE])
}
}
@@ -80,7 +80,7 @@ class WebsiteBuilderTest {
urls += LabeledProperty(Url("ftps://example.com").apply {
type = CustomType.Url.TYPE_FTP
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Website.TYPE_FTP, result[0].values[CommonDataKinds.Im.TYPE])
}
}
@@ -91,7 +91,7 @@ class WebsiteBuilderTest {
urls += LabeledProperty(Url("https://example.com").apply {
type = CustomType.HOME
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Website.TYPE_HOME, result[0].values[CommonDataKinds.Im.TYPE])
}
}
@@ -102,7 +102,7 @@ class WebsiteBuilderTest {
urls += LabeledProperty(Url("https://example.com").apply {
type = CustomType.Url.TYPE_HOMEPAGE
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Website.TYPE_HOMEPAGE, result[0].values[CommonDataKinds.Im.TYPE])
}
}
@@ -111,7 +111,7 @@ class WebsiteBuilderTest {
fun testType_None() {
WebsiteBuilder(Uri.EMPTY, null, Contact().apply {
urls += LabeledProperty(Url("ftps://example.com"))
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Website.TYPE_OTHER, result[0].values[CommonDataKinds.Im.TYPE])
}
}
@@ -122,7 +122,7 @@ class WebsiteBuilderTest {
urls += LabeledProperty(Url("https://example.com").apply {
type = CustomType.Url.TYPE_PROFILE
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Website.TYPE_PROFILE, result[0].values[CommonDataKinds.Im.TYPE])
}
}
@@ -133,7 +133,7 @@ class WebsiteBuilderTest {
urls += LabeledProperty(Url("https://example.com").apply {
type = CustomType.WORK
})
- }).build().also { result ->
+ }, false).build().also { result ->
assertEquals(CommonDataKinds.Website.TYPE_WORK, result[0].values[CommonDataKinds.Im.TYPE])
}
}
diff --git a/src/main/java/at/bitfire/vcard4android/AndroidContact.kt b/src/main/java/at/bitfire/vcard4android/AndroidContact.kt
index 31556e5..d3d7350 100644
--- a/src/main/java/at/bitfire/vcard4android/AndroidContact.kt
+++ b/src/main/java/at/bitfire/vcard4android/AndroidContact.kt
@@ -201,7 +201,7 @@ open class AndroidContact(
*/
protected fun insertDataRows(batch: BatchOperation) {
val contact = getContact()
- processor.insertDataRows(dataSyncURI(), id, contact, batch)
+ processor.insertDataRows(dataSyncURI(), id, contact, batch, addressBook.readOnly)
}
diff --git a/src/main/java/at/bitfire/vcard4android/AndroidGroup.kt b/src/main/java/at/bitfire/vcard4android/AndroidGroup.kt
index e863df6..16b3428 100644
--- a/src/main/java/at/bitfire/vcard4android/AndroidGroup.kt
+++ b/src/main/java/at/bitfire/vcard4android/AndroidGroup.kt
@@ -128,7 +128,8 @@ open class AndroidGroup(
values.put(Groups.ACCOUNT_TYPE, addressBook.account.type)
values.put(Groups.ACCOUNT_NAME, addressBook.account.name)
values.put(Groups.SHOULD_SYNC, 1)
- // read-only: values.put(Groups.GROUP_VISIBLE, 1);
+ if (addressBook.readOnly)
+ values.put(Groups.GROUP_IS_READ_ONLY, 1)
val uri = addressBook.provider!!.insert(addressBook.syncAdapterURI(Groups.CONTENT_URI), values)
?: throw ContactsStorageException("Empty result from content provider when adding group")
id = ContentUris.parseId(uri)
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/ContactProcessor.kt b/src/main/java/at/bitfire/vcard4android/contactrow/ContactProcessor.kt
index c0e0bc0..0871ac6 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/ContactProcessor.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/ContactProcessor.kt
@@ -90,9 +90,9 @@ class ContactProcessor(
}
- fun insertDataRows(dataRowUri: Uri, rawContactId: Long?, contact: Contact, batch: BatchOperation) {
+ fun insertDataRows(dataRowUri: Uri, rawContactId: Long?, contact: Contact, batch: BatchOperation, readOnly: Boolean) {
for (factory in dataRowBuilderFactories) {
- val builder = factory.newInstance(dataRowUri, rawContactId, contact)
+ val builder = factory.newInstance(dataRowUri, rawContactId, contact, readOnly)
batch.enqueueAll(builder.build())
}
}
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/DataRowBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/DataRowBuilder.kt
index 32b2f06..8b94611 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/DataRowBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/DataRowBuilder.kt
@@ -6,19 +6,28 @@ package at.bitfire.vcard4android.contactrow
import android.net.Uri
import android.provider.ContactsContract
-import at.bitfire.vcard4android.AndroidAddressBook
import at.bitfire.vcard4android.BatchOperation
import at.bitfire.vcard4android.Contact
/**
* Builder for a data row to insert into the Android contact provider.
*
+ * @param mimeType the type of data in this row, see [ContactsContract.CommonDataKinds]
* @param dataRowUri data row URI, including callerIsSyncAdapter=… if required
* @param rawContactId not *null*: raw contact ID to assign this data row to;
* *null*: data row will be assigned to back reference with index 0
* (= result ID of the first operation in batch, which must be the insert operation to insert the raw contact)
+ * @param contact which contact this data row belongs to
+ * @param readOnly whether the data row is read-only (write protected). When the address book is
+ * read-only, all contacts inside are too, and so the contact's data rows should be as well.
*/
-abstract class DataRowBuilder(val mimeType: String, val dataRowUri: Uri, val rawContactId: Long?, val contact: Contact) {
+abstract class DataRowBuilder(
+ val mimeType: String,
+ val dataRowUri: Uri,
+ val rawContactId: Long?,
+ val contact: Contact,
+ val readOnly: Boolean
+) {
abstract fun build(): List<BatchOperation.CpoBuilder>
@@ -28,6 +37,9 @@ abstract class DataRowBuilder(val mimeType: String, val dataRowUri: Uri, val raw
.newInsert(dataRowUri)
.withValue(ContactsContract.RawContacts.Data.MIMETYPE, mimeType)
+ if (readOnly)
+ insert.withValue(ContactsContract.Data.IS_READ_ONLY, 1)
+
if (rawContactId != null)
insert.withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId)
else
@@ -38,10 +50,8 @@ abstract class DataRowBuilder(val mimeType: String, val dataRowUri: Uri, val raw
interface Factory<T: DataRowBuilder> {
-
fun mimeType(): String
- fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact): T
-
+ fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean): T
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/EmailBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/EmailBuilder.kt
index e2f7538..ae35b80 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/EmailBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/EmailBuilder.kt
@@ -15,8 +15,8 @@ import ezvcard.parameter.EmailType
import java.util.*
import java.util.logging.Level
-class EmailBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
- : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+class EmailBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
override fun build(): List<BatchOperation.CpoBuilder> {
val result = LinkedList<BatchOperation.CpoBuilder>()
@@ -68,8 +68,8 @@ class EmailBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
object Factory: DataRowBuilder.Factory<EmailBuilder> {
override fun mimeType() = Email.CONTENT_ITEM_TYPE
- override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
- EmailBuilder(dataRowUri, rawContactId, contact)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ EmailBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/EventBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/EventBuilder.kt
index 19b9b9f..0f27a23 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/EventBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/EventBuilder.kt
@@ -14,8 +14,8 @@ import java.text.SimpleDateFormat
import java.util.*
import java.util.logging.Level
-class EventBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
- : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+class EventBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
override fun build(): List<BatchOperation.CpoBuilder> {
val result = LinkedList<BatchOperation.CpoBuilder>()
@@ -65,8 +65,8 @@ class EventBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
object Factory: DataRowBuilder.Factory<EventBuilder> {
override fun mimeType() = Event.CONTENT_ITEM_TYPE
- override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
- EventBuilder(dataRowUri, rawContactId, contact)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ EventBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/ImBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/ImBuilder.kt
index bcbe247..e942e5f 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/ImBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/ImBuilder.kt
@@ -12,8 +12,8 @@ import at.bitfire.vcard4android.Contact
import ezvcard.parameter.ImppType
import java.util.*
-class ImBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
- : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+class ImBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
override fun build(): List<BatchOperation.CpoBuilder> {
val result = LinkedList<BatchOperation.CpoBuilder>()
@@ -58,8 +58,8 @@ class ImBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
object Factory: DataRowBuilder.Factory<ImBuilder> {
override fun mimeType() = Im.CONTENT_ITEM_TYPE
- override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
- ImBuilder(dataRowUri, rawContactId, contact)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ ImBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/NicknameBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/NicknameBuilder.kt
index fddad37..53a1448 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/NicknameBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/NicknameBuilder.kt
@@ -11,8 +11,8 @@ import at.bitfire.vcard4android.Contact
import at.bitfire.vcard4android.property.CustomType
import java.util.*
-class NicknameBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
- : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+class NicknameBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
override fun build(): List<BatchOperation.CpoBuilder> {
val labeledNick = contact.nickName ?: return emptyList()
@@ -52,8 +52,8 @@ class NicknameBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
object Factory: DataRowBuilder.Factory<NicknameBuilder> {
override fun mimeType() = CommonDataKinds.Nickname.CONTENT_ITEM_TYPE
- override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
- NicknameBuilder(dataRowUri, rawContactId, contact)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ NicknameBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/NoteBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/NoteBuilder.kt
index e80f0fe..1fa33bd 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/NoteBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/NoteBuilder.kt
@@ -9,8 +9,8 @@ import android.provider.ContactsContract.CommonDataKinds.Note
import at.bitfire.vcard4android.BatchOperation
import at.bitfire.vcard4android.Contact
-class NoteBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
- : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+class NoteBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
override fun build(): List<BatchOperation.CpoBuilder> {
val note = contact.note
@@ -25,8 +25,8 @@ class NoteBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
object Factory: DataRowBuilder.Factory<NoteBuilder> {
override fun mimeType() = Note.CONTENT_ITEM_TYPE
- override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
- NoteBuilder(dataRowUri, rawContactId, contact)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ NoteBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/OrganizationBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/OrganizationBuilder.kt
index c63ef2a..aa0507a 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/OrganizationBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/OrganizationBuilder.kt
@@ -11,8 +11,8 @@ import at.bitfire.vcard4android.Contact
import org.apache.commons.lang3.StringUtils
import java.util.*
-class OrganizationBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
- : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+class OrganizationBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
override fun build(): List<BatchOperation.CpoBuilder> {
var company: String? = null
@@ -42,8 +42,8 @@ class OrganizationBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact
object Factory: DataRowBuilder.Factory<OrganizationBuilder> {
override fun mimeType() = Organization.CONTENT_ITEM_TYPE
- override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
- OrganizationBuilder(dataRowUri, rawContactId, contact)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ OrganizationBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/PhoneBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/PhoneBuilder.kt
index bf35868..d026f85 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/PhoneBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/PhoneBuilder.kt
@@ -14,8 +14,8 @@ import ezvcard.parameter.TelephoneType
import java.util.*
import java.util.logging.Level
-class PhoneBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
- : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+class PhoneBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
override fun build(): List<BatchOperation.CpoBuilder> {
val result = LinkedList<BatchOperation.CpoBuilder>()
@@ -100,8 +100,8 @@ class PhoneBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
object Factory: DataRowBuilder.Factory<PhoneBuilder> {
override fun mimeType() = Phone.CONTENT_ITEM_TYPE
- override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
- PhoneBuilder(dataRowUri, rawContactId, contact)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ PhoneBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/PhotoBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/PhotoBuilder.kt
index c3a7716..eda341b 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/PhotoBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/PhotoBuilder.kt
@@ -20,8 +20,8 @@ import at.bitfire.vcard4android.Utils.asSyncAdapter
import org.apache.commons.io.FileUtils
import java.util.logging.Level
-class PhotoBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
- : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+class PhotoBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
companion object {
@@ -106,8 +106,8 @@ class PhotoBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
object Factory: DataRowBuilder.Factory<PhotoBuilder> {
override fun mimeType() = Photo.CONTENT_ITEM_TYPE
- override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
- PhotoBuilder(dataRowUri, rawContactId, contact)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ PhotoBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/RelationBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/RelationBuilder.kt
index 87d9dbd..d746fcd 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/RelationBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/RelationBuilder.kt
@@ -14,8 +14,8 @@ import org.apache.commons.lang3.StringUtils
import org.apache.commons.text.WordUtils
import java.util.*
-class RelationBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
- : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+class RelationBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
override fun build(): List<BatchOperation.CpoBuilder> {
val result = LinkedList<BatchOperation.CpoBuilder>()
@@ -68,8 +68,8 @@ class RelationBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
object Factory: DataRowBuilder.Factory<RelationBuilder> {
override fun mimeType() = Relation.CONTENT_ITEM_TYPE
- override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
- RelationBuilder(dataRowUri, rawContactId, contact)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ RelationBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/SipAddressBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/SipAddressBuilder.kt
index cecfd56..0e095cc 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/SipAddressBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/SipAddressBuilder.kt
@@ -11,8 +11,8 @@ import at.bitfire.vcard4android.Contact
import ezvcard.parameter.ImppType
import java.util.*
-class SipAddressBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
- : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+class SipAddressBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
override fun build(): List<BatchOperation.CpoBuilder> {
val result = LinkedList<BatchOperation.CpoBuilder>()
@@ -51,8 +51,8 @@ class SipAddressBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
object Factory: DataRowBuilder.Factory<SipAddressBuilder> {
override fun mimeType() = SipAddress.CONTENT_ITEM_TYPE
- override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
- SipAddressBuilder(dataRowUri, rawContactId, contact)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ SipAddressBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/StructuredNameBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/StructuredNameBuilder.kt
index 7d1571e..35b556b 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/StructuredNameBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/StructuredNameBuilder.kt
@@ -9,8 +9,8 @@ import android.provider.ContactsContract.CommonDataKinds.StructuredName
import at.bitfire.vcard4android.BatchOperation
import at.bitfire.vcard4android.Contact
-class StructuredNameBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
- : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+class StructuredNameBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
override fun build(): List<BatchOperation.CpoBuilder> {
if (contact.displayName == null &&
@@ -36,8 +36,8 @@ class StructuredNameBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Conta
object Factory: DataRowBuilder.Factory<StructuredNameBuilder> {
override fun mimeType() = StructuredName.CONTENT_ITEM_TYPE
- override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
- StructuredNameBuilder(dataRowUri, rawContactId, contact)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ StructuredNameBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/StructuredPostalBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/StructuredPostalBuilder.kt
index c593bce..698f8e0 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/StructuredPostalBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/StructuredPostalBuilder.kt
@@ -15,8 +15,8 @@ import java.util.*
/**
* Data row builder for structured addresses.
*/
-class StructuredPostalBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
- : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact) {
+class StructuredPostalBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
override fun build(): List<BatchOperation.CpoBuilder> {
val result = LinkedList<BatchOperation.CpoBuilder>()
@@ -92,8 +92,8 @@ class StructuredPostalBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Con
object Factory: DataRowBuilder.Factory<StructuredPostalBuilder> {
override fun mimeType() = StructuredPostal.CONTENT_ITEM_TYPE
- override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact) =
- StructuredPostalBuilder(dataRowUri, rawContactId, contact)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ StructuredPostalBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/contactrow/WebsiteBuilder.kt b/src/main/java/at/bitfire/vcard4android/contactrow/WebsiteBuilder.kt
index 1beb5fc..740891f 100644
--- a/src/main/java/at/bitfire/vcard4android/contactrow/WebsiteBuilder.kt
+++ b/src/main/java/at/bitfire/vcard4android/contactrow/WebsiteBuilder.kt
@@ -11,8 +11,8 @@ 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) {
+class WebsiteBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean)
+ : DataRowBuilder(Factory.mimeType(), dataRowUri, rawContactId, contact, readOnly) {
override fun build(): List<BatchOperation.CpoBuilder> {
val result = LinkedList<BatchOperation.CpoBuilder>()
@@ -48,8 +48,8 @@ class WebsiteBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact)
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)
+ override fun newInstance(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readOnly: Boolean) =
+ WebsiteBuilder(dataRowUri, rawContactId, contact, readOnly)
}
} \ No newline at end of file