No need to "Try Harder", we just need to fix the phoneprefix file, don't you
agree?

On Sat, May 1, 2010 at 11:09 PM, Martin Jansa <[email protected]>wrote:

> * from GetSimInfo we can take imsi
> * from last 6 letters get MCC
> * from MCC get country code with GetCountryCodeForMccMnc
> * then try to convert country code to country name with
>  GetAllCountries, be aware it's using space instead '_'
>  and sometimes different names (ie for St. Helen).
> * and finally look for country name in /etc/phoneprefix
>
> * with ogsmd we got country name as one field in GetSimInfo
>
> * phoneprefix will be merged to fsotdld later and
>  /org/freesmartphone/Data/World will provide api to get prefixes for
>  MCC directly (but it will take some time, so pushing this ugly version
>  for now).
> ---
>  shr_settings_modules/shr_phoneutils.py |   23 +++++++++++++++++++----
>  1 files changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/shr_settings_modules/shr_phoneutils.py
> b/shr_settings_modules/shr_phoneutils.py
> index 99ca78a..fa76a35 100644
> --- a/shr_settings_modules/shr_phoneutils.py
> +++ b/shr_settings_modules/shr_phoneutils.py
> @@ -165,10 +165,25 @@ class Phoneutils(module.AbstractModule):
>                return self.Validate()
>
>        def simInfoArrived(self, siminfo):
> -               try:
> -                       if siminfo['country'] in self.countries:
> -                               self.cc, self.ip, self.np =
> self.countries[siminfo['country']]
> -                       else:
> +               try:
> +                       country = None
> +                       if 'country' in siminfo.keys():
> +                               # country is in -> ogsmd
> +                               country = siminfo['country']
> +                       else:
> +                               # country is not in -> fsogsmd
> +                               mcc = siminfo['imsi'][:6]
> +                               data_world_obj = self.dbus.get_object(
> 'org.freesmartphone.odatad', '/org/freesmartphone/Data/World' )
> +                               data_world_iface =
> dbus.Interface(data_world_obj, 'org.freesmartphone.Data.World')
> +                               country_code =
> data_world_iface.GetCountryCodeForMccMnc(mcc)
> +                               country_codes =
> data_world_iface.GetAllCountries()
> +                               for item in country_codes:
> +                                       if item[0] == country_code:
> +                                               country = item[1].replace("
> ", "_")
> +                       if country in self.countries:
> +                               self.cc, self.ip, self.np =
> self.countries[country]
> +                               print self.cc;
> +                       elif 'dial_prefix' in siminfo.keys():
>                                prefix = siminfo['dial_prefix']
>                                prefix.replace('+','')
>                                self.cc, self.ip, self.np =
> self.countries[self.prefixes[prefix]]
> --
> 1.7.0.4
>
> _______________________________________________
> Shr-devel mailing list
> [email protected]
> http://lists.shr-project.org/mailman/listinfo/shr-devel
>



-- 
Tom.
_______________________________________________
Shr-devel mailing list
[email protected]
http://lists.shr-project.org/mailman/listinfo/shr-devel

Reply via email to