Author: mherger
Date: Fri Feb 19 02:48:22 2010
New Revision: 8526

URL: http://svn.slimdevices.com/jive?rev=8526&view=rev
Log:
Bug: 14326
Description: improve behaviour when screensaver fails to load image. Give 
feedback to the user and try again - but no more than 50x.

Modified:
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSource.lua
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceCard.lua
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceServer.lua
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerApplet.lua
    7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/strings.txt

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSource.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSource.lua?rev=8526&r1=8525&r2=8526&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSource.lua 
(original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSource.lua 
Fri Feb 19 02:48:22 2010
@@ -159,6 +159,10 @@
        return #self.imgFiles
 end
 
+function getErrorMessage(self)
+       return "unknown"
+end
+
 function free(self)
 end
 

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceCard.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceCard.lua?rev=8526&r1=8525&r2=8526&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceCard.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceCard.lua
 Fri Feb 19 02:48:22 2010
@@ -150,6 +150,10 @@
        obj:readImageList()
        return false
 end
+
+function getErrorMessage(self)
+       return self:getCurrentImagePath()
+end
 
 
 function settings(self, window)

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceServer.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceServer.lua?rev=8526&r1=8525&r2=8526&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceServer.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceServer.lua
 Fri Feb 19 02:48:22 2010
@@ -54,6 +54,8 @@
        obj.imageDataHistoryMax = 30
        
        obj:readImageList()
+       
+       obj.error = nil
 
        return obj
 end
@@ -232,9 +234,11 @@
                                local image = Surface:loadImageData(chunk, 
#chunk)
                                self.image = image
                                log:debug("image ready")
+                               self.error = nil
                                self:_updateImageDataHistory(imageData)
                        elseif err then
                                self.image = nil
+                               self.error = 
self.applet:string("IMAGE_VIEWER_HTTP_ERROR_IMAGE") 
                                log:warn("error loading picture")
                        end
                        self.imgReady = true
@@ -274,6 +278,10 @@
        return false
 end
 
+function getErrorMessage(self)
+       return self.error or 
oo.superclass(ImageSourceServer).getErrorMessage(self)
+end
+
 
 --[[
 

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerApplet.lua?rev=8526&r1=8525&r2=8526&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerApplet.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerApplet.lua
 Fri Feb 19 02:48:22 2010
@@ -72,10 +72,12 @@
 
        self.imgSource = nil
        self.listCheckCount = 0
+       self.imageCheckCount = 0
        self.initialized = false
        self.isRendering = false
        self.dragStart = -1
        self.dragOffset = 0
+       self.imageError = nil
 
        self:setImageSource(imgSourceOverride)
 
@@ -501,7 +503,9 @@
                self.nextSlideTimer:restart()
        end
 
-       if not self.imgSource:imageReady() then
+       if not self.imgSource:imageReady() and self.imageCheckCount < 50 then
+               self.imageCheckCount = self.imageCheckCount + 1
+               
                -- try again in a few moments
                log:debug("image not ready, try again...")
 
@@ -515,6 +519,8 @@
                self.checkFotoTimer:restart()
                return
        end
+       
+       self.imageCheckCount = 0
 
        log:debug("image rendering")
        self.isRendering = true
@@ -556,6 +562,9 @@
        self.task:yield()
 
        if image != nil and w > 0 and h > 0 then
+       
+               self.imageError = nil
+       
                if self.imgSource:useAutoZoom() then
                        local imageLandscape = ((w/h) > 1)
 
@@ -686,12 +695,14 @@
                                self:displaySlide()
                        end)
        else
-               local file = self.imgSource:getCurrentImagePath() or 'unknown'
-               log:info("Invalid image object found: " .. file)
-
-               
self.imgSource:popupMessage(self:string("IMAGE_VIEWER_INVALID_IMAGE"), file)
+               if self.imageError == nil then
+                       self.imageError = 
tostring(self.imgSource:getErrorMessage())
+                       log:info("Invalid image object found: " .. 
self.imageError)
+
+                       
self.imgSource:popupMessage(self:string("IMAGE_VIEWER_INVALID_IMAGE"), 
self.imageError)
+               end
                
-               self.nextSlideTimer = Timer(self:getSettings()["delay"] / 2,
+               self.nextSlideTimer = Timer(self:getSettings()["delay"],
                        function()
                                
self.imgSource:nextImage(self:getSettings()["ordering"])
                                self:displaySlide()

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/strings.txt
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/strings.txt?rev=8526&r1=8525&r2=8526&view=diff
==============================================================================
--- 7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/strings.txt 
(original)
+++ 7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/strings.txt 
Fri Feb 19 02:48:22 2010
@@ -714,6 +714,9 @@
        RU      Не удалось получить список 
URL-адресов. Убедитесь, что задан правильный 
URL-адрес.
        SV      Det gick inte att hämta webbadresslistan. Kontrollera att den 
angivna webbadressen är korrekt.
 
+IMAGE_VIEWER_HTTP_ERROR_IMAGE
+       EN      Could not retrieve image file. Please check the player's 
network connectivity.
+
 #
 # Strings for Flickr Source
 #

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins

Reply via email to