Author: bklaas
Date: Fri Jul  9 11:43:41 2010
New Revision: 8940

URL: http://svn.slimdevices.com/jive?rev=8940&view=rev
Log:
Bug: n/a
Description: temporary hack to push user going to App Gallery to the account 
registration applet
add serverLinked notification method to AccountRegistration applet
(THIS BRANCH NOT YET FOR GENERAL CONSUMPTION)

Modified:
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.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=8940&r1=8939&r2=8940&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
 Fri Jul  9 11:43:41 2010
@@ -781,7 +781,15 @@
        -- it's very helpful at times to dump the request table here to see 
what command is being issued
        -- debug.dump(request)
 
-       if not useCachedResponse then
+       -- 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
+       if request[1] == 'appgallery' then
+               log:info('Redirecting request to registration applet')
+               appletManager:callService("startRegister")
+
+       elseif not useCachedResponse then
                -- send the command
                _server:userRequest(sink, playerid, request)
        else

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=8940&r1=8939&r2=8940&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
 Fri Jul  9 11:43:41 2010
@@ -41,7 +41,6 @@
 local slimServer       = require("jive.slim.SlimServer")
 
 local DNS              = require("jive.net.DNS")
-local Networking       = require("jive.net.Networking")
 
 local debug            = require("jive.utils.debug")
 local locale           = require("jive.utils.locale")
@@ -82,11 +81,26 @@
 end
 
 
+function accountRegistered(self)
+       local player = appletManager:callService("getCurrentPlayer")
+       if not player then
+               log:error('No player found')
+               return false
+       end
+
+       local settings = self:getSettings()
+       return settings.registerDone and settings.registerDone[player:getId()]
+
+end
+
+
 function _startRegister(self)
        log:info("_startRegister")
 
+       local player = appletManager:callService("getCurrentPlayer")
+
        local settings = self:getSettings()
-       if settings.registerDone then
+       if settings.registerDone and settings.registerDone[player:getId()] then
                log:info("SqueezeNetwork registration complete")
                return
        end
@@ -276,6 +290,54 @@
 end
 
 
+function notify_serverLinked(self, server, wasAlreadyLinked)
+        log:info("notify_serverLinked: ", server)
+
+        if not server:isSqueezeNetwork() then
+                return
+        end
+
+        if not self.registerRequest then
+                return
+        end
+
+        --avoid race condition where we are in the registerRequest but for a 
player that is already linked
+        if  self.registerRequestRequireAlreadyLinked and not wasAlreadyLinked 
then
+                return
+        end
+        log:info("server linked: ", server, " pin=", server:getPin(), " 
registerRequestRequireAlreadyLinked: ", 
self.registerRequestRequireAlreadyLinked, " wasAlreadyLinked: ", 
wasAlreadyLinked)
+
+        if server:getPin() == false then
+                -- for testing connect the player tosqueezenetwork
+                local player = appletManager:callService("getCurrentPlayer")
+
+                local squeezenetwork = false
+                for name, server in slimServer:iterate() do
+                        if server:isSqueezeNetwork() then
+                                squeezenetwork = server
+                        end
+                end
+
+                log:info("connecting ", player, " to ", squeezenetwork)
+                player:connectToServer(squeezenetwork)
+
+               self:registerDone(player)
+        end
+end
+
+
+function registerDone(self, player)
+       if not player then
+               return
+       end
+
+       local settings = self:getSettings()
+       settings.registerDone[player:getId()] = true
+       self:storeSettings()
+
+end
+
+
 function _registerRequest(self, squeezenetwork)
        if self.registerRequest then
                return
@@ -292,7 +354,7 @@
        appletManager:callService("squeezeNetworkRequest", { 'register', 0, 
100, 'service:SN' }, true, successCallback )
 
        self.locked = true -- don't free applet
-       -- XXX: it could be that the NetworkRegistration applet needs a 
notify_playerCurrent() method to deal with the registration being successful; 
the subscribe right here hints at that...
+       -- XXX: this appears to be so the serverLinked notification will pick 
up the successful registration when it completes
        jnt:subscribe(self)
 end
 
@@ -305,19 +367,6 @@
                end
        end
        return squeezenetwork
-end
-
-
-function _setupDone(self, setupDone, registerDone)
-       log:info("network setup complete")
-
-       local settings = self:getSettings()
-
-       settings.setupDone = setupDone
-       self:storeSettings()
-
-       -- FIXME: workaround until filesystem write issue resolved
-       os.execute("sync")
 end
 
 

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=8940&r1=8939&r2=8940&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
 Fri Jul  9 11:43:41 2010
@@ -44,7 +44,7 @@
 
 function defaultSettings(meta)
        return {
-               [ "registerDone" ] = false,
+               [ "registerDone" ] = {},
        }
 end
 

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

Reply via email to