[telepathy-python/master] Added a timeout to make sure contacts are ready before sending messages.

Jonny Lamb jonny.lamb at collabora.co.uk
Thu Jul 16 01:49:27 PDT 2009


Signed-off-by: Jonny Lamb <jonny.lamb at collabora.co.uk>
---
 examples/requests-message.py |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/examples/requests-message.py b/examples/requests-message.py
index 90a9708..1952d6d 100644
--- a/examples/requests-message.py
+++ b/examples/requests-message.py
@@ -34,6 +34,7 @@ class Message:
         self.conn[CONN_INTERFACE].Connect()
 
     def ready_cb(self, conn):
+        print "connected"
         conn[CONNECTION_INTERFACE_REQUESTS].connect_to_signal('NewChannels',
             self.new_channels_cb)
 
@@ -41,17 +42,20 @@ class Message:
         conn[CONNECTION_INTERFACE_SIMPLE_PRESENCE].SetPresence('available', '')
 
         if self.contact is not None:
-            handle = self.conn[CONN_INTERFACE].RequestHandles(
-                CONNECTION_HANDLE_TYPE_CONTACT, [self.contact])[0]
+            gobject.timeout_add(1000, self.send_message)
 
-            print 'got handle %d for %s' % (handle, self.contact)
+    def send_message(self):
+        handle = self.conn[CONN_INTERFACE].RequestHandles(
+            CONNECTION_HANDLE_TYPE_CONTACT, [self.contact])[0]
 
-            self.conn[CONNECTION_INTERFACE_REQUESTS].CreateChannel(dbus.Dictionary(
-                {
-                    CHANNEL_INTERFACE + '.ChannelType': CHANNEL_TYPE_TEXT,
-                    CHANNEL_INTERFACE + '.TargetHandleType': CONNECTION_HANDLE_TYPE_CONTACT,
-                    CHANNEL_INTERFACE + '.TargetHandle': handle
-                }, signature='sv'))
+        print 'got handle %d for %s' % (handle, self.contact)
+
+        self.conn[CONNECTION_INTERFACE_REQUESTS].CreateChannel(dbus.Dictionary(
+            {
+                CHANNEL_INTERFACE + '.ChannelType': CHANNEL_TYPE_TEXT,
+                CHANNEL_INTERFACE + '.TargetHandleType': CONNECTION_HANDLE_TYPE_CONTACT,
+                CHANNEL_INTERFACE + '.TargetHandle': handle
+            }, signature='sv'))
 
     def run(self):
         print "main loop running"
-- 
1.5.6.5




More information about the telepathy-commits mailing list