diff options
author | Joanna Hulboj <joanna.hulboj@isode.com> | 2017-03-13 21:51:04 (GMT) |
---|---|---|
committer | Kevin Smith <kevin.smith@isode.com> | 2017-05-04 10:34:00 (GMT) |
commit | cfea60eda7f3ce5fa10ed92c50c19fc1ee264eb1 (patch) | |
tree | fb2564927189eb1cc8e28ac82fd96f6161b54d31 /Swiften | |
parent | dc70dbb6af039fba8f7a1cece8db4bb119deaabd (diff) | |
download | swift-cfea60eda7f3ce5fa10ed92c50c19fc1ee264eb1.zip swift-cfea60eda7f3ce5fa10ed92c50c19fc1ee264eb1.tar.bz2 |
Fix recent chat entries being incorrectly displayed
Recent chat entries were displayed as a randomly generated numbers instead of
impromptus (if invitees were offline).
Title displayed in the Recent Chat List for MUC is now based on both the
occupants and invitees. To do that a collection with all the invitees is
being stored (new) along the occupants (existing).
Test-Information:
From Swift menu choose Actions, Start Chat... Add some offline contacts
to the List of Participants and press Finish. Recent chat entry will
have correct name (combined of contact names).
Change-Id: Ie076165e8dbb493aa261cc49ca3ab1e0c1c542a8
Diffstat (limited to 'Swiften')
-rw-r--r-- | Swiften/Base/Algorithm.h | 8 | ||||
-rw-r--r-- | Swiften/Client/DummyStanzaChannel.h | 14 |
2 files changed, 18 insertions, 4 deletions
diff --git a/Swiften/Base/Algorithm.h b/Swiften/Base/Algorithm.h index c481aa8..108dbe3 100644 --- a/Swiften/Base/Algorithm.h +++ b/Swiften/Base/Algorithm.h @@ -152,4 +152,12 @@ namespace Swift { private: V value; }; + + template <typename Map> + bool key_compare(Map const& lhs, Map const& rhs) { + + auto pred = [](decltype(*lhs.begin()) a, decltype(a) b) { return a.first == b.first; }; + + return lhs.size() == rhs.size() && std::equal(lhs.begin(), lhs.end(), rhs.begin(), pred); + } } diff --git a/Swiften/Client/DummyStanzaChannel.h b/Swiften/Client/DummyStanzaChannel.h index fc2f05b..4cc0f7e 100644 --- a/Swiften/Client/DummyStanzaChannel.h +++ b/Swiften/Client/DummyStanzaChannel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2016 Isode Limited. + * Copyright (c) 2010-2017 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ @@ -13,7 +13,7 @@ namespace Swift { class DummyStanzaChannel : public StanzaChannel { public: - DummyStanzaChannel() : available_(true) {} + DummyStanzaChannel() {} virtual void sendStanza(std::shared_ptr<Stanza> stanza) { sentStanzas.push_back(stanza); @@ -37,7 +37,11 @@ namespace Swift { } virtual std::string getNewIQID() { - return "test-id"; + std::string id = "test-id"; + if (uniqueIDs_) { + id += "-" + std::to_string(idCounter_++); + } + return id; } virtual bool isAvailable() const { @@ -94,6 +98,8 @@ namespace Swift { } std::vector<std::shared_ptr<Stanza> > sentStanzas; - bool available_; + bool available_ = true; + bool uniqueIDs_ = false; + unsigned int idCounter_ = 0; }; } |