diff --git a/README.md b/README.md
index 85993ece7..c275a14de 100644
--- a/README.md
+++ b/README.md
@@ -244,8 +244,9 @@ Please note that we don't offer free support and these contributions will be add
### Languages
-Linphone is getting a full internationalization support, using Transifex platform.
-If you want you can contribute at: https://www.transifex.com/belledonne-communications/linphone-desktop/languages/
+Linphone is getting a full internationalization support.
+We no longer use transifex for the translation process, instead we have deployed our own instance of [Weblate](https://weblate.linphone.org).
+If you want you can contribute at: https://weblate.linphone.org/projects/linphone-desktop/
### Feedback or bug reporting
diff --git a/linphone-app/src/components/participant-imdn/ParticipantImdnStateListModel.cpp b/linphone-app/src/components/participant-imdn/ParticipantImdnStateListModel.cpp
index a3cf37578..4b18ae634 100644
--- a/linphone-app/src/components/participant-imdn/ParticipantImdnStateListModel.cpp
+++ b/linphone-app/src/components/participant-imdn/ParticipantImdnStateListModel.cpp
@@ -40,9 +40,11 @@ ParticipantImdnStateListModel::ParticipantImdnStateListModel (std::shared_ptr
> imdns = message->getParticipantsByImdnState(states[i]);
for(auto imdn : imdns){
- auto deviceModel = std::make_shared(imdn);
+ if(imdn->getParticipant()){
+ auto deviceModel = std::make_shared(imdn);
//connect(this, &ParticipantDeviceListModel::securityLevelChanged, deviceModel.get(), &ParticipantDeviceModel::onSecurityLevelChanged);
- mList << deviceModel;
+ mList << deviceModel;
+ }
}
}
}
@@ -118,7 +120,8 @@ std::shared_ptr ParticipantImdnStateListModel::getImd
//--------------------------------------------------------------------------------
void ParticipantImdnStateListModel::updateState(const std::shared_ptr & state){
- getImdnState(state)->update(state);
+ if(state->getParticipant())
+ getImdnState(state)->update(state);
}
//--------------------------------------------------------------------------------
diff --git a/linphone-app/src/components/participant-imdn/ParticipantImdnStateModel.cpp b/linphone-app/src/components/participant-imdn/ParticipantImdnStateModel.cpp
index 3f5b41bc8..41ff8fa88 100644
--- a/linphone-app/src/components/participant-imdn/ParticipantImdnStateModel.cpp
+++ b/linphone-app/src/components/participant-imdn/ParticipantImdnStateModel.cpp
@@ -34,7 +34,9 @@ ParticipantImdnStateModel::ParticipantImdnStateModel (const std::shared_ptrgetEngine()->setObjectOwnership(this, QQmlEngine::CppOwnership);// Avoid QML to destroy it when passing by Q_INVOKABLE
setState(LinphoneEnums::fromLinphone(imdn->getState()));
setStateChangeTime(QDateTime::fromSecsSinceEpoch(imdn->getStateChangeTime())) ;
- mAddress = imdn->getParticipant()->getAddress()->clone();
+ auto participant = imdn->getParticipant();
+ if(participant)
+ mAddress = imdn->getParticipant()->getAddress()->clone();
}
// -----------------------------------------------------------------------------
diff --git a/linphone-app/src/utils/Utils.cpp b/linphone-app/src/utils/Utils.cpp
index c91345bc8..a03e4ddee 100644
--- a/linphone-app/src/utils/Utils.cpp
+++ b/linphone-app/src/utils/Utils.cpp
@@ -461,15 +461,17 @@ void Utils::copyDir(QString from, QString to) {
}
QString Utils::getDisplayName(const std::shared_ptr& address){
- QString qtAddress = Utils::coreStringToAppString(address->asString());
QString displayName;
- ContactModel * model = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(qtAddress);
- if(model && model->getVcardModel())
- displayName = model->getVcardModel()->getUsername();
- else{
- displayName = Utils::coreStringToAppString(address->getDisplayName());
- if(displayName == "")
- displayName = Utils::coreStringToAppString(address->getUsername());
+ if(address){
+ QString qtAddress = Utils::coreStringToAppString(address->asString());
+ ContactModel * model = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(qtAddress);
+ if(model && model->getVcardModel())
+ displayName = model->getVcardModel()->getUsername();
+ else{
+ displayName = Utils::coreStringToAppString(address->getDisplayName());
+ if(displayName == "")
+ displayName = Utils::coreStringToAppString(address->getUsername());
+ }
}
return displayName;
}
diff --git a/linphone-app/ui/modules/Linphone/Chat/OutgoingMessage.qml b/linphone-app/ui/modules/Linphone/Chat/OutgoingMessage.qml
index 134ba09ed..b806a7875 100644
--- a/linphone-app/ui/modules/Linphone/Chat/OutgoingMessage.qml
+++ b/linphone-app/ui/modules/Linphone/Chat/OutgoingMessage.qml
@@ -45,7 +45,7 @@ Item {
icon: isError
? 'chat_error'
- : (isRead ? 'chat_read' : (isDelivered ? 'chat_delivered' : ''))
+ : (isRead ? 'chat_read' : isDelivered ? 'chat_delivered' : '')
iconSize: ChatStyle.entry.message.outgoing.sendIconSize
MouseArea {