summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Chat')
m---------Swiften0
-rw-r--r--Swiften/Chat/ChatStateActionProvider.h7
-rw-r--r--Swiften/Chat/ChatStateMessageSender.cpp22
-rw-r--r--Swiften/Chat/ChatStateMessageSender.h20
-rw-r--r--Swiften/Chat/ChatStateNotifier.cpp45
-rw-r--r--Swiften/Chat/ChatStateNotifier.h26
-rw-r--r--Swiften/Chat/ChatStateTracker.cpp28
-rw-r--r--Swiften/Chat/ChatStateTracker.h21
-rw-r--r--Swiften/Chat/UnitTest/ChatStateNotifierTest.cpp132
9 files changed, 0 insertions, 301 deletions
diff --git a/Swiften b/Swiften
new file mode 160000
+Subproject 8213ba16d0043d2461f4b031c881d61dda5a38c
diff --git a/Swiften/Chat/ChatStateActionProvider.h b/Swiften/Chat/ChatStateActionProvider.h
deleted file mode 100644
index 82bed3f..0000000
--- a/Swiften/Chat/ChatStateActionProvider.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-namespace Swift {
- class ChatState {
-
- };
-}
diff --git a/Swiften/Chat/ChatStateMessageSender.cpp b/Swiften/Chat/ChatStateMessageSender.cpp
deleted file mode 100644
index ad1495f..0000000
--- a/Swiften/Chat/ChatStateMessageSender.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#include "Swiften/Chat/ChatStateMessageSender.h"
-
-#include <boost/bind.hpp>
-
-#include "Swiften/Client/StanzaChannel.h"
-
-namespace Swift {
-
-ChatStateMessageSender::ChatStateMessageSender(ChatStateNotifier* notifier, StanzaChannel* stanzaChannel, const JID& contact) : contact_(contact) {
- notifier_ = notifier;
- stanzaChannel_ = stanzaChannel;
- notifier_->onChatStateChanged.connect(boost::bind(&ChatStateMessageSender::handleChatStateChanged, this, _1));
-}
-
-void ChatStateMessageSender::handleChatStateChanged(ChatState::ChatStateType state) {
- boost::shared_ptr<Message> message(new Message());
- message->setTo(contact_);
- message->addPayload(boost::shared_ptr<Payload>(new ChatState(state)));
- stanzaChannel_->sendMessage(message);
-}
-
-}
diff --git a/Swiften/Chat/ChatStateMessageSender.h b/Swiften/Chat/ChatStateMessageSender.h
deleted file mode 100644
index aff0791..0000000
--- a/Swiften/Chat/ChatStateMessageSender.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#pragma once
-
-#include "Swiften/Chat/ChatStateNotifier.h"
-#include "Swiften/Elements/ChatState.h"
-#include "Swiften/JID/JID.h"
-
-namespace Swift {
- class StanzaChannel;
- class ChatStateMessageSender {
- public:
- ChatStateMessageSender(ChatStateNotifier* notifier, StanzaChannel* stanzaChannel, const JID& contact);
- void setContact(const JID& contact) {contact_ = contact;};
-
- private:
- void handleChatStateChanged(ChatState::ChatStateType state);
- ChatStateNotifier* notifier_;
- StanzaChannel* stanzaChannel_;
- JID contact_;
- };
-}
diff --git a/Swiften/Chat/ChatStateNotifier.cpp b/Swiften/Chat/ChatStateNotifier.cpp
deleted file mode 100644
index 7c6560f..0000000
--- a/Swiften/Chat/ChatStateNotifier.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#include "Swiften/Chat/ChatStateNotifier.h"
-
-namespace Swift {
-
-ChatStateNotifier::ChatStateNotifier() {
- contactHas85Caps_ = false;
- isInConversation_ = false;
- contactHasSentActive_ = false;
- userIsTyping_ = false;
-}
-
-void ChatStateNotifier::setContactHas85Caps(bool hasCaps) {
- contactHas85Caps_ = hasCaps;
-}
-
-void ChatStateNotifier::setUserIsTyping() {
- if (contactShouldReceiveStates() && !userIsTyping_) {
- userIsTyping_ = true;
- onChatStateChanged(ChatState::Composing);
- }
-}
-
-void ChatStateNotifier::userSentMessage() {
- userIsTyping_ = false;
-}
-
-void ChatStateNotifier::userCancelledNewMessage() {
- if (userIsTyping_) {
- userIsTyping_ = false;
- onChatStateChanged(ChatState::Active);
- }
-}
-
-void ChatStateNotifier::receivedMessageFromContact(bool hasActiveElement) {
- isInConversation_ = true;
- contactHasSentActive_ = hasActiveElement;
-}
-
-bool ChatStateNotifier::contactShouldReceiveStates() {
- /* So, yes, the XEP says to look at caps, but it also says that once you've
- heard from the contact, the active state overrides this.*/
- return contactHasSentActive_ || (contactHas85Caps_ && !isInConversation_);;
-}
-
-}
diff --git a/Swiften/Chat/ChatStateNotifier.h b/Swiften/Chat/ChatStateNotifier.h
deleted file mode 100644
index 0ef4255..0000000
--- a/Swiften/Chat/ChatStateNotifier.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#pragma once
-
-#include <boost/signals.hpp>
-#include <boost/shared_ptr.hpp>
-
-#include "Swiften/Elements/ChatState.h"
-
-namespace Swift {
- class ChatStateNotifier {
- public:
- ChatStateNotifier();
- void setContactHas85Caps(bool hasCaps);
- void setUserIsTyping();
- void userSentMessage();
- void userCancelledNewMessage();
- void receivedMessageFromContact(bool hasActiveElement);
- bool contactShouldReceiveStates();
-
- boost::signal<void (ChatState::ChatStateType)> onChatStateChanged;
- private:
- bool contactHas85Caps_;
- bool isInConversation_;
- bool contactHasSentActive_;
- bool userIsTyping_;
- };
-}
diff --git a/Swiften/Chat/ChatStateTracker.cpp b/Swiften/Chat/ChatStateTracker.cpp
deleted file mode 100644
index 3076845..0000000
--- a/Swiften/Chat/ChatStateTracker.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#include "Swiften/Chat/ChatStateTracker.h"
-
-namespace Swift {
-ChatStateTracker::ChatStateTracker() {
- currentState_ = ChatState::Gone;
-}
-
-void ChatStateTracker::handleMessageReceived(boost::shared_ptr<Message> message) {
- boost::shared_ptr<ChatState> statePayload = message->getPayload<ChatState>();
- if (statePayload) {
- changeState(statePayload->getChatState());;
- }
-}
-
-void ChatStateTracker::handlePresenceChange(boost::shared_ptr<Presence> newPresence, boost::shared_ptr<Presence>) {
- if (newPresence->getType() == Presence::Unavailable) {
- onChatStateChange(ChatState::Gone);
- }
-}
-
-void ChatStateTracker::changeState(ChatState::ChatStateType state) {
- if (state != currentState_) {
- currentState_ = state;
- onChatStateChange(state);
- }
-}
-
-}
diff --git a/Swiften/Chat/ChatStateTracker.h b/Swiften/Chat/ChatStateTracker.h
deleted file mode 100644
index e66bbae..0000000
--- a/Swiften/Chat/ChatStateTracker.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-
-#include <boost/signal.hpp>
-#include <boost/shared_ptr.hpp>
-
-#include "Swiften/Elements/Message.h"
-#include "Swiften/Elements/Presence.h"
-#include "Swiften/Elements/ChatState.h"
-
-namespace Swift {
- class ChatStateTracker {
- public:
- ChatStateTracker();
- void handleMessageReceived(boost::shared_ptr<Message> message);
- void handlePresenceChange(boost::shared_ptr<Presence> newPresence, boost::shared_ptr<Presence> oldPresence);
- boost::signal<void (ChatState::ChatStateType)> onChatStateChange;
- private:
- void changeState(ChatState::ChatStateType state);
- ChatState::ChatStateType currentState_;
- };
-}
diff --git a/Swiften/Chat/UnitTest/ChatStateNotifierTest.cpp b/Swiften/Chat/UnitTest/ChatStateNotifierTest.cpp
deleted file mode 100644
index 44ec9d8..0000000
--- a/Swiften/Chat/UnitTest/ChatStateNotifierTest.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/extensions/TestFactoryRegistry.h>
-#include <boost/bind.hpp>
-
-#include "Swiften/Chat/ChatStateNotifier.h"
-
-using namespace Swift;
-
-
-class ChatStateMonitor {
-public:
- ChatStateMonitor(ChatStateNotifier* notifier) {
- notifier_ = notifier;
- composingCallCount = 0;
- activeCallCount = 0;
- notifier->onChatStateChanged.connect(boost::bind(&ChatStateMonitor::handleChatStateChanged, this, _1));
- };
-
- int composingCallCount;
- int activeCallCount;
- ChatState::ChatStateType currentState;
-
-private:
- void handleChatStateChanged(ChatState::ChatStateType newState) {
- switch (newState) {
- case ChatState::Composing:
- composingCallCount++;
- break;
- case ChatState::Active:
- activeCallCount++;
- break;
- default:
- break;
- }
- currentState = newState;
- };
-
- ChatStateNotifier* notifier_;
-};
-
-class ChatStateNotifierTest : public CppUnit::TestFixture {
- CPPUNIT_TEST_SUITE(ChatStateNotifierTest);
- CPPUNIT_TEST(testStartTypingReply_CapsNotIncluded);
- CPPUNIT_TEST(testStartTypingReply_CapsIncluded);
- CPPUNIT_TEST(testCancelledNewMessage);
- CPPUNIT_TEST(testContinueTypingReply_CapsIncluded);
- CPPUNIT_TEST(testContactShouldReceiveStates_CapsOnly);
- CPPUNIT_TEST(testContactShouldReceiveStates_CapsNorActive);
- CPPUNIT_TEST(testContactShouldReceiveStates_ActiveOverrideOn);
- CPPUNIT_TEST(testContactShouldReceiveStates_ActiveOverrideOff);
- CPPUNIT_TEST_SUITE_END();
-
-private:
- ChatStateNotifier* notifier_;
- ChatStateMonitor* monitor_;
-
-public:
- void setUp() {
- notifier_ = new ChatStateNotifier();
- monitor_ = new ChatStateMonitor(notifier_);
- }
-
- void tearDown() {
- delete notifier_;
- delete monitor_;
- }
-
- void testStartTypingReply_CapsNotIncluded() {
- notifier_->setContactHas85Caps(false);
- notifier_->setUserIsTyping();
- CPPUNIT_ASSERT_EQUAL(0, monitor_->composingCallCount);
- }
-
- void testSendTwoMessages() {
- notifier_->setContactHas85Caps(true);
- notifier_->setUserIsTyping();
- notifier_->userSentMessage();
- notifier_->setUserIsTyping();
- notifier_->userSentMessage();
- CPPUNIT_ASSERT_EQUAL(2, monitor_->composingCallCount);
- }
-
- void testCancelledNewMessage() {
- notifier_->setContactHas85Caps(true);
- notifier_->setUserIsTyping();
- notifier_->userCancelledNewMessage();
- CPPUNIT_ASSERT_EQUAL(1, monitor_->composingCallCount);
- CPPUNIT_ASSERT_EQUAL(1, monitor_->activeCallCount);
- CPPUNIT_ASSERT_EQUAL(ChatState::Active, monitor_->currentState);
- }
-
-
- void testContactShouldReceiveStates_CapsOnly() {
- notifier_->setContactHas85Caps(true);
- CPPUNIT_ASSERT_EQUAL(true, notifier_->contactShouldReceiveStates());
- }
-
- void testContactShouldReceiveStates_CapsNorActive() {
- CPPUNIT_ASSERT_EQUAL(false, notifier_->contactShouldReceiveStates());
- }
-
- void testContactShouldReceiveStates_ActiveOverrideOn() {
- notifier_->setContactHas85Caps(false);
- notifier_->receivedMessageFromContact(true);
- CPPUNIT_ASSERT_EQUAL(true, notifier_->contactShouldReceiveStates());
- }
-
- void testContactShouldReceiveStates_ActiveOverrideOff() {
- notifier_->setContactHas85Caps(true);
- notifier_->receivedMessageFromContact(false);
- CPPUNIT_ASSERT_EQUAL(false, notifier_->contactShouldReceiveStates());
- }
-
-
- void testStartTypingReply_CapsIncluded() {
- notifier_->setContactHas85Caps(true);
- notifier_->setUserIsTyping();
- CPPUNIT_ASSERT_EQUAL(1, monitor_->composingCallCount);
- }
-
- void testContinueTypingReply_CapsIncluded() {
- notifier_->setContactHas85Caps(true);
- notifier_->setUserIsTyping();
- notifier_->setUserIsTyping();
- notifier_->setUserIsTyping();
- CPPUNIT_ASSERT_EQUAL(1, monitor_->composingCallCount);
- }
-
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(ChatStateNotifierTest);