Publish presence indicator synchronized on default account.

On account update, send in queue the publishChanged event to let time for SDK to make update consolidated presence.
Add missing offline status.
This commit is contained in:
Julien Wadel 2025-08-28 11:50:40 +02:00
parent 1ca851ab7d
commit ac41881e11
3 changed files with 6 additions and 3 deletions

View file

@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Avoid to register the account while activating it.
- Volumes settings based on hardware volumes. Remove software gains.
- Display call duration instead of conference duration.
- Publish presence indicator synchronized on default account.
### Added
- Screen Sharing in conference calls

View file

@ -37,7 +37,7 @@ OwnPresenceModel::OwnPresenceModel (QObject *parent) : QObject(parent) {
Presence::PresenceStatus status = static_cast<Presence::PresenceStatus>(CoreManager::getInstance()->getCore()->getConsolidatedPresence());
emit presenceStatusChanged(status);
emit presenceLevelChanged(Presence::getPresenceLevel(status));
});
}, Qt::QueuedConnection);
}
Presence::PresenceLevel OwnPresenceModel::getPresenceLevel () const {
@ -75,7 +75,7 @@ QVariantList OwnPresenceModel::getStatuses () const {
addBuildStatus(statuses, Presence::Online);
addBuildStatus(statuses, Presence::Busy);
//addBuildStatus(statuses, Presence::DoNotDisturb); // Do not propose this status as it is not fully supported
//addBuildStatus(statuses, Presence::Offline); // Do not propose this status as it is not fully supported
addBuildStatus(statuses, Presence::Offline);
return statuses;
}

View file

@ -76,6 +76,8 @@ AccountSettingsModel::AccountSettingsModel (QObject *parent) : QObject(parent) {
QObject::connect(this, &AccountSettingsModel::accountSettingsUpdated, this, &AccountSettingsModel::accountsChanged);
QObject::connect(this, &AccountSettingsModel::accountsChanged, this, &AccountSettingsModel::missedCallsCountChanged);
QObject::connect(this, &AccountSettingsModel::accountsChanged, this, &AccountSettingsModel::unreadMessagesCountChanged);
QObject::connect(this, &AccountSettingsModel::defaultAccountChanged, this, &AccountSettingsModel::publishPresenceChanged);
mSelectedAccount = coreManager->getCore()->getDefaultAccount();
}
@ -425,7 +427,7 @@ bool AccountSettingsModel::addOrUpdateAccount(
newPublishPresence = accountParams->publishEnabled() != data["publishPresence"].toBool();
accountParams->enablePublish(data["publishPresence"].toBool());
}else
newPublishPresence = accountParams->publishEnabled();
newPublishPresence = true;
if(data.contains("avpfEnabled"))
accountParams->setAvpfMode(data["avpfEnabled"].toBool()
? linphone::AVPFMode::Enabled