Author: titmuss
Date: Thu Mar 13 09:20:17 2008
New Revision: 2112

URL: http://svn.slimdevices.com?rev=2112&root=Jive&view=rev
Log:
Bug: 6019
Description:
When prompting for firmware updates show the firmware version, and context 
sensitive messages.


Modified:
    
trunk/squeezeplay/src/squeezeplay_jive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeApplet.lua
    
trunk/squeezeplay/src/squeezeplay_jive/share/applets/SetupFirmwareUpgrade/strings.txt

Modified: 
trunk/squeezeplay/src/squeezeplay_jive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeApplet.lua
URL: 
http://svn.slimdevices.com/trunk/squeezeplay/src/squeezeplay_jive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeApplet.lua?rev=2112&root=Jive&r1=2111&r2=2112&view=diff
==============================================================================
--- 
trunk/squeezeplay/src/squeezeplay_jive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeApplet.lua
 (original)
+++ 
trunk/squeezeplay/src/squeezeplay_jive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeApplet.lua
 Thu Mar 13 09:20:17 2008
@@ -40,6 +40,8 @@
 local appletManager          = appletManager
 local upgradeUrl             = upgradeUrl
 
+local JIVE_VERSION           = jive.JIVE_VERSION
+
 local EVENT_ACTION           = jive.ui.EVENT_ACTION
 local EVENT_WINDOW_POP       = jive.ui.EVENT_WINDOW_POP
 local LAYER_FRAME            = jive.ui.LAYER_FRAME
@@ -74,12 +76,74 @@
 
 local DEFAULT_FIRMWARE_URL = 
"http://www.slimdevices.com/update/firmware/7.0/jive.bin";
 
+local SDCARD_PATH = "/mnt/mmc/"
+
 module(...)
 oo.class(_M, Applet)
 
 
+function _firmwareVersion(self, url)
+
+       log:warn("url=", url)
+
+       local major, minor = string.match(url, "jive_([^_]+)_([^_]+)\.bin")
+
+       if not major then
+               return
+       end
+
+       return major .. " " .. minor
+end
+
+
+function _makeUpgradeItems(self, window, menu, url)
+       local help = Textarea("help", "")
+
+       local version = self:_firmwareVersion(url)
+       menu:addItem({
+               text = self:string("BEGIN_UPDATE"),
+               sound = "WINDOWSHOW",
+               callback = function()
+                       self.url = url
+                       self:_upgrade()
+               end,
+               focusGained = function()
+                       if version == JIVE_VERSION then
+                               
help:setValue(self:string("UPDATE_BEGIN_REINSTALL", version or "?"))
+                       else
+                               
help:setValue(self:string("UPDATE_BEGIN_UPGRADE", version or "?"))
+                       end
+               end
+       })
+
+       for entry in lfs.dir(SDCARD_PATH) do
+               local fileurl = "file:" .. SDCARD_PATH .. entry
+               local version = self:_firmwareVersion(fileurl)
+       
+               if version or entry == "jive.bin" then
+                       menu:addItem({
+                                    text = 
self:string("UPDATE_CONTINUE_SDCARD"),
+                                    sound = "WINDOWSHOW",
+                                    callback = function()
+                                                       self.url = fileurl
+                                                       self:_upgrade()
+                                               end,
+                                    focusGained = function()
+                                                          
help:setValue(self:string("UPDATE_BEGIN_SDCARD", version or ""))
+                                                  end
+                            })
+               end
+       end
+
+       window:addWidget(help)
+       window:addWidget(menu)
+end
+
+
 function forceUpgrade(self, upgUrl)
        local window = Window("window", self:string("UPDATE"), 
firmwareupgradeTitleStyle)
+       window:setAllowScreensaver(false)
+
        local menu = SimpleMenu("menu")
        menu:setCloseable(false)
 
@@ -90,7 +154,6 @@
        if not url then
                url = DEFAULT_FIRMWARE_URL
        end
-       log:warn("url=", url)
 
        window:addListener(EVENT_KEY_PRESS,
                           function(event)
@@ -102,29 +165,7 @@
                                   return EVENT_UNUSED
                           end)
 
-       menu:addItem({
-                            text = self:string("BEGIN_UPDATE"),
-                            sound = "WINDOWSHOW",
-                            callback = function()
-                                               self.url = url
-                                               self:_upgrade()
-                                       end
-                    })
-
-       if lfs.attributes("/mnt/mmc/jive.bin", "mode") == "file" then
-               menu:addItem({
-                                    text = 
self:string("UPDATE_CONTINUE_SDCARD"),
-                                    sound = "WINDOWSHOW",
-                                    callback = function()
-                                                       self.url = 
"file:/mnt/mmc/jive.bin"
-                                                       self:_upgrade()
-                                               end
-                            })
-       end
-
-       local help = Textarea("help", self:string("UPDATE_BEGIN_HELP"))
-       window:addWidget(help)
-       window:addWidget(menu)
+       self:_makeUpgradeItems(window, menu, url)
 
        self:tieAndShowWindow(window)
        return window
@@ -140,31 +181,8 @@
        if not url then
                url = DEFAULT_FIRMWARE_URL
        end
-       log:warn("url=", url)
-
-       menu:addItem({
-                            text = self:string("NETWORK_UPDATE"),
-                            sound = "WINDOWSHOW",
-                            callback = function()
-                                               self.url = url
-                                               self:_upgrade()
-                                       end
-                    })
-
-       if lfs.attributes("/mnt/mmc/jive.bin", "mode") == "file" then
-               menu:addItem({
-                                    text = 
self:string("UPDATE_CONTINUE_SDCARD"),
-                                    sound = "WINDOWSHOW",
-                                    callback = function()
-                                                       self.url = 
"file:/mnt/mmc/jive.bin"
-                                                       self:_upgrade()
-                                               end
-                            })
-       end
-
-       local help = Textarea("help", self:string("UPDATE_BEGIN_HELP"))
-       window:addWidget(help)
-       window:addWidget(menu)
+
+       self:_makeUpgradeItems(window, menu, url)
 
        self:tieAndShowWindow(window)
        return window

Modified: 
trunk/squeezeplay/src/squeezeplay_jive/share/applets/SetupFirmwareUpgrade/strings.txt
URL: 
http://svn.slimdevices.com/trunk/squeezeplay/src/squeezeplay_jive/share/applets/SetupFirmwareUpgrade/strings.txt?rev=2112&root=Jive&r1=2111&r2=2112&view=diff
==============================================================================
--- 
trunk/squeezeplay/src/squeezeplay_jive/share/applets/SetupFirmwareUpgrade/strings.txt
 (original)
+++ 
trunk/squeezeplay/src/squeezeplay_jive/share/applets/SetupFirmwareUpgrade/strings.txt
 Thu Mar 13 09:20:17 2008
@@ -101,14 +101,14 @@
        IT      \nRiavvio
        NL      \nBezig met opnieuw starten
 
-UPDATE_BEGIN_HELP
-       DA      Opdateret programmel er tilgængeligt for denne fjernbetjening. 
Dette tager nogle få minutter.
-       DE      Für diese Fernbedienung ist aktualisierte Software verfügbar. 
Dieser Vorgang kann ein paar Minuten dauern.
-       EN      Updated software is available for this remote. This process may 
take a few minutes.
-       ES      Existe software actualizado disponible para este mando a 
distancia. El proceso de actualización puede tardar unos minutos.
-       FR      Une mise à jour de logiciel est disponible pour cette 
télécommande. Cette procédure peut prendre quelques minutes.
-       IT      Per questo telecomando è disponibile software aggiornato. 
L'operazione potrebbe richiedere alcuni minuti.
-       NL      Voor deze afstandsbediening is bijgewerkte software 
beschikbaar. Dit proces kan enkele minuten in beslag nemen.
+UPDATE_BEGIN_UPGRADE
+       EN      Updated software is available for this remote. It may take a 
few minutes to update to version %s.
+
+UPDATE_BEGIN_REINSTALL
+       EN      The software for this remote is up to date. If you'd like to 
reinstall version %s, choose Begin Update.
+
+UPDATE_BEGIN_SDCARD
+       EN      Install %s from SD card.
 
 UPDATE_BATTERY
        DA      Oplad batteri

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

Reply via email to