Skip to content

Commit afa7724

Browse files
authored
Query recur instance without dtstart (#195)
* Add queryRecur test * Query without dtstart * Correct log message * Edit kdoc
1 parent 883954c commit afa7724

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

lib/src/androidTest/kotlin/at/bitfire/ical4android/JtxCollectionTest.kt

+25
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,31 @@ class JtxCollectionTest {
105105
assertEquals(1, icalobjects.size)
106106
}
107107

108+
@Test
109+
fun queryRecur_test() {
110+
val collectionUri = JtxCollection.create(testAccount, client, cv)
111+
assertNotNull(collectionUri)
112+
113+
val collections = JtxCollection.find(testAccount, client, context, TestJtxCollection.Factory, null, null)
114+
val item = collections[0].queryRecur("abc1234", "xyz5678")
115+
assertNull(item)
116+
117+
val cv = ContentValues().apply {
118+
put(JtxContract.JtxICalObject.UID, "abc1234")
119+
put(JtxContract.JtxICalObject.RECURID, "xyz5678")
120+
put(JtxContract.JtxICalObject.RECURID_TIMEZONE, "Europe/Vienna")
121+
put(JtxContract.JtxICalObject.SUMMARY, "summary")
122+
put(JtxContract.JtxICalObject.COMPONENT, JtxContract.JtxICalObject.Component.VJOURNAL.name)
123+
put(JtxContract.JtxICalObject.ICALOBJECT_COLLECTIONID, collections[0].id)
124+
}
125+
client.insert(JtxContract.JtxICalObject.CONTENT_URI.asSyncAdapter(testAccount), cv)
126+
val contentValues = collections[0].queryRecur("abc1234", "xyz5678")
127+
128+
assertEquals("abc1234", contentValues?.getAsString(JtxContract.JtxICalObject.UID))
129+
assertEquals("xyz5678", contentValues?.getAsString(JtxContract.JtxICalObject.RECURID))
130+
assertEquals("Europe/Vienna", contentValues?.getAsString(JtxContract.JtxICalObject.RECURID_TIMEZONE))
131+
}
132+
108133
@Test
109134
fun getICSForCollection_test() {
110135
val collectionUri = JtxCollection.create(testAccount, client, cv)

lib/src/main/kotlin/at/bitfire/ical4android/JtxCollection.kt

+5-4
Original file line numberDiff line numberDiff line change
@@ -181,18 +181,19 @@ open class JtxCollection<out T: JtxICalObject>(val account: Account,
181181

182182
/**
183183
* @param [uid] of the entry that should be retrieved as content values
184+
* @param [recurid] of the entry that should be retrieved as content values
184185
* @return Content Values of the found item with the given UID or null if the result was empty or more than 1
185186
* The query checks for the [uid] within all collections of this account, not only the current collection.
186187
*/
187-
fun queryRecur(uid: String, recurid: String, dtstart: Long): ContentValues? {
188+
fun queryRecur(uid: String, recurid: String): ContentValues? {
188189
client.query(
189190
JtxContract.JtxICalObject.CONTENT_URI.asSyncAdapter(account),
190191
null,
191-
"${JtxContract.JtxICalObject.UID} = ? AND ${JtxContract.JtxICalObject.RECURID} = ? AND ${JtxContract.JtxICalObject.DTSTART} = ?",
192-
arrayOf(uid, recurid, dtstart.toString()),
192+
"${JtxContract.JtxICalObject.UID} = ? AND ${JtxContract.JtxICalObject.RECURID} = ?",
193+
arrayOf(uid, recurid),
193194
null
194195
).use { cursor ->
195-
logger.fine("queryByUID: found ${cursor?.count} records in ${account.name}")
196+
logger.fine("queryRecur: found ${cursor?.count} records in ${account.name}")
196197
if (cursor?.count != 1)
197198
return null
198199
cursor.moveToFirst()

0 commit comments

Comments
 (0)