Custom View Appointments and Bug Fixes

After releasing Ink Calendar 1.25.3 work began on bringing appointments to the custom views. No major issues were found with the custom views, but there have been nagging bugs within Ink Calendar which have been very difficult to understand what is happening. In addition to rewriting the appointment render logic I have been focusing on every error I see in Microsoft AppCenter.

Appointments

Adding appointments to custom views meant writing as a patchwork of controls which held the smallest size of a appointment canvas. For example the month view shows appointments for a single day, but multi-day appointments stretch over a single day. This means there needs to be a control which displays a week of days and overlays appointments correctly.

Fighting Bugs

With all new features there is the possibility of bugs and crashes. One of the more common crashes I was seeing after introducing Custom Views was “The added or subtracted value results in an un-representable DateTime.” It is unclear why or when this happens. I have several theories but none of them seem to remove this issue altogether.

The issue can be mitigated by making sure the DateTime isn’t of year 0 which would not work when adding a previous year. However maybe this issue happens because the ViewStateHistory list crashes due to File Access Violations. This is also unclear because the actual failure has nothing to do with the ViewStateHistory. What makes me think the ViewStateHistory could be involved is a blank ViewStateHistory could drive the main view constructor to start from a DateTime of 0,0,0.

All this to say bugs are tricky and the hardest part is finding what is failing. Hopefully 1.25.9 will bring an end to this bug and small improvements all over Ink Calendar. Thanks as always for reading.

Joe