Skip to content

Commit fbb1200

Browse files
committed
Add not implemented error to readOnly state access of LocalJtxCollection
1 parent 573fa36 commit fbb1200

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

app/src/main/kotlin/at/bitfire/davdroid/resource/LocalJtxCollection.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ class LocalJtxCollection(account: Account, client: ContentProviderClient, id: Lo
5151
}
5252

5353
override var readOnly: Boolean
54-
get() = TODO("Not yet implemented")
55-
set(value) {}
54+
get() = throw NotImplementedError()
55+
set(value) = throw NotImplementedError()
5656

5757
override val tag: String
5858
get() = "jtx-${account.name}-$id"

app/src/main/kotlin/at/bitfire/davdroid/resource/LocalTaskList.kt

+18-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import android.annotation.SuppressLint
99
import android.content.ContentValues
1010
import android.content.Context
1111
import android.net.Uri
12+
import android.provider.CalendarContract
13+
import androidx.core.database.getIntOrNull
1214
import at.bitfire.davdroid.Constants
1315
import at.bitfire.davdroid.db.Collection
1416
import at.bitfire.davdroid.db.SyncState
@@ -69,8 +71,22 @@ class LocalTaskList private constructor(
6971
}
7072

7173
override var readOnly: Boolean
72-
get() = TODO("Not yet implemented")
73-
set(value) {}
74+
get() = provider.client.query(
75+
taskListSyncUri(), arrayOf(TaskListColumns.ACCESS_LEVEL),
76+
null, null, null
77+
)?.use { cursor ->
78+
if (cursor.moveToNext())
79+
return cursor.getIntOrNull(0) == TaskListColumns.ACCESS_LEVEL_READ
80+
else
81+
false
82+
} == true
83+
set(readOnly) {
84+
val values = ContentValues().apply { put(
85+
CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL,
86+
if (readOnly) CalendarContract.Calendars.CAL_ACCESS_READ else CalendarContract.Calendars.CAL_ACCESS_OWNER
87+
)}
88+
provider.client.update(taskListSyncUri(), values, null, null)
89+
}
7490

7591
override val tag: String
7692
get() = "tasks-${account.name}-$id"

0 commit comments

Comments
 (0)