diff --git a/activities/chat/Makefile.am b/activities/chat/Makefile.am index e77c3452..9030e740 100644 --- a/activities/chat/Makefile.am +++ b/activities/chat/Makefile.am @@ -1,6 +1,6 @@ sugardir = $(pkgdatadir)/activities/chat sugar_PYTHON = \ __init__.py \ - ChatActivity.py + chatactivity.py EXTRA_DIST = chat.activity diff --git a/activities/chat/chat.activity b/activities/chat/chat.activity index b0b8ea75..0cbda51b 100644 --- a/activities/chat/chat.activity +++ b/activities/chat/chat.activity @@ -3,4 +3,4 @@ name = GroupChat icon = activity-chat id = org.laptop.ChatActivity python_module = chat.chatactivity.ChatActivity -show_launcher = no +show_launcher = yes diff --git a/activities/chat/chatactivity.py b/activities/chat/chatactivity.py index 264311b6..374351fb 100644 --- a/activities/chat/chatactivity.py +++ b/activities/chat/chatactivity.py @@ -17,8 +17,33 @@ from gettext import gettext as _ from sugar.activity.Activity import Activity +from sugar.chat.Chat import Chat +from sugar.p2p.Stream import Stream -class GroupChatActivity(Activity): +class ChatActivity(Activity): def __init__(self): Activity.__init__(self) + + self._group_stream = None + self.set_title(_('Group chat')) + + self._chat = Chat() + self.add(self._chat) + self._chat.show() + + def join(self, activity_ps): + Activity.join(self, activity_ps) + self._setup_stream() + + def share(self): + Activity.share(self) + self._setup_stream() + + def _setup_stream(self): + self._group_stream = Stream.new_from_service(self._service) + self._group_stream.set_data_listener(self._group_recv_message) + self._chat.set_stream_writer(self._group_stream.new_writer()) + + def _group_recv_message(self, address, msg): + self._chat.recv_message(msg) diff --git a/sugar/chat/BuddyChat.py b/sugar/chat/BuddyChat.py deleted file mode 100644 index 4f2059ff..00000000 --- a/sugar/chat/BuddyChat.py +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (C) 2006, Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -from sugar.chat.Chat import Chat -from sugar.p2p.Stream import Stream - -class BuddyChat(Chat): - SERVICE_TYPE = "_olpc_buddy_chat._tcp" - - def __init__(self, service): - Chat.__init__(self) - - self._stream = Stream.new_from_service(service, False) - self._stream_writer = self._stream.new_writer(service) - - def _recv_message_cb(self, address, msg): - self.recv_message(msg) diff --git a/sugar/chat/Chat.py b/sugar/chat/Chat.py index ddecefb3..eb1b4daf 100644 --- a/sugar/chat/Chat.py +++ b/sugar/chat/Chat.py @@ -246,6 +246,9 @@ class Chat(gtk.VBox): self._insert_sketch(buddy, chunk) return + def set_stream_writer(self, stream_writer): + self._stream_writer = stream_writer + def send_sketch(self, svgdata): if not svgdata or not len(svgdata): return diff --git a/sugar/chat/GroupChat.py b/sugar/chat/GroupChat.py deleted file mode 100644 index d7580dab..00000000 --- a/sugar/chat/GroupChat.py +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2006, Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -import logging - -from sugar.chat.Chat import Chat -from sugar.p2p.Stream import Stream -from sugar.presence.PresenceService import PresenceService -import sugar.env - -class GroupChat(Chat): - def __init__(self): - Chat.__init__(self) - self._group_stream = None - - def _setup_stream(self, service): - self._group_stream = Stream.new_from_service(service) - self._group_stream.set_data_listener(self._group_recv_message) - self._stream_writer = self._group_stream.new_writer() - - def _group_recv_message(self, address, msg): - logging.debug('Group chat received from %s message %s' % (address, msg)) - self.recv_message(msg) diff --git a/sugar/chat/Makefile.am b/sugar/chat/Makefile.am index cf5fde4a..0b6a5d7a 100644 --- a/sugar/chat/Makefile.am +++ b/sugar/chat/Makefile.am @@ -4,12 +4,10 @@ sugardir = $(pythondir)/sugar/chat sugar_PYTHON = \ __init__.py \ ActivityChat.py \ - BuddyChat.py \ Chat.py \ ChatEditor.py \ ChatToolbar.py \ Emoticons.py \ - GroupChat.py \ richtext.py EXTRA_DIST = \