Generic/pluggable task provider support (like CalendarContract/ContactsContract, but for tasks) #2740
timofurrer
started this conversation in
Ideas
Replies: 1 comment 2 replies
|
From a DAVx⁵ perspective, it would be the best to come with its own tasks provider. Then any tasks that wants to support it could access it. (Or a simple UI could even be in-app, but currently we don't have that in scope.) However that's all much work and requires a lot of internal changes – currently we're busy with doing important rewrites to bring the architecture to a point where we can finally think about new features. For your use case, you could
(If you want your own contract for the content provider, it would be much more work in DAVx5 (new synctools storage + mapping implementations).) You could then also create a PR for DAVx5 to add your app to the list. |
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
For calendars and contacts, DAVx5 syncs into Android's own providers (
CalendarContract,ContactsContract). Since those are shared OS-level stores, any app can read the synced data just by asking forREAD_CALENDAR/READ_CONTACTS. It doesn't matter which calendar or contacts app someone runs, and a new one doesn't need any cooperation from DAVx5 to work.Tasks don't have an OS-level provider like that, so DAVx5 writes into a specific app's own content provider instead. Right now that list is hardcoded to three apps: OpenTasks, tasks.org and jtx Board. As far as I can tell, getting onto that list basically means working directly with the DAVx5 team (which is how jtx Board got added).
I'd like to build a small task app that syncs
VTODOthrough DAVx5, but I don't want to require installing one of those three apps as a go-between, and I don't really want to have to coordinate a one-off addition just to get recognized either.Would it be possible to make task provider detection more open, so any app implementing the existing
TaskContract-style interface (or some documented permission/manifest declaration) gets picked up automatically, similar to how calendar apps just work throughCalendarContractwithout being named anywhere in DAVx5's code?Not sure how much work this would be given how provider compatibility is currently checked (permission-based vs an actual allowlist of packages), but happy to help test or talk through options if it's something you'd consider. Also saw #55 touches on related limitations in how task/journal providers are picked, might be worth looking at together.
All reactions