Sync tasks



  • 👍 I want to use it with mirakel



  • +1



  • +1

    First of all, a big thank you for the development of davdroid!

    Can you please try to somehow concretize your milestone-plan with some dates?
    I know, it is always hard to tell “when” in software-development but you once mentioned to hopefully reach milestone 0.6 in January 2014 and now it’s May and it doesn’t look anywhere near 0.6. Waiting for tasks and therefore 0.8 I am wondering if I have to get an in-between-solution for the next 2 months or for the next two years.

    Thanks in advance for any information!



  • Check out the Version of the mirakel devs. They added support already to davdroid, but I Didnt see a pull request yet. And I Didnt try it myself, yet.



  • @ribx The pull request is here: https://github.com/rfc2822/davdroid/pull/95
    @gadabout84 Just try out our implementation: http://mirakel.azapps.de/releases.html If you have problems, please report them



  • Thanks for the hints - it seems to work fine so far.
    I only have one “cosmetic” problem - https://github.com/MirakelX/mirakel-android/issues/429



  • Let us know if a bounty would help this app move to 0.8 faster.





  • Looking forward to this. ALways happy to test (am using @azapps version now)



  • +1


  • developer

    Again +1 for me, too.

    Hope I’ll find time soon. More +1 won’t make that happen.



  • Hi rfc2822,
    As far as I can see, VTODO sync is already implemented in the fork by Mirakel at https://github.com/MirakelX/davdroid. So the “only” things left would be to review and merge the changes.

    Are there any steps you need help with? Are there any open issues with their code? I’d really like to see this feature happen, so if there is any work we can take off you, I’d be more than glad to help.


  • developer

    Are there any steps you need help with? Are there any open issues with their code? I’d really like to see this feature happen, so if there is any work we can take off you, I’d be more than glad to help.

    Yes. Do you know whether their code supports and correctly handles CardDAV collections that contain both VEVENTs and VTODOs, which seems to be a common use case?



  • Calendars containing both, VEVENTs and VTODOs, are handled as two virtual collections, which only contains VEVENTs or VTODOs.
    But there are a few bugs left:

    • The account creation can crash in some weired cases
    • Tags/Categories are not synced correctly against kolab (partially a bug on there side and in ical4j)

  • developer

    Calendars containing both, VEVENTs and VTODOs, are handled as two virtual collections, which only contains VEVENTs or VTODOs.

    Do you fetch the resources with “REPORT only VTODO” and “REPORT only VEVENT” instead of PROPFIND, or do you use PROPFIND and then sort all resources into the collections? When in the code can I find these virtual collections? I hadn’t time to look into the code yet.



  • To fetch the resources, i use PROPFIND, as it’s done in the original event code.

    Source code is the List of Todos and the single Todo item.


  • developer

    Doesn’t this approach download all .ics from a folder, including all VEVENTs (possibly thousands), and generate an InvalidResourceException for each VEVENT resource and every sync run?



  • Yes it download all files.
    This should be changed, but I don’t know where and how.
    (Also the calendar sync shouldn’t download the VTODOs)


  • developer

    Yes it download all files.
    This should be changed, but I don’t know where and how.
    (Also the calendar sync shouldn’t download the VTODOs)

    That’s what I meant. I see two possibilities:

    1. to query only resources with the needed components (VEVENT/VTODO), i.e. using CALDAV:calendar-query report instead of PROPFIND, or
    2. to implement set operations that allow to merge and split events and todos locally as well as remote.

    Solution 2 would be far more complex. Also, Android architecture demands a separate sync adapter for each “authority”, so there should be one sync adapter for address books, one for calendars and one for to-dos (as you have implemented it) that run separately.

    So I’d prefer solution 1, but I don’t know how most CalDAV servers implement it. »Support for the CALDAV:calendar-query REPORT is REQUIRED«, but I know that many servers don’t implement it (correctly). Radicale, for instance, seems to always return all resources for any calendar-query: in this case, all resources would be downloaded (and thrown away) for every sync run, but at least it would work.

    Another problem is that in the current implementation not only the ETags, but all resources would downloaded for every sync run (they are not stored anywhere, so at the next run, they will be downloaded again). This means that for my current setup with Radicale, every sync run would download thousands of resources every time. I guess that many users won’t accept that and complain and create “DAVdroid is using all my traffic and battery” tickets.

    So, more information about how real CalDAV servers handle calendar-query with component selection is needed. Maybe somone can help with testing?



  • @weiznich, you wrote:

    Tags/Categories are not synced correctly against kolab (partially a bug on there side and in ical4j)

    Can you please give me the corresponding issue tracker links?


Log in to reply