Skip to content

Commit 0975d4e

Browse files
committed
Add readOnly state access to LocalTaskList
1 parent 573fa36 commit 0975d4e

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

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)