]> code.delx.au - comingnext/commitdiff
fixed homescreen widget update not always working on N8
authorMichael Prager <michael@pragers.de>
Thu, 24 Mar 2011 10:40:19 +0000 (11:40 +0100)
committerMichael Prager <michael@pragers.de>
Thu, 24 Mar 2011 10:40:19 +0000 (11:40 +0100)
Readme.txt
comingNext/index.html

index ca50ef404a3e3f734593a923fecc6c2e635c5205..308ad8fa08b0aacdcc3ff6a64a921f7cf80695a7 100644 (file)
@@ -56,8 +56,6 @@ Known limitations:
   http://sourceforge.net/tracker/download.php?group_id=276816&atid=1175663&file_id=401828&aid=2956758\r
   More info on this in the bug tracker:\r
   http://sourceforge.net/tracker/?func=detail&aid=2956758&group_id=276816&atid=1175663\r
-- Event refreshing/updating is broken on N8. You will have to set update \r
-  interval in settings to 0 in order to get it working on the N8.\r
 \r
 \r
 How to obtain log file for solving issues:\r
@@ -261,3 +259,4 @@ Changelog:
   - fixed "About" link opening inside browser instead of widget\r
   - fixed sorting of events without date\r
   - fixed calendar indicators not showing in some cases\r
+  - fixed homescreen widget not updating properly on N8\r
index fa571f566300b77acc0f5dace834e0d67f55f5d6..af47f3b3a08cf8999686e6d593093a3b028ac33e 100644 (file)
@@ -98,6 +98,7 @@ var calendarList = [];
 var calendarColors = [];\r
 var updateTimer = null;\r
 var screenRotationTimer = null;\r
+var lastUpdateTime = now;\r
 \r
 // vars for daylight saving time\r
 var summertime = false; // true, if current date is in summer, false if in winter\r
@@ -786,6 +787,8 @@ function updateData()
                                document.getElementById('fullscreenCalendarList').innerHTML = entriesHtml;\r
                        cacheEntriesHtml = entriesHtml;\r
                }\r
+               \r
+               lastUpdateTime = new Date();\r
        } catch(e) {\r
                error('displaying list:' + e + ', line ' + e.line);\r
                return;\r
@@ -811,6 +814,14 @@ function updateScreen()
                updateHomescreen();\r
        else if (mode == 1)\r
                updateFullscreen();\r
+       \r
+       var time = new Date();\r
+       if (time.getTime() - lastUpdateTime.getTime() > config['updateDataInterval'].Value * 60 * 1000) {\r
+               console.info('updateScreen(): force updateData() because last update was too long ago (' + (time.getTime() - lastUpdateTime.getTime()) / 1000 + 's)');\r
+               clearUpdateTimer();\r
+               updateData();\r
+               setUpdateTimer(); // reinitialize update timer\r
+       }\r
 }\r
 \r
 function launchCalendar()\r