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