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

arne anka openmoko at ginguppin.de
Sun Oct 26 20:41:13 CET 2008


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" )
-------------- next part --------------
A non-text attachment was scrubbed...
Name: zhone_contacts_from_vcf.patch.gz
Type: application/x-gzip
Size: 980 bytes
Desc: not available
Url : http://lists.openmoko.org/pipermail/community/attachments/20081026/4ff34c64/attachment.bin 


More information about the community mailing list