Author: mherger
Date: Tue Feb 9 23:05:59 2010
New Revision: 8470
URL: http://svn.slimdevices.com/jive?rev=8470&view=rev
Log:
Bug: 15646
Description: various ImageViewer fixes
- don't change touch/button/action behaviour when using ImageViewer in
screensaver mode
- catch WINDOW_POP/PUSH events for the first "loading" screen too
- only allow interaction in interactive mode, when called manually. Make sure
screensavers are more reliably recognized as such.
- always animate slideshow, even if there seems to be only one item: many of
the remote screensavers (flickr, facebook) only return one item per request
Modified:
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerApplet.lua
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerMeta.lua
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=8470&r1=8469&r2=8470&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
Tue Feb 9 23:05:59 2010
@@ -86,6 +86,7 @@
if src == "card" then
self.imgSource = ImageSourceCard(self)
+-- Flickr is now being served by mysb.com, disable standalone applet
-- elseif src == "flickr" then
-- self.imgSource = ImageSourceFlickr(self)
-- default to web list - it's available on all players
@@ -105,7 +106,7 @@
text =
self:string("IMAGE_VIEWER_START_SLIDESHOW"),
sound = "WINDOWSHOW",
callback = function(event, menuItem)
- self:startSlideshow(menuItem, false)
+ self:startSlideshow(false)
return EVENT_CONSUME
end
},
@@ -124,14 +125,18 @@
return window
end
-
-function startSlideshow(self, menuItem, isScreensaver, imgSourceOverride)
+function startScreensaver(self)
+ log:info("start standard image viewer screensaver")
+ self:startSlideshow(true)
+end
+
+function startSlideshow(self, isScreensaver, imgSourceOverride)
log:info("start image viewer")
-- initialize the chosen image source
self:initImageSource(imgSourceOverride)
self.initialized = true
- self.isScreensaver = isScreensaver
+ self.isScreensaver = isScreensaver and true or false
self:showInitWindow()
self:startSlideshowWhenReady()
end
@@ -157,11 +162,16 @@
self:applyScreensaverWindow(popup)
popup:addListener(EVENT_KEY_PRESS | EVENT_MOUSE_PRESS,
- function()
+ function()
popup:playSound("WINDOWHIDE")
popup:hide()
- end)
-
+ end)
+
+ popup:addListener(EVENT_WINDOW_PUSH | EVENT_WINDOW_POP,
+ function(event)
+ return EVENT_CONSUME
+ end)
+
self:tieAndShowWindow(popup, Window.transitionFadeIn)
end
@@ -198,7 +208,6 @@
return
end
-
-- image list is ready
self.imgSource:nextImage(self:getSettings()["ordering"])
self:displaySlide()
@@ -307,9 +316,9 @@
end
local now = Framework:getTicks()
if not self.lastScrollT or
- self.lastScrollT + MIN_SCROLL_INTERVAL < now
or
- self.lastScrollDir ~= dir then
- --scrolling a lot or a little only
moves by one, since image fetching is relatively slow
+ self.lastScrollT + MIN_SCROLL_INTERVAL
< now or
+ self.lastScrollDir ~= dir then
+ --scrolling a lot or a little only
moves by one, since image fetching is relatively slow
self.lastScrollT = now
self.lastScrollDir = dir
if scroll > 0 then
@@ -330,6 +339,8 @@
--service method
function registerRemoteScreensaver(self, serverData)
+ serverData.isScreensaver = true
+
appletManager:callService("addScreenSaver",
serverData.text,
"ImageViewer",
@@ -348,10 +359,10 @@
function openRemoteScreensaver(self, force, serverData)
- self:startSlideshow(_, true, ImageSourceServer(self, serverData))
-end
-
-function closeRemoteScreensaver(self, force, serverData)
+ self:startSlideshow(serverData.isScreensaver, ImageSourceServer(self,
serverData))
+end
+
+function closeRemoteScreensaver(self)
if self.window then
self.window:hide()
end
@@ -389,7 +400,7 @@
end)
end
local manager = appletManager:getAppletInstance("ScreenSavers")
- manager:screensaverWindow(window, true, {"add", "go", "up", "down",
"back"}, true)
+ manager:screensaverWindow(window, true, {"add", "go", "up", "down",
"back"})
end
@@ -412,8 +423,7 @@
if not self.imgSource:imageReady() then
-- try again in a few moments
log:debug("image not ready, try again...")
--- self.checkFotoTimer = Timer(1000, --hmm, this seems to enforce
a second wait even if response is fast.... todo have image sink trigger this
instead
- --todo: also, might this run continuously on a failure even if
the applet is complete.
+
if not self.checkFotoTimer then
self.checkFotoTimer = Timer(200, --hmm, this seems to
enforce a second wait even if response is fast....
function()
@@ -541,9 +551,9 @@
if self.isScreensaver then
self:applyScreensaverWindow(window)
+ else
+ self:setupEventHandlers(window)
end
-
- self:setupEventHandlers(window)
-- replace the window if it's already there
if self.window then
@@ -569,16 +579,13 @@
--no iconbar
self.window:setShowFrameworkWidgets(false)
- -- if we have more than one picture, start slideshow
- if self.imgSource:getImageCount() > 1 then
- -- start timer for next photo in 'delay' milliseconds
- local delay = self:getSettings()["delay"]
- self.nextSlideTimer = self.window:addTimer(delay,
- function()
-
self.imgSource:nextImage(self:getSettings()["ordering"])
- self:displaySlide()
- end)
- end
+ -- start timer for next photo in 'delay' milliseconds
+ local delay = self:getSettings()["delay"]
+ self.nextSlideTimer = self.window:addTimer(delay,
+ function()
+
self.imgSource:nextImage(self:getSettings()["ordering"])
+ self:displaySlide()
+ end)
else
file = self.imgSource:getCurrentImagePath() or 'unknown'
log:info("Invalid image object found: " .. file)
Modified:
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerMeta.lua
URL:
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerMeta.lua?rev=8470&r1=8469&r2=8470&view=diff
==============================================================================
---
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerMeta.lua
(original)
+++
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerMeta.lua
Tue Feb 9 23:05:59 2010
@@ -45,7 +45,7 @@
function configureApplet(self)
appletManager:callService("addScreenSaver",
self:string("IMAGE_VIEWER"), "ImageViewer",
- "startSlideshow", self:string("IMAGE_VIEWER_SETTINGS"),
"openSettings", 90)
+ "startScreensaver", self:string("IMAGE_VIEWER_SETTINGS"),
"openSettings", 90, "closeRemoteScreensaver")
end
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins