zhone patch: contacts from vcf was: Re: [debian/zhone] Send an SMS

Pander pander at users.sourceforge.net
Mon Oct 27 05:25:59 CET 2008


Hi Arne,

Thanks for you work.

Please also have a look at the following three use cases concerning SIM
contacts and address book contacts. This is an elegant way of dealing
with the two.

Regards,

Pander

arne anka wrote:
> below a patch for zhone to read contatcs instead from sim from
> /root/addressbook.vcf (what's the easiest way to determine the user's
> home directory from python?)
> main difference to the patch proposed someweher on the wiki: _all_
> numbers of one contact are added to the list, not just the last one.
> 
> actually, the last two section address
> a) disabling the zhone screensaver which is probably unwanted if you run
> zhone from xfce
> b) catching an exception i've seen several times when suspending -- it
> slowed down suspend considerably
> 
> --- zhone.orig    2008-10-26 20:31:34.000000000 +0100
> +++ zhone.patched    2008-10-26 20:31:47.000000000 +0100
> @@ -1,4 +1,4 @@
> -#!/usr/bin/env python
> +#!/usr/bin/python
>  #coding=utf8
>  """
>  Zen Phone - A Phone UI
> @@ -731,6 +731,29 @@
> 
>      def prepare( self ):
>          if not self.ready and not self.busy:
> +            file = open("/root/addressbook.vcf", "r")
> +            entries = []
> +            entry_nr = 1
> +            name = None
> +            number = None
> +            for line in file:
> +                #if line.startswith("END:VCARD"):
> +                if line.startswith("TEL;"):
> +                    number = unicode(line.partition(":")[2].strip())
> +                    if name and number:
> +                        entry = entry_nr, name, number
> +                        entries.append(entry)
> +                        entry_nr = entry_nr + 1
> +                if line.startswith("END:VCARD"):
> +                    name = None
> +                    number = None
> +                if line.startswith("N:"):
> +                    name = unicode(line.partition(":")[2].replace(';','
> ').strip(), "utf8", "utf8")
> +                #if line.startswith("TEL;"):
> +                #    number = unicode(line.partition(":")[2].strip())
> +            file.close()
> +            self.cbPhonebookReply(entries)
> +            """
>              if dbus_object.gsm_device_obj:
>                  logger.info( "retrieving phonebook..." )
>                  dbus_object.gsm_sim_iface.RetrievePhonebook(
> @@ -749,6 +772,7 @@
>                      (6, u'Sulu', '+013244344'),
>                      (7, u'Chekov', '+456663443'),
>                  ] )
> +            """
> 
>      def onReadyStatus( self, status ):
>          logger.debug( "SIM is ready: %s" % status )
> @@ -1818,7 +1842,7 @@
>          dbus_object.onReadyStatus.append(
> self.groups["contacts"].onReadyStatus )
>          dbus_object.onReadyStatus.append(
> self.groups["sms"].onReadyStatus )
>          dbus_object.onIncomingMessage.append(
> self.groups["sms"].onIncomingMessage )
> -        dbus_object.onIdleStateChanged.append( self.lock_on_idle )
> +        #dbus_object.onIdleStateChanged.append( self.lock_on_idle )
> 
>          logger.debug( "GUI init done" )
> 
> @@ -2182,7 +2206,10 @@
>          elif name+action == "POWERreleased":
>              if self.willSuspend:
>                  self.willSuspend = False
> +                try:
>                  self.gsm_device_iface.PrepareForSuspend()
> +                except DBusException:
> +                    logger.info( "DBUSEXCEPTION" )
>                  logger.info( "ENTERING SUSPEND" )
>                  os.system( "apm -s" )
>                  logger.info( "RETURN FROM SUSPEND" )
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Openmoko community mailing list
> community at lists.openmoko.org
> http://lists.openmoko.org/mailman/listinfo/community





More information about the community mailing list