diff --git a/src/chat/chat-room/basic-chat-room-p.h b/src/chat/chat-room/basic-chat-room-p.h index c281f940d..28d810955 100644 --- a/src/chat/chat-room/basic-chat-room-p.h +++ b/src/chat/chat-room/basic-chat-room-p.h @@ -30,6 +30,7 @@ LINPHONE_BEGIN_NAMESPACE class BasicChatRoomPrivate : public ChatRoomPrivate { private: std::string subject; + std::shared_ptr me; std::list> participants; bool cpimAllowed = false; bool multipartAllowed = false; diff --git a/src/chat/chat-room/basic-chat-room.cpp b/src/chat/chat-room/basic-chat-room.cpp index 5951f482d..16d6185ce 100644 --- a/src/chat/chat-room/basic-chat-room.cpp +++ b/src/chat/chat-room/basic-chat-room.cpp @@ -40,6 +40,7 @@ BasicChatRoom::BasicChatRoom ( const ChatRoomId &chatRoomId ) : ChatRoom(p, core, chatRoomId) { L_D(); + d->me = make_shared(getLocalAddress()); d->participants.push_back(make_shared(getPeerAddress())); } @@ -102,8 +103,8 @@ shared_ptr BasicChatRoom::findParticipant (const IdentityAddress &) } shared_ptr BasicChatRoom::getMe () const { - lError() << "getMe() is not allowed on a BasicChatRoom"; - return nullptr; + L_D(); + return d->me; } int BasicChatRoom::getParticipantCount () const { diff --git a/src/db/main-db.cpp b/src/db/main-db.cpp index b6695f37d..663257cf9 100644 --- a/src/db/main-db.cpp +++ b/src/db/main-db.cpp @@ -362,8 +362,6 @@ long long MainDbPrivate::insertChatRoom (const shared_ptr &cha soci::use(lastUpdateTime), soci::use(capabilities), soci::use(subject), soci::use(flags), soci::use(notifyId); id = dbSession.getLastInsertId(); - if (!chatRoom->canHandleParticipants()) - return id; // Do not add 'me' when creating a server-group-chat-room. if (chatRoomId.getLocalAddress() != chatRoomId.getPeerAddress()) {