Author: bklaas
Date: Wed Jul 14 14:57:01 2010
New Revision: 8948

URL: http://svn.slimdevices.com/jive?rev=8948&view=rev
Log:
Bug: n/a
Description: add extractWidgetFromWindow method to Window.lua
added code to unlock home menu item when squeezenetwork request is loaded
add accountRegistered method that returns whether registration for that player 
has been completed

Modified:
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
    7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/ui/Window.lua
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/AccountRegistration/AccountRegistrationApplet.lua
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/AccountRegistration/AccountRegistrationMeta.lua

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua?rev=8948&r1=8947&r2=8948&view=diff
==============================================================================
--- 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
 (original)
+++ 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
 Wed Jul 14 14:57:01 2010
@@ -19,7 +19,7 @@
 
 -- stuff we use
 local tostring, tonumber, type, sort = tostring, tonumber, type, sort
-local pairs, ipairs, select, _assert = pairs, ipairs, select, _assert
+local pairs, ipairs, select, _assert, unpack = pairs, ipairs, select, _assert, 
unpack
 
 local oo                     = require("loop.simple")
 local math                   = require("math")
@@ -379,7 +379,7 @@
 end
 
 
-local function _stepLockHandler(step, loadedCallback, skipMenuLock)
+local function _stepLockHandler(step, loadedCallback, skipMenuLock, myMenu)
        if not step then
                return
        end
@@ -397,6 +397,7 @@
                                end)
                end
        end
+       -- FIXME: allow for a means of getting the origin menu into this method 
if it's not a step
        step.loaded = function()
                if currentStep and currentStep.menu then
                        currentStep.menu:unlock()
@@ -404,6 +405,9 @@
                if currentStep and currentStep.simpleMenu then
                        currentStep.simpleMenu:unlock()
                end
+               if myMenu then
+                       myMenu:unlock()
+               end
 
                loadedCallback()
        end
@@ -412,14 +416,15 @@
 
 -- skipMenuLock is given as true when no lock treatment is needed on the menu 
 -- (e.g., for when _pushToWindow is being used outside a menu like in titlebar 
CM touch button)
-local function _pushToNewWindow(step, skipMenuLock)
+local function _pushToNewWindow(step, skipMenuLock, myMenu)
        _stepLockHandler(
                step,  
                function()
                        _pushStep(step)
                        step.window:show()
                end, 
-               skipMenuLock
+               skipMenuLock,
+               myMenu
        )
 end
 
@@ -780,21 +785,29 @@
 
        -- it's very helpful at times to dump the request table here to see 
what command is being issued
        -- debug.dump(request)
-
+       
        -- XXX: temporary hack to push appgallery request to SN registration 
applet
-       -- this needs to be changed to doing a check for 
-       -- 1. if the menu item requires an SN account,
-       -- 1a. if yes, check if settings.registerDone (via service method) is 
not true
+       -- this needs to be changed to doing a check for if the menu item 
requires an SN account
+       -- requires a flag on the item
+       
        if request[1] == 'appgallery' then
-               log:info('Redirecting request to registration applet')
-               appletManager:callService("startRegister")
-
-       elseif not useCachedResponse then
+               local playerRegistered = 
appletManager:callService("accountRegistered", _player)
+
+               if not playerRegistered then
+                       log:warn('this player needs to be registered with 
mysb.com first')
+                       appletManager:callService("startRegister")
+                       return
+               end
+       end
+
+       if not useCachedResponse then
                -- send the command
                _server:userRequest(sink, playerid, request)
+
        else
                 log:info("using cachedResponse")
                sink(cachedResponse)
+
        end
 end
 
@@ -2912,6 +2925,9 @@
 
        _server = squeezenetwork
 
+       local _originWindow = Window:getTopNonTransientWindow() 
+       local _originMenu = _originWindow:extractWidgetFromWindow(Menu)
+
        -- create a window for SN signup
        local step, sink = _newDestination(
                nil,
@@ -2921,10 +2937,11 @@
                        menuStyle = 'menu',
                        labelItemStyle   = "item",
                        windowStyle = 'text_list',
-                       disableBackButton = true,
                },
                _browseSink
        )
+
+
        local sinkWrapper = sink
        if successCallback then
                sinkWrapper =  function(...)
@@ -2934,9 +2951,10 @@
                                
