According to Microsoft assurances applications that have been provided for Windows Phone 8.0 should also work with phones updated to Windows Phone 8.1. In most cases it is true. But sometimes small changes in OS can cause that application will not work as we expected.

In my case issues occurred in SpeedDial / SpeedDial Pro apps. The Windows Phone’s SDK didn’t change in that area and both applications source code compiled correctly without any errors. Unfortunate Microsoft has changed behaviour of OS. In this case issues were generated because PhoneCallTask is working a bit differently than in Windows Phone 8.1.

Usage of this task has not been changed:

PhoneCallTask phoneCallTask = new PhoneCallTask();
phoneCallTask.PhoneNumber = "123456789";
phoneCallTask.DisplayName = "Test";

The only difference is in execution of Show() method. In case of Windows Phone 8.0 we will get MessageBox with question if we want to call provided number:

Windows Phone 8.0 - PhoneCallTask

In case of Windows Phone 8.1 the result will be a bit different. Instead of MessageBox will we see new full screen page with similar question:

Windows Phone 8.1 -  PhoneCallTask

Of course question will be the same. But there will be a slightly different influence on application. In case of Windows Phone 8.1 opening new page will trigger navigation event. Similar event will be triggered after finishing this task. Because of that each time when we are doing something not normal in handling those events we can spot some issues. And this happened in my application. This weird code caused that user could not turn off application after phone call.

Fixing it was very easy. It cost 3 lines of code. The worse situation was in case of time usage for this fixing – it took over 2 hours. Most of this time has been spent on updating Visual Studio 2013 to SP2 RC. I wonder how much time will cost update to Visual Studio 2013 final version of SP2. I hope that I will not need to reinstall the whole environment.