Trying to improve behavior on n900
authorEd Page <eopage@byu.net>
Wed, 10 Feb 2010 02:26:33 +0000 (20:26 -0600)
committerEd Page <eopage@byu.net>
Wed, 10 Feb 2010 02:26:33 +0000 (20:26 -0600)
src/channel/call.py

index 5808d4e..5ab9a0b 100644 (file)
@@ -45,27 +45,34 @@ class CallChannel(
                tp.ChannelInterfaceCallState.__init__(self)
                tp.ChannelInterfaceGroup.__init__(self)
                self.__contactHandle = contactHandle
+
                self._implement_property_get(
-                       telepathy.interfaces.CHANNEL_TYPE_STREAMED_MEDIA,
+                       telepathy.interfaces.CHANNEL_INTERFACE,
                        {
-                               "InitialAudio": self.initial_audio,
-                               "InitialVideo": self.initial_video,
+                               'InitiatorHandle': lambda: dbus.UInt32(self._initiator.id),
+                               'InitiatorID': lambda: self._initiator.name,
                        },
                )
                self._add_immutables({
-                       'InitialAudio': telepathy.interfaces.CHANNEL_TYPE_STREAMED_MEDIA,
-                       'InitialVideo': telepathy.interfaces.CHANNEL_TYPE_STREAMED_MEDIA,
+                       'InitiatorHandle': telepathy.interfaces.CHANNEL_INTERFACE,
+                       'InitiatorID': telepathy.interfaces.CHANNEL_INTERFACE,
                })
                self._implement_property_get(
-                       telepathy.interfaces.CHANNEL_INTERFACE,
+                       telepathy.interfaces.CHANNEL_INTERFACE_GROUP,
                        {
-                               'InitiatorHandle': lambda: dbus.UInt32(self._initiator.id),
-                               'InitiatorID': lambda: self._initiator.name,
+                               'LocalPendingMembers': lambda: self.GetLocalPendingMembersWithInfo()
+                       },
+               )
+               self._implement_property_get(
+                       telepathy.interfaces.CHANNEL_TYPE_STREAMED_MEDIA,
+                       {
+                               "InitialAudio": self.initial_audio,
+                               "InitialVideo": self.initial_video,
                        },
                )
                self._add_immutables({
-                       'InitiatorHandle': telepathy.interfaces.CHANNEL_INTERFACE,
-                       'InitiatorID': telepathy.interfaces.CHANNEL_INTERFACE,
+                       'InitialAudio': telepathy.interfaces.CHANNEL_TYPE_STREAMED_MEDIA,
+                       'InitialVideo': telepathy.interfaces.CHANNEL_TYPE_STREAMED_MEDIA,
                })
 
                self.GroupFlagsChanged(0, 0)
@@ -94,7 +101,25 @@ class CallChannel(
 
        @gtk_toolbox.log_exception(_moduleLogger)
        def GetLocalPendingMembersWithInfo(self):
-               return []
+               info = dbus.Array([], signature="(uuus)")
+               for member in self._local_pending:
+                       info.append((member, self._handle, 0, ''))
+               return info
+
+       @gtk_toolbox.log_exception(_moduleLogger)
+       def AddMembers(self, handles, message):
+               _moduleLogger.info("Add members %r: %s" % (handles, message))
+               for handle in handles:
+                       if handle == int(self.GetSelfHandle()) and self.GetSelfHandle() in self._local_pending:
+                               _moduleLogger.info("Technically the user just accepted the call")
+
+       @gtk_toolbox.log_exception(_moduleLogger)
+       def RemoveMembers(self, handles, message):
+               _moduleLogger.info("Remove members (no-op) %r: %s" % (handles, message))
+
+       @gtk_toolbox.log_exception(_moduleLogger)
+       def RemoveMembersWithReason(self, handles, message, reason):
+               _moduleLogger.info("Remove members (no-op) %r: %s (%i)" % (handles, message, reason))
 
        @gtk_toolbox.log_exception(_moduleLogger)
        def ListStreams(self):