successCallback(squeezenetwork:isSpRegisteredWithSn())
                        end
        end
-       _pushToNewWindow(step)
+       _pushToNewWindow(step, true, _originMenu)
+
         squeezenetwork:userRequest( sinkWrapper, nil, request )
-
+       
 end
 
 
@@ -3011,7 +3029,6 @@
                                        _pushStep(step)
                                else
                                        from, qty = _decideFirstChunk(step, 
jsonAction)
-
                                        step.loaded = function()
                                                --if lastBrowseIndex then defer 
callback until lastBrowseIndex chunk received.
                                                local lastBrowseIndex = 
_player:getLastBrowseIndex(step.commandString)

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/ui/Window.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/ui/Window.lua?rev=8948&r1=8947&r2=8948&view=diff
==============================================================================
--- 7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/ui/Window.lua 
(original)
+++ 7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/ui/Window.lua 
Wed Jul 14 14:57:01 2010
@@ -50,6 +50,7 @@
 local Widget                  = require("jive.ui.Widget")
 local Event                   = require("jive.ui.Event")
 local Surface                 = require("jive.ui.Surface")
+local Menu                    = require("jive.ui.Menu")
 
 local debug                   = require("jive.utils.debug")
 local log                     = 
require("jive.utils.log").logger("squeezeplay.ui")
@@ -233,10 +234,35 @@
        return _ignoreAllInputListener(self, actionEvent, excludedActions, 
ignoredCallback)
 
 end
-
---[[
-
-=head2 ignoreAllInputExcept(excludedActions, ignoredCallback)
+--[[
+
+=head2 jive.ui.Window:extractWidgetFromWindow(widgetClass)
+
+iterates through window and returns first widget of class <class> found in the 
container window
+
+=cut
+--]]
+function extractWidgetFromWindow(self, class)
+
+        -- extract widget of <class> from Window widget
+        local widget = {}
+        self:iterate(function(w)
+                if oo.instanceof(w, class) then
+                        widget[#widget + 1] = w
+                end
+        end)
+       if widget then
+               return unpack(widget)
+       else
+               log:error('widget not found')
+               return nil
+       end
+end
+
+
+--[[
+
+=head2 jive.ui.Window:ignoreAllInputExcept(excludedActions, ignoredCallback)
 
 Consume all input events except for i<excludedActions>. Note: The action 
"soft_reset" is always included in the excluded actions.
 if ignoredCallback exists, ignoredCallback(actionEvent) will be called for any 
ignored action.

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/AccountRegistration/AccountRegistrationApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/AccountRegistration/AccountRegistrationApplet.lua?rev=8948&r1=8947&r2=8948&view=diff
==============================================================================
--- 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/AccountRegistration/AccountRegistrationApplet.lua
 (original)
+++ 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/AccountRegistration/AccountRegistrationApplet.lua
 Wed Jul 14 14:57:01 2010
@@ -81,8 +81,10 @@
 end
 
 
-function accountRegistered(self)
-       local player = appletManager:callService("getCurrentPlayer")
+function accountRegistered(self, player)
+       if not player then
+               local player = appletManager:callService("getCurrentPlayer")
+       end
        if not player then
                log:error('No player found')
                return false
@@ -351,7 +353,7 @@
        end
 
        log:info("registration on SN")
-       appletManager:callService("squeezeNetworkRequest", { 'register', 0, 
100, 'service:SN' }, true, successCallback )
+       appletManager:callService("squeezeNetworkRequest", { 'register', 0, 
100, 'service:SN' }, false, successCallback )
 
        self.locked = true -- don't free applet
        -- XXX: this appears to be so the serverLinked notification will pick 
up the successful registration when it completes

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/AccountRegistration/AccountRegistrationMeta.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/AccountRegistration/AccountRegistrationMeta.lua?rev=8948&r1=8947&r2=8948&view=diff
==============================================================================
--- 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/AccountRegistration/AccountRegistrationMeta.lua
 (original)
+++ 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/AccountRegistration/AccountRegistrationMeta.lua
 Wed Jul 14 14:57:01 2010
@@ -50,6 +50,7 @@
 
 
 function registerApplet(meta)
+       meta:registerService("accountRegistered")
        meta:registerService("startRegister")
        meta:registerService("waitForSqueezenetwork")
 end

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

Reply via email to