[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, master, updated. milestone4-368-g700ab82

Michael 'Mickey' Lauer mickey at vanille-media.de
Mon Feb 2 18:51:16 UTC 2009


The following commit has been merged in the master branch:
commit 3893dbb08b9a2a7d0da2497576eb724f2c387861
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date:   Fri Nov 14 03:30:03 2008 +0100

    ogsmd: implement org.freesmartphone.GSM.Network.GetCountryCode() -> ss

diff --git a/ChangeLog b/ChangeLog
index 86f8c71..501db6c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-11-14	Michael Lauer	<mickey at openmoko.org>
+
+	* Implement org.freesmartphone.GSM.Network.GetCountryCode() -> ss
+
 2008-11-02	Michael Lauer	<mickey at openmoko.org>
 
 	* python-hotshot is deprecated and give bogus results. Switch to cProfile and
diff --git a/framework/subsystems/ogsmd/modems/abstract/mediator.py b/framework/subsystems/ogsmd/modems/abstract/mediator.py
index 5941c37..f80f050 100644
--- a/framework/subsystems/ogsmd/modems/abstract/mediator.py
+++ b/framework/subsystems/ogsmd/modems/abstract/mediator.py
@@ -991,8 +991,18 @@ class NetworkRegisterWithProvider( NetworkMediator ):
 #=========================================================================#
 class NetworkGetCountryCode( NetworkMediator ):
 #=========================================================================#
-    def __init__( self, dbus_object, dbus_ok, dbus_error, **kwargs ):
-        dbus_error( error.UnsupportedCommand( self.__class__.__name__ ) )
+    def trigger( self ):
+        self._commchannel.enqueue( "+COPS=3,2;+COPS?;+COPS=3,0", self.responseFromChannel, self.errorFromChannel )
+
+    def responseFromChannel( self, request, response ):
+        if response[-1] == "OK" and len( response ) > 1:
+            values = self._rightHandSide( response[0] ).split( ',' )
+            if len( values ) != 3:
+                self._error( error.NetworkNotFound( "Not registered to an operator" ) )
+            else:
+                mcc = int( values[2].strip( '"' )[:3] )
+                code, name = const.mccToCountryCode( mcc )
+                self._ok( code, name )
 
 #=========================================================================#
 class NetworkGetCallForwarding( NetworkMediator ): # a{sv}
diff --git a/framework/subsystems/ogsmd/objects.py b/framework/subsystems/ogsmd/objects.py
index e69eb51..71a9d64 100644
--- a/framework/subsystems/ogsmd/objects.py
+++ b/framework/subsystems/ogsmd/objects.py
@@ -517,10 +517,10 @@ class Device( resource.Resource ):
     def RegisterWithProvider( self, operator_code, dbus_ok, dbus_error ):
         mediator.NetworkRegisterWithProvider( self, dbus_ok, dbus_error, operator_code=operator_code )
 
-    @dbus.service.method( DBUS_INTERFACE_NETWORK, "", "s",
+    @dbus.service.method( DBUS_INTERFACE_NETWORK, "", "ss",
                           async_callbacks=( "dbus_ok", "dbus_error" ) )
     @resource.checkedmethod
-    def GetNetworkCountryCode( self, dbus_ok, dbus_error ):
+    def GetCountryCode( self, dbus_ok, dbus_error ):
         mediator.NetworkGetCountryCode( self, dbus_ok, dbus_error )
 
     @dbus.service.method( DBUS_INTERFACE_NETWORK, "s", "a{sv}",

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list