X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fchannel%2Ftext.py;h=1fd7d1eff411be29ce259f8946bf9462de6d0a41;hb=007e2c7b70cf9310e9e6056e24ad8f6123958a61;hp=1f15dbfe006b1b56cf415ae1e5291b9564a1b100;hpb=887113c5927f329599cc7044c7b689d1134f0dac;p=theonering diff --git a/src/channel/text.py b/src/channel/text.py index 1f15dbf..1fd7d1e 100644 --- a/src/channel/text.py +++ b/src/channel/text.py @@ -6,6 +6,7 @@ import telepathy import tp import util.coroutines as coroutines import util.misc as misc_utils +import util.go_utils as gobject_utils import gvoice @@ -54,27 +55,29 @@ class TextChannel(tp.ChannelTypeText): @misc_utils.log_exception(_moduleLogger) def Send(self, messageType, text): + le = gobject_utils.LinearExecution(self._send) + le.start(messageType, text) + + def _send(self, messageType, text, on_success, on_error): if messageType != telepathy.CHANNEL_TEXT_MESSAGE_TYPE_NORMAL: raise telepathy.errors.NotImplemented("Unhandled message type: %r" % messageType) _moduleLogger.info("Sending message to %r" % (self.__otherHandle, )) - self._conn.session.pool.add_task( - self._conn.session.backend.send_sms, - ([self.__otherHandle.phoneNumber], text), - {}, - self._on_send_sms(messageType, text), - self._on_send_sms_failed, - ) - - def _on_send_sms(self, messageType, text): - - @misc_utils.log_exception(_moduleLogger) - def _actual_on_send_sms(self, *args): - self._conn.session.textsStateMachine.reset_timers() + try: + result = yield self._conn.session.pool.add_task, ( + self._conn.session.backend.send_sms, + ([self.__otherHandle.phoneNumber], text), + {}, + on_success, + on_error, + ), {} + except Exception: + _moduleLogger.exception(result) + return - self.Sent(int(time.time()), messageType, text) + self._conn.session.textsStateMachine.reset_timers() - return _actual_on_send_sms + self.Sent(int(time.time()), messageType, text) @misc_utils.log_exception(_moduleLogger) def _on_send_sms_failed(self, error):