1 files changed, 12 insertions, 1 deletions
diff --git a/src/RoomDirectoryModel.cpp b/src/RoomDirectoryModel.cpp
index 2a06e4d4..b206bf9e 100644
--- a/src/RoomDirectoryModel.cpp
+++ b/src/RoomDirectoryModel.cpp
@@ -4,6 +4,7 @@
#include "RoomDirectoryModel.h"
#include "ChatPage.h"
+#include "Cache.h"
#include <algorithm>
@@ -68,6 +69,16 @@ RoomDirectoryModel::setSearchTerm(const QString &f)
resetDisplayedData();
}
+
+bool
+RoomDirectoryModel::canJoinRoom(const QByteArray &room)
+{
+ const auto &cache = cache::roomInfo();
+ const QString room_id (room);
+ const bool validRoom = !room_id.isNull() && !room_id.isEmpty();
+ return validRoom && !cache.contains(room_id);
+}
+
std::vector<std::string>
RoomDirectoryModel::getViasForRoom(const std::vector<std::string> &aliases)
{
@@ -174,4 +185,4 @@ RoomDirectoryModel::displayRooms(std::vector<mtx::responses::PublicRoomsChunk> f
}
prevBatch_ = std::exchange(nextBatch_, next_batch);
-}
\ No newline at end of file
+}
|