Option to disable event-color feature
It should be possible to disable the per-event color feature/implementation somehow, even if it is enabled by default so that users that use calendar apps that don’t support this properly can still create events. The default calendar for example, will crash when one attempts to create a new event in a davdroid calendar. In the new event dialogue, as soon as the davdroid calendar is selected, the app tries to set the color widget to the calendar’s color, which triggers the feature and causes the crash. This effectively kills the ability for such users to create any new events from their phone until the calendar app owners push a fix. While it is true that davdroid is simply making a proper implementation of the specification and it is the calendar apps that are broken, it hardly seems fair to punish the users that use those apps.
@grexican We have tested with several default calendars and didn’t notice any problems (except when selecting an event color). So you say selecting the calendar will make the app crash?
Which calendar app do you have?
Apart from finding other solutions: Did you already report it to your manufacturer?
Just tested again with Etar on FP2 (Android 6) and S Planner on Galaxy S6 (Android 7) and selecting the calendar (and saving the event afterwards) is possible without crashing.
If most calendars work (just without setting the color), we won’t change anything. Please use a calendar app that doesn’t crash instead. However, if there are too many users affected by problems with the default color, we should probably think about a workaround.
Okay, I have done some further debugging into what is going on:
My wife and I both have Samsung Galaxy S5 phones (SM-G900V) running Android 6.0.1. We’re both using the stock Calendar application with DavDroid and CalendarColors also installed. I also have OpenTasks and TeamCalendarSync installed, she does not. On my phone, I have the system calendar, an exchange calendar, and three CalDAV calendars.
When we first noticed the problem, it manifested by every time we would try to add a new event, the Calendar app would immediately crash. To further investigate, I force quit the Calendar app, cleared its cache and data, then started it again before trying to add an event. The event creation dialogue would then open without crashing Calendar. The calendar selected for the event in the dialogue was not one of the calendars being managed by DavDroid. If I attempt to switch to one of those calendars, the option radio button will not update to the desired calendar. However, if I cancel out of the calendar selection option, the event dialogue will show up as the desired calendar. The color for the event in the event creation dialogue will remain the color of the previously selected calendar. If the color chooser to clicked, the Calendar app crashed (this is the known and expected bug in Calendar). If the event is created without interfering with the event color, it will get created and pushed as normal, with its proper calendar color. However, the Calendar app will then remember the calendar managed by DavDroid as the last calendar for creating an event. When a second attempt at creating an event is attempted, the original behavior of immediately crashing Calendar is exhibited.
To add a new event through the phone, one must clear the Calendar app’s data and cache before each add. Also, this only works if the user has at least one other calendar on their phone that isn’t managed by DavDroid and Calendar will choose as the first event calendar at startup. Calendar’s selection at startup does seem consistent and deterministic.
I am a fairly technical user, so I can tolerate this workaround, especially since I can also add events via other clients on desktop and laptop. However, my wife is a non-technical user and only manages her calendars via her phone. From her perspective, “the calendar” is simply broken, and the DavDroid update is what broke it. If she didn’t have me, she would not have a workaround (which she finds onerous).
I have not submitted a bug against the Calendar app yet. I am not even certain where to properly file one, assuming one hasn’t already.
@grexican Thanks for your verbose report. As a workaround, I suggest to install
- Business Calendar,
- or any other calendar app that doesn’t crash
on your wife’s phone. There are many working apps out there.
See also: https://twitter.com/davdroidapp/status/900444933580091394 (please vote if possible)
@rfc2822 Unfortunately, I am not on Twitter.