diff --git a/app/src/main/java/de/jeanlucmakiola/floret/data/tasks/AndroidTasksDataSource.kt b/app/src/main/java/de/jeanlucmakiola/floret/data/tasks/AndroidTasksDataSource.kt index 5708e1d..61c7373 100644 --- a/app/src/main/java/de/jeanlucmakiola/floret/data/tasks/AndroidTasksDataSource.kt +++ b/app/src/main/java/de/jeanlucmakiola/floret/data/tasks/AndroidTasksDataSource.kt @@ -71,7 +71,12 @@ class AndroidTasksDataSource @Inject constructor( private fun queryInstances(selection: String?, args: Array?): List { val uri = TasksContract.instancesUri(authority()) - return resolver.query(uri, TaskProjections.INSTANCES, selection, args, Instances.INSTANCE_DUE_SORTING) + // projection = null (all columns): the instances view differs across + // provider versions (e.g. tasks.org's bundled OpenTasks has no + // `is_recurring` / `distance_from_current`). The by-name mapper reads + // whatever is present and nulls the rest; the repository re-sorts, so we + // don't depend on a provider sort column either. + return resolver.query(uri, null, selection, args, null) ?.use { c -> val reader = CursorColumnReader(c) buildList { while (c.moveToNext()) add(TaskMapper.task(reader)) }