From c3efab43fb93c4deb651c4a0452496b9e573dceb Mon Sep 17 00:00:00 2001
From: Nicolas Werner <nicolas.werner@ymail.com>
Date: Thu, 14 Apr 2022 17:33:28 +0200
Subject: [PATCH] Cleanup some random dbus stuff

---
 src/dbus/NhekoDBusApi.h       |  2 +-
 src/dbus/NhekoDBusBackend.cpp | 24 ++++++++++++++++--------
 2 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/src/dbus/NhekoDBusApi.h b/src/dbus/NhekoDBusApi.h
index 47cc108a6..d2754f249 100644
--- a/src/dbus/NhekoDBusApi.h
+++ b/src/dbus/NhekoDBusApi.h
@@ -75,6 +75,6 @@ operator<<(QDBusArgument &arg, const QVersionNumber &v);
 const QDBusArgument &
 operator>>(const QDBusArgument &arg, QVersionNumber &v);
 
-#define NHEKO_DBUS_SERVICE_NAME "io.github.Nheko-Reborn.nheko"
+#define NHEKO_DBUS_SERVICE_NAME "im.nheko.Nheko"
 
 #endif // NHEKODBUSAPI_H
diff --git a/src/dbus/NhekoDBusBackend.cpp b/src/dbus/NhekoDBusBackend.cpp
index 3645aea6c..7c1c77f86 100644
--- a/src/dbus/NhekoDBusBackend.cpp
+++ b/src/dbus/NhekoDBusBackend.cpp
@@ -26,11 +26,8 @@ NhekoDBusBackend::getRooms(const QDBusMessage &message)
       new QVector<nheko::dbus::RoomInfoItem>};
 
     for (const auto &room : roomListModel) {
-        MainWindow::instance()->imageProvider()->download(
-          room->roomAvatarUrl().remove("mxc://"),
-          {96, 96},
-          [message, room, model, roomListModel](
-            const QString &, const QSize &, const QImage &image, const QString &) {
+        auto addRoom =
+          [room, roomListModelSize = roomListModel.size(), message, model](const QImage &image) {
               const auto aliases = cache::client()->getRoomAliases(room->roomId().toStdString());
               QString alias;
               if (aliases.has_value()) {
@@ -44,15 +41,26 @@ NhekoDBusBackend::getRooms(const QDBusMessage &message)
               model->push_back(nheko::dbus::RoomInfoItem{
                 room->roomId(), room->roomName(), alias, image, room->notificationCount()});
 
-              if (model->length() == roomListModel.size()) {
+              if (model->length() == roomListModelSize) {
                   auto reply = message.createReply();
                   nhlog::ui()->debug("Sending {} rooms over D-Bus...", model->size());
                   reply << QVariant::fromValue(*model);
                   QDBusConnection::sessionBus().send(reply);
                   nhlog::ui()->debug("Rooms successfully sent to D-Bus.");
               }
-          },
-          true);
+          };
+
+        auto avatarUrl = room->roomAvatarUrl();
+        if (avatarUrl.isEmpty())
+            addRoom(QImage());
+        else
+            MainWindow::instance()->imageProvider()->download(
+              avatarUrl.remove("mxc://"),
+              {96, 96},
+              [addRoom](const QString &, const QSize &, const QImage &image, const QString &) {
+                  addRoom(image);
+              },
+              true);
     }
 
     return {};
-- 
GitLab