From e20171fed4e4daf0ff2b8c42704a55df59c9921f Mon Sep 17 00:00:00 2001
From: Amin Bandali <amin.bandali@savoirfairelinux.com>
Date: Tue, 10 Nov 2020 14:25:47 -0500
Subject: [PATCH] pixbufmanipulator: use default letter avatar for corrupted
 avatars

For cases where GDK_IS_PIXBUF returns FALSE on an avatar, use one
created by the generateAvatar function as a fallback, to avoid
warnings and trying to show a corrupted avatar.

Change-Id: I87c88056c643666de1e77849ea77e7c749689744
---
 src/native/pixbufmanipulator.cpp | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/native/pixbufmanipulator.cpp b/src/native/pixbufmanipulator.cpp
index f1d9188d..58891288 100644
--- a/src/native/pixbufmanipulator.cpp
+++ b/src/native/pixbufmanipulator.cpp
@@ -213,7 +213,16 @@ PixbufManipulator::conversationPhoto(const lrc::api::conversation::Info& convers
             } else if (!contactPhoto.isEmpty()) {
                 QByteArray byteArray = contactPhoto.toUtf8();
                 QVariant photo = personPhoto(byteArray);
-                return QVariant::fromValue(scaleAndFrame(photo.value<std::shared_ptr<GdkPixbuf>>().get(), size, displayInformation, status, unreadMessages));
+                if (GDK_IS_PIXBUF(photo.value<std::shared_ptr<GdkPixbuf>>().get())) {
+                    return QVariant::fromValue(scaleAndFrame(
+                        photo.value<std::shared_ptr<GdkPixbuf>>().get(), size,
+                        displayInformation, status, unreadMessages));
+                } else {
+                    return QVariant::fromValue(scaleAndFrame(
+                        generateAvatar(bestName.toStdString(),
+                            "ring:" + contactInfo.profileInfo.uri.toStdString()).get(),
+                        size, displayInformation, status, unreadMessages));
+                }
             } else {
                 return QVariant::fromValue(scaleAndFrame(generateAvatar(bestName.toStdString(),
                      "ring:" + contactInfo.profileInfo.uri.toStdString()).get(), size, displayInformation, status, unreadMessages));
-- 
GitLab