diff --git a/src/calladapter.cpp b/src/calladapter.cpp index 3f4c1773b8ffcb1139dff25be84b595418b03ab2..06870f8a152a366254393cb097f1d764ac4abb3d 100644 --- a/src/calladapter.cpp +++ b/src/calladapter.cpp @@ -117,19 +117,18 @@ CallAdapter::onCallStatusChanged(const QString& accountId, const QString& callId if (systemTray_->hideNotification(QString("%1;%2").arg(accountId).arg(convInfo.uid)) && call.startTime.time_since_epoch().count() == 0) { // This was a missed call; show a missed call notification - // TODO: swarmify(avoid using convInfo.participants[0]) - auto contactPhoto = Utils::contactPhoto(lrcInstance_, - convInfo.participants[0], - QSize(50, 50), - accountId); + auto convAvatar = Utils::conversationAvatar(lrcInstance_, + convInfo.uid, + QSize(50, 50), + accountId); auto& accInfo = lrcInstance_->getAccountInfo(accountId); - auto from = accInfo.contactModel->bestNameForContact(convInfo.participants[0]); + auto from = accInfo.conversationModel->title(convInfo.uid); auto notifId = QString("%1;%2").arg(accountId).arg(convInfo.uid); systemTray_->showNotification(notifId, tr("Missed call"), - tr("Missed call from %1").arg(from), + tr("Missed call with %1").arg(from), NotificationType::CHAT, - Utils::QImageToByteArray(contactPhoto)); + Utils::QImageToByteArray(convAvatar)); } } #else @@ -536,34 +535,26 @@ CallAdapter::getConferencesInfos() void CallAdapter::showNotification(const QString& accountId, const QString& convUid) { - QString from {}; - const auto& convInfo = lrcInstance_->getConversationFromConvUid(convUid, accountId); - if (!accountId.isEmpty() && !convInfo.uid.isEmpty()) { - auto& accInfo = lrcInstance_->getAccountInfo(accountId); - if (!convInfo.participants.isEmpty()) - from = accInfo.contactModel->bestNameForContact(convInfo.participants[0]); - } + auto& accInfo = lrcInstance_->getAccountInfo(accountId); + auto title = accInfo.conversationModel->title(convUid); #ifdef Q_OS_LINUX - auto contactPhoto = Utils::contactPhoto(lrcInstance_, - convInfo.participants[0], - QSize(50, 50), - accountId); + auto convAvatar = Utils::conversationAvatar(lrcInstance_, convUid, QSize(50, 50), accountId); auto notifId = QString("%1;%2").arg(accountId).arg(convUid); systemTray_->showNotification(notifId, tr("Incoming call"), - tr("%1 is calling you").arg(from), + tr("%1 is calling you").arg(title), NotificationType::CALL, - Utils::QImageToByteArray(contactPhoto)); + Utils::QImageToByteArray(convAvatar)); #else - auto onClicked = [this, accountId, convUid = convInfo.uid]() { + auto onClicked = [this, accountId, convUid]() { Q_EMIT lrcInstance_->notificationClicked(); const auto& convInfo = lrcInstance_->getConversationFromConvUid(convUid, accountId); - if (convInfo.uid.isEmpty()) + if (convUid.isEmpty()) return; - lrcInstance_->selectConversation(convInfo.uid, accountId); + lrcInstance_->selectConversation(convUid, accountId); }; - systemTray_->showNotification(tr("is calling you"), from, onClicked); + systemTray_->showNotification(tr("is calling you"), title, onClicked); #endif }