fix security circle avatar

This commit is contained in:
Gaelle Braud 2025-07-23 09:51:18 +02:00
parent 8391d438eb
commit aa871c2735
13 changed files with 37 additions and 5 deletions

View file

@ -425,6 +425,25 @@ VariantObject *Utils::findFriendByAddress(const QString &address) {
return data;
}
VariantObject *Utils::getFriendSecurityLevel(const QString &address) {
VariantObject *data = new VariantObject("getFriendAddressSecurityLevel");
if (!data) return nullptr;
data->makeRequest([address]() {
auto defaultFriendList = ToolModel::getAppFriendList();
if (!defaultFriendList) return QVariant();
auto linphoneAddr = ToolModel::interpretUrl(address);
auto linFriend = CoreModel::getInstance()->getCore()->findFriend(linphoneAddr);
if (!linFriend) return QVariant();
auto linAddr = ToolModel::interpretUrl(address);
if (!linAddr) return QVariant();
auto devices = linFriend->getDevicesForAddress(linphoneAddr);
int verified = 0;
return QVariant::fromValue(LinphoneEnums::fromLinphone(linFriend->getSecurityLevel()));
});
data->requestValue();
return data;
}
VariantObject *Utils::getFriendAddressSecurityLevel(const QString &address) {
VariantObject *data = new VariantObject("getFriendAddressSecurityLevel");
if (!data) return nullptr;
@ -1440,7 +1459,7 @@ QList<QVariant> Utils::append(const QList<QVariant> a, const QList<QVariant> b)
QString Utils::getAddressToDisplay(QVariantList addressList, QString filter, QString defaultAddress) {
if (filter.isEmpty()) return defaultAddress;
for (auto& item: addressList) {
for (auto &item : addressList) {
QString address = item.toMap()["address"].toString();
if (address.contains(filter)) return address;
}

View file

@ -127,6 +127,7 @@ public:
Q_INVOKABLE static VariantObject *findAvatarByAddress(const QString &address);
Q_INVOKABLE static VariantObject *findFriendByAddress(const QString &address);
Q_INVOKABLE static VariantObject *getFriendAddressSecurityLevel(const QString &address);
Q_INVOKABLE static VariantObject *getFriendSecurityLevel(const QString &address);
static QString generateSavedFilename(const QString &from, const QString &to);
Q_INVOKABLE static VariantObject *isMe(const QString &address);
Q_INVOKABLE static VariantObject *isLocal(const QString &address);

View file

@ -32,6 +32,7 @@ ListView {
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
_address: modelData.core.remoteAddress
secured: securityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified
isConference: modelData.core.isConference
shadowEnabled: false
}

View file

@ -40,6 +40,11 @@ Loader{
: computedAvatarUri.length != 0
property var avatarObj: UtilsCpp.findAvatarByAddress(_address)
property string computedAvatarUri: avatarObj ? avatarObj.value : ''
// To get the secured property for a friend using an address to find it,
// override it as secured: friendSecurityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified
property var friendSecurityLevelObj: UtilsCpp.getFriendSecurityLevel(_address)
property var friendSecurityLevel: friendSecurityLevelObj ? securityLevelObj.value : LinphoneEnums.SecurityLevel.None
// To get the secured property for a specific address,
// override it as secured: securityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified

View file

@ -34,8 +34,7 @@ FocusScope {
property real itemsRightMargin: Math.round(39 * DefaultStyle.dp)
property var displayName: searchResultItem.core.fullName
property string initial: displayName ? displayName[0].toLocaleLowerCase(
ConstantsCpp.DefaultLocale) : ''
property var initial: displayName ? displayName[0].toLocaleLowerCase(ConstantsCpp.DefaultLocale) : ''
signal clicked(var mouse)
signal contactDeletionRequested(FriendGui contact)
@ -50,7 +49,7 @@ FocusScope {
verticalAlignment: Text.AlignVCenter
width: Math.round(20 * DefaultStyle.dp)
opacity: previousInitial != mainItem.initial ? 1 : 0
text: mainItem.initial
text: mainItem.initial || ""
color: DefaultStyle.main2_400
font {
pixelSize: Math.round(20 * DefaultStyle.dp)

View file

@ -47,6 +47,7 @@ ListView {
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
_address: modelData.core.address
secured: securityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified
shadowEnabled: false
}
Text {

View file

@ -52,6 +52,7 @@ ListView {
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
_address: modelData.core.sipAddress
secured: friendSecurityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified
shadowEnabled: false
}
Text {

View file

@ -111,6 +111,7 @@ Item {
call: !mainItem.previewEnabled ? mainItem.call : null
displayNameVal: mainItem.displayName
securityBreach: mainItem.securityBreach ? mainItem.securityBreach : securityLevel === LinphoneEnums.SecurityLevel.Unsafe
secured: securityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified
}
ColumnLayout{
id: joiningView

View file

@ -10,7 +10,6 @@ Quick.Text {
family: DefaultStyle.defaultFont
pixelSize: Math.round(10 * DefaultStyle.dp)
weight: Typography.p1.weight
bold: true
}
color: DefaultStyle.main2_600
wrapMode: Quick.Text.Wrap

View file

@ -66,6 +66,7 @@ Notification {
Layout.preferredHeight: Math.round(60 * DefaultStyle.dp)
Layout.alignment: Qt.AlignHCenter
call: mainItem.call
secured: securityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified
isConference: mainItem.call && mainItem.call.core.isConference
}
ColumnLayout {

View file

@ -50,6 +50,7 @@ FocusScope{
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
_address: modelData
shadowEnabled: false
secured: friendSecurityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified
}
Text {
Layout.fillWidth: true

View file

@ -288,6 +288,7 @@ FocusScope {
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
_address: modelData.address
secured: friendSecurityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified
shadowEnabled: false
}
Text {

View file

@ -764,6 +764,7 @@ AbstractMainPage {
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
_address: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.organizerAddress : ""
secured: friendSecurityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified
}
Text {
text: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.organizerName : ""
@ -801,6 +802,7 @@ AbstractMainPage {
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
_address: modelData.address
secured: friendSecurityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified
shadowEnabled: false
}
Text {