class TextChannel(tp.ChannelTypeText):
- """
- Look into implementing ChannelInterfaceMessages for rich text formatting
- """
+
+ NULL_TIMESTAMP = datetime.datetime(1, 1, 1)
def __init__(self, connection, manager, props, contactHandle):
self.__manager = manager
tp.ChannelTypeText.__init__(self, connection, manager, props)
self.__nextRecievedId = 0
- self.__lastMessageTimestamp = datetime.datetime(1, 1, 1)
+ self.__lastMessageTimestamp = self.NULL_TIMESTAMP
self.__otherHandle = contactHandle
if messageType != telepathy.CHANNEL_TEXT_MESSAGE_TYPE_NORMAL:
raise telepathy.errors.NotImplemented("Unhandled message type: %r" % messageType)
+ if self.__lastMessageTimestamp == self.NULL_TIMESTAMP:
+ # Hack: GV marks messages as read when they are replied to. If GV
+ # marks them as read than we ignore them. So reduce the window for
+ # them being marked as read. Oh and Conversations already handles
+ # it if the message was already part of a thread, so we can limit
+ # this to if we are trying to start a thread. You might say a
+ # voicemail could be what is being replied to and that doesn't mean
+ # anything. Oh well.
+ try:
+ self._conn.session.texts.update(force=True)
+ except Exception:
+ _moduleLogger.exception(
+ "Update failed when proactively checking for texts"
+ )
+
_moduleLogger.info("Sending message to %r" % (self.__otherHandle, ))
self._conn.session.backend.send_sms(self.__otherHandle.phoneNumber, text)
self._conn.session.textsStateMachine.reset_timers()
self.close()
def close(self):
+ _moduleLogger.debug("Closing text")
self._conn.session.voicemails.updateSignalHandler.unregister_sink(
self.__callback
)
for newMessage in messages:
formattedMessage = self._format_message(newMessage)
self._report_new_message(formattedMessage)
+ for conv in newConversations:
+ conv.isRead = True
def _filter_out_reported(self, conversations):
return (
if self.__lastMessageTimestamp < conversation.time
)
- def _filter_out_read(self, conversations):
+ @staticmethod
+ def _filter_out_read(conversations):
return (
conversation
for conversation in conversations