fix paused status local conf

This commit is contained in:
Gaelle Braud 2026-02-27 12:16:00 +01:00
parent 7e28a78ee8
commit 361c6d7ce1
8 changed files with 124 additions and 73 deletions

View file

@ -271,6 +271,7 @@ void CallCore::setSelf(QSharedPointer<CallCore> me) {
});
mCallModelConnection->invokeToCore([this, state, message]() { setState(LinphoneEnums::fromLinphone(state)); });
});
mCallModelConnection->makeConnectToModel(&CallModel::statusChanged, [this](linphone::Call::Status status) {
mCallModelConnection->invokeToCore([this, status]() { setStatus(LinphoneEnums::fromLinphone(status)); });
});
@ -601,9 +602,13 @@ QSharedPointer<ConferenceCore> CallCore::getConferenceCore() const {
void CallCore::setConference(const QSharedPointer<ConferenceCore> &conference) {
mustBeInMainThread(log().arg(Q_FUNC_INFO));
if (mConference) disconnect(mConference.get(), &ConferenceCore::isMePausedChanged, this, nullptr);
if (mConference != conference) {
mConference = conference;
lDebug() << "[CallCore] Set conference : " << mConference;
if (mConference)
connect(mConference.get(), &ConferenceCore::isMePausedChanged, this,
[this] { setPaused(mConference->getIsMePaused()); });
setIsConference(conference != nullptr);
emit conferenceChanged();
}

View file

@ -50,10 +50,26 @@ ConferenceCore::ConferenceCore(const std::shared_ptr<linphone::Conference> &conf
auto me = conference->getMe();
if (me) {
mMe = ParticipantCore::create(me);
auto meDevices = me->getDevices();
for (auto &device : meDevices) {
auto deviceCore = ParticipantDeviceCore::create(device);
if (deviceCore) {
mMeDevices.append(deviceCore);
connect(deviceCore.get(), &ParticipantDeviceCore::stateChanged, this, [this, deviceCore] {
auto state = deviceCore->getState();
lInfo() << "me state changed, paused ="
<< (state == LinphoneEnums::ParticipantDeviceState::Left ||
state == LinphoneEnums::ParticipantDeviceState::OnHold);
setIsMePaused(state == LinphoneEnums::ParticipantDeviceState::Left ||
state == LinphoneEnums::ParticipantDeviceState::OnHold);
});
}
}
}
}
ConferenceCore::~ConferenceCore() {
mustBeInMainThread("~" + getClassName());
mMeDevices.clear();
if (mConferenceModel) emit mConferenceModel->removeListener();
}
@ -217,3 +233,14 @@ void ConferenceCore::setActiveSpeakerDevice(const QSharedPointer<ParticipantDevi
emit activeSpeakerDeviceChanged();
}
}
bool ConferenceCore::getIsMePaused() const {
return mIsMePaused;
}
void ConferenceCore::setIsMePaused(bool paused) {
if (mIsMePaused != paused) {
mIsMePaused = paused;
emit isMePausedChanged();
}
}

View file

@ -80,6 +80,9 @@ public:
void setIsLocalScreenSharing(bool state);
void setIsScreenSharingEnabled(bool state);
bool getIsMePaused() const;
void setIsMePaused(bool paused);
std::shared_ptr<ConferenceModel> getModel() const;
//---------------------------------------------------------------------------
@ -92,6 +95,7 @@ signals:
void activeSpeakerDeviceChanged();
void subjectChanged();
void isRecordingChanged();
void isMePausedChanged();
void lToggleScreenSharing();
@ -100,12 +104,14 @@ private:
std::shared_ptr<ConferenceModel> mConferenceModel;
QSharedPointer<ParticipantDeviceCore> mActiveSpeakerDevice;
QSharedPointer<ParticipantCore> mMe;
QList<QSharedPointer<ParticipantDeviceCore>> mMeDevices;
int mParticipantDeviceCount = 0;
bool mIsReady = false;
bool mIsRecording = false;
bool mIsLocalScreenSharing = false;
bool mIsScreenSharingEnabled = false;
bool mIsMePaused = false;
QString mSubject;
QDateTime mStartDate = QDateTime::currentDateTime();

View file

@ -659,64 +659,64 @@
<translation>Die Aufnahme wurde in der folgenden Datei gespeichert: %1</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="393"/>
<location filename="../../core/call/CallCore.cpp" line="418"/>
<location filename="../../core/call/CallCore.cpp" line="394"/>
<location filename="../../core/call/CallCore.cpp" line="419"/>
<source>call_stats_codec_label</source>
<extracomment>&quot;Codec: %1 / %2 kHz&quot;</extracomment>
<translation>Codec: %1 / %2 kHz</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="397"/>
<location filename="../../core/call/CallCore.cpp" line="421"/>
<location filename="../../core/call/CallCore.cpp" line="398"/>
<location filename="../../core/call/CallCore.cpp" line="422"/>
<source>call_stats_bandwidth_label</source>
<extracomment>&quot;Bande passante : %1 %2 kbits/s %3 %4 kbits/s&quot;</extracomment>
<translation>Bandbreite: %1 %2 kbits/s %3 %4 kbits/s</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="403"/>
<location filename="../../core/call/CallCore.cpp" line="426"/>
<location filename="../../core/call/CallCore.cpp" line="404"/>
<location filename="../../core/call/CallCore.cpp" line="427"/>
<source>call_stats_loss_rate_label</source>
<extracomment>&quot;Taux de perte: %1% %2%&quot;</extracomment>
<translation>Verlustquote: %1% %2%</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="408"/>
<location filename="../../core/call/CallCore.cpp" line="409"/>
<source>call_stats_jitter_buffer_label</source>
<extracomment>&quot;Tampon de gigue: %1 ms&quot;</extracomment>
<translation>Jitter-Puffer: %1 ms</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="435"/>
<location filename="../../core/call/CallCore.cpp" line="436"/>
<source>call_stats_resolution_label</source>
<extracomment>&quot;Définition vidéo : %1 %2 %3 %4&quot;</extracomment>
<translation>Videoauflösung: %1 %2 %3 %4</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="441"/>
<location filename="../../core/call/CallCore.cpp" line="442"/>
<source>call_stats_fps_label</source>
<extracomment>&quot;FPS : %1 %2 %3 %4&quot;</extracomment>
<translation>FPS : %1 %2 %3 %4</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="654"/>
<location filename="../../core/call/CallCore.cpp" line="659"/>
<source>media_encryption_dtls</source>
<extracomment>DTLS</extracomment>
<translation>DTLS</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="657"/>
<location filename="../../core/call/CallCore.cpp" line="662"/>
<source>media_encryption_none</source>
<extracomment>None</extracomment>
<translation>Keine</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="660"/>
<location filename="../../core/call/CallCore.cpp" line="665"/>
<source>media_encryption_srtp</source>
<extracomment>SRTP</extracomment>
<translation>SRTP</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="663"/>
<location filename="../../core/call/CallCore.cpp" line="668"/>
<source>media_encryption_post_quantum</source>
<extracomment>&quot;ZRTP - Post quantique&quot;</extracomment>
<translation>Post-quantum ZRTP</translation>
@ -847,43 +847,43 @@
<context>
<name>CallModel</name>
<message>
<location filename="../../model/call/CallModel.cpp" line="346"/>
<location filename="../../model/call/CallModel.cpp" line="356"/>
<source>call_error_user_declined_toast</source>
<extracomment>&quot;Le correspondant a décliné l&apos;appel&quot;</extracomment>
<translation>Der Benutzer hat den Anruf abgelehnt</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="350"/>
<location filename="../../model/call/CallModel.cpp" line="360"/>
<source>call_error_user_not_found_toast</source>
<extracomment>&quot;Le correspondant n&apos;a pas é trouvé&quot;</extracomment>
<translation>Benutzer nicht gefunden</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="354"/>
<location filename="../../model/call/CallModel.cpp" line="364"/>
<source>call_error_user_busy_toast</source>
<extracomment>&quot;Le correspondant est occupé&quot;</extracomment>
<translation>Der Benutzer ist beschäftigt</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="358"/>
<location filename="../../model/call/CallModel.cpp" line="368"/>
<source>call_error_incompatible_media_params_toast</source>
<extracomment>&quot;Le correspondant ne peut accepter votre appel.&quot;</extracomment>
<translation>Der Benutzer kann Ihren Anruf nicht annehmen</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="362"/>
<location filename="../../model/call/CallModel.cpp" line="372"/>
<source>call_error_io_error_toast</source>
<extracomment>&quot;Service indisponible ou erreur réseau&quot;</extracomment>
<translation>Dienst nicht verfügbar oder Netzwerkfehler</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="366"/>
<location filename="../../model/call/CallModel.cpp" line="376"/>
<source>call_error_temporarily_unavailable_toast</source>
<extracomment>&quot;Temporairement indisponible&quot;</extracomment>
<translation>Vorübergehend nicht verfügbar</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="370"/>
<location filename="../../model/call/CallModel.cpp" line="380"/>
<source>call_error_server_timeout_toast</source>
<extracomment>&quot;Délai d&apos;attente du serveur dépassé&quot;</extracomment>
<translation>Server-Zeitüberschreitung</translation>

View file

@ -659,64 +659,64 @@
<translation>Recording has been saved in file : %1</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="393"/>
<location filename="../../core/call/CallCore.cpp" line="418"/>
<location filename="../../core/call/CallCore.cpp" line="394"/>
<location filename="../../core/call/CallCore.cpp" line="419"/>
<source>call_stats_codec_label</source>
<extracomment>&quot;Codec: %1 / %2 kHz&quot;</extracomment>
<translation>Codec: %1 / %2 kHz</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="397"/>
<location filename="../../core/call/CallCore.cpp" line="421"/>
<location filename="../../core/call/CallCore.cpp" line="398"/>
<location filename="../../core/call/CallCore.cpp" line="422"/>
<source>call_stats_bandwidth_label</source>
<extracomment>&quot;Bande passante : %1 %2 kbits/s %3 %4 kbits/s&quot;</extracomment>
<translation>Bandwidth : %1 %2 kbits/s %3 %4 kbits/s</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="403"/>
<location filename="../../core/call/CallCore.cpp" line="426"/>
<location filename="../../core/call/CallCore.cpp" line="404"/>
<location filename="../../core/call/CallCore.cpp" line="427"/>
<source>call_stats_loss_rate_label</source>
<extracomment>&quot;Taux de perte: %1% %2%&quot;</extracomment>
<translation>Loss rate: %1% %2%</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="408"/>
<location filename="../../core/call/CallCore.cpp" line="409"/>
<source>call_stats_jitter_buffer_label</source>
<extracomment>&quot;Tampon de gigue: %1 ms&quot;</extracomment>
<translation>Jitter buffer : %1 ms</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="435"/>
<location filename="../../core/call/CallCore.cpp" line="436"/>
<source>call_stats_resolution_label</source>
<extracomment>&quot;Définition vidéo : %1 %2 %3 %4&quot;</extracomment>
<translation>Video resolution: %1 %2 %3 %4</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="441"/>
<location filename="../../core/call/CallCore.cpp" line="442"/>
<source>call_stats_fps_label</source>
<extracomment>&quot;FPS : %1 %2 %3 %4&quot;</extracomment>
<translation>FPS : %1 %2 %3 %4</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="654"/>
<location filename="../../core/call/CallCore.cpp" line="659"/>
<source>media_encryption_dtls</source>
<extracomment>DTLS</extracomment>
<translation>DTLS</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="657"/>
<location filename="../../core/call/CallCore.cpp" line="662"/>
<source>media_encryption_none</source>
<extracomment>None</extracomment>
<translation>None</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="660"/>
<location filename="../../core/call/CallCore.cpp" line="665"/>
<source>media_encryption_srtp</source>
<extracomment>SRTP</extracomment>
<translation>SRTP</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="663"/>
<location filename="../../core/call/CallCore.cpp" line="668"/>
<source>media_encryption_post_quantum</source>
<extracomment>&quot;ZRTP - Post quantique&quot;</extracomment>
<translation>Post quantum ZRTP</translation>
@ -847,43 +847,43 @@
<context>
<name>CallModel</name>
<message>
<location filename="../../model/call/CallModel.cpp" line="346"/>
<location filename="../../model/call/CallModel.cpp" line="356"/>
<source>call_error_user_declined_toast</source>
<extracomment>&quot;Le correspondant a décliné l&apos;appel&quot;</extracomment>
<translation>User declined the call</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="350"/>
<location filename="../../model/call/CallModel.cpp" line="360"/>
<source>call_error_user_not_found_toast</source>
<extracomment>&quot;Le correspondant n&apos;a pas é trouvé&quot;</extracomment>
<translation>User was not found</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="354"/>
<location filename="../../model/call/CallModel.cpp" line="364"/>
<source>call_error_user_busy_toast</source>
<extracomment>&quot;Le correspondant est occupé&quot;</extracomment>
<translation>User is busy</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="358"/>
<location filename="../../model/call/CallModel.cpp" line="368"/>
<source>call_error_incompatible_media_params_toast</source>
<extracomment>&quot;Le correspondant ne peut accepter votre appel.&quot;</extracomment>
<translation>User can&apos;t accept your call</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="362"/>
<location filename="../../model/call/CallModel.cpp" line="372"/>
<source>call_error_io_error_toast</source>
<extracomment>&quot;Service indisponible ou erreur réseau&quot;</extracomment>
<translation>Unavailable service or network error</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="366"/>
<location filename="../../model/call/CallModel.cpp" line="376"/>
<source>call_error_temporarily_unavailable_toast</source>
<extracomment>&quot;Temporairement indisponible&quot;</extracomment>
<translation>temporarily unavailable</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="370"/>
<location filename="../../model/call/CallModel.cpp" line="380"/>
<source>call_error_server_timeout_toast</source>
<extracomment>&quot;Délai d&apos;attente du serveur dépassé&quot;</extracomment>
<translation>Server tiemout</translation>

View file

@ -659,64 +659,64 @@
<translation>L&apos;appel a é enregistré dans le fichier : %1</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="393"/>
<location filename="../../core/call/CallCore.cpp" line="418"/>
<location filename="../../core/call/CallCore.cpp" line="394"/>
<location filename="../../core/call/CallCore.cpp" line="419"/>
<source>call_stats_codec_label</source>
<extracomment>&quot;Codec: %1 / %2 kHz&quot;</extracomment>
<translation>Codec: %1 / %2 kHz</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="397"/>
<location filename="../../core/call/CallCore.cpp" line="421"/>
<location filename="../../core/call/CallCore.cpp" line="398"/>
<location filename="../../core/call/CallCore.cpp" line="422"/>
<source>call_stats_bandwidth_label</source>
<extracomment>&quot;Bande passante : %1 %2 kbits/s %3 %4 kbits/s&quot;</extracomment>
<translation>Bande passante : %1 %2 kbits/s %3 %4 kbits/s</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="403"/>
<location filename="../../core/call/CallCore.cpp" line="426"/>
<location filename="../../core/call/CallCore.cpp" line="404"/>
<location filename="../../core/call/CallCore.cpp" line="427"/>
<source>call_stats_loss_rate_label</source>
<extracomment>&quot;Taux de perte: %1% %2%&quot;</extracomment>
<translation>Taux de perte: %1% %2%</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="408"/>
<location filename="../../core/call/CallCore.cpp" line="409"/>
<source>call_stats_jitter_buffer_label</source>
<extracomment>&quot;Tampon de gigue: %1 ms&quot;</extracomment>
<translation>Tampon de gigue: %1 ms</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="435"/>
<location filename="../../core/call/CallCore.cpp" line="436"/>
<source>call_stats_resolution_label</source>
<extracomment>&quot;Définition vidéo : %1 %2 %3 %4&quot;</extracomment>
<translation>Définition vidéo : %1 %2 %3 %4</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="441"/>
<location filename="../../core/call/CallCore.cpp" line="442"/>
<source>call_stats_fps_label</source>
<extracomment>&quot;FPS : %1 %2 %3 %4&quot;</extracomment>
<translation>FPS : %1 %2 %3 %4</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="654"/>
<location filename="../../core/call/CallCore.cpp" line="659"/>
<source>media_encryption_dtls</source>
<extracomment>DTLS</extracomment>
<translation>DTLS</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="657"/>
<location filename="../../core/call/CallCore.cpp" line="662"/>
<source>media_encryption_none</source>
<extracomment>None</extracomment>
<translation>None</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="660"/>
<location filename="../../core/call/CallCore.cpp" line="665"/>
<source>media_encryption_srtp</source>
<extracomment>SRTP</extracomment>
<translation>SRTP</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="663"/>
<location filename="../../core/call/CallCore.cpp" line="668"/>
<source>media_encryption_post_quantum</source>
<extracomment>&quot;ZRTP - Post quantique&quot;</extracomment>
<translation>ZRTP - Post quantique</translation>
@ -847,43 +847,43 @@
<context>
<name>CallModel</name>
<message>
<location filename="../../model/call/CallModel.cpp" line="346"/>
<location filename="../../model/call/CallModel.cpp" line="356"/>
<source>call_error_user_declined_toast</source>
<extracomment>&quot;Le correspondant a décliné l&apos;appel&quot;</extracomment>
<translation>Le correspondant a décliné l&apos;appel</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="350"/>
<location filename="../../model/call/CallModel.cpp" line="360"/>
<source>call_error_user_not_found_toast</source>
<extracomment>&quot;Le correspondant n&apos;a pas é trouvé&quot;</extracomment>
<translation>Le correspondant n&apos;a pas é trouvé</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="354"/>
<location filename="../../model/call/CallModel.cpp" line="364"/>
<source>call_error_user_busy_toast</source>
<extracomment>&quot;Le correspondant est occupé&quot;</extracomment>
<translation>Le correspondant est occupé</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="358"/>
<location filename="../../model/call/CallModel.cpp" line="368"/>
<source>call_error_incompatible_media_params_toast</source>
<extracomment>&quot;Le correspondant ne peut accepter votre appel.&quot;</extracomment>
<translation>Le correspondant ne peut accepter votre appel</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="362"/>
<location filename="../../model/call/CallModel.cpp" line="372"/>
<source>call_error_io_error_toast</source>
<extracomment>&quot;Service indisponible ou erreur réseau&quot;</extracomment>
<translation>Service indisponible ou erreur réseau</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="366"/>
<location filename="../../model/call/CallModel.cpp" line="376"/>
<source>call_error_temporarily_unavailable_toast</source>
<extracomment>&quot;Temporairement indisponible&quot;</extracomment>
<translation>Temporairement indisponible</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="370"/>
<location filename="../../model/call/CallModel.cpp" line="380"/>
<source>call_error_server_timeout_toast</source>
<extracomment>&quot;Délai d&apos;attente du serveur dépassé&quot;</extracomment>
<translation>Délai d&apos;attente du serveur dépassé</translation>

View file

@ -86,17 +86,27 @@ void CallModel::terminate() {
void CallModel::setPaused(bool paused) {
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
if (paused) {
lInfo() << "Pausing call"
<< (mMonitor->getRemoteAddress() ? mMonitor->getRemoteAddress()->asStringUriOnly()
: "no remote address");
if (mMonitor->getConference()) {
lInfo() << "Leaving conference"
<< (mMonitor->getRemoteAddress() ? mMonitor->getRemoteAddress()->asStringUriOnly() : "no address");
mMonitor->getConference()->leave();
} else {
lInfo() << "Pausing call"
<< (mMonitor->getRemoteAddress() ? mMonitor->getRemoteAddress()->asStringUriOnly()
: "no remote address");
mMonitor->pause();
}
} else {
if (mMonitor->getConference()) mMonitor->getConference()->enter();
mMonitor->resume();
if (mMonitor->getConference()) {
lInfo() << "Entering conference"
<< (mMonitor->getRemoteAddress() ? mMonitor->getRemoteAddress()->asStringUriOnly() : "no address");
mMonitor->getConference()->enter();
} else {
lInfo() << "Resuming call"
<< (mMonitor->getRemoteAddress() ? mMonitor->getRemoteAddress()->asStringUriOnly()
: "no remote address");
mMonitor->resume();
}
}
}

View file

@ -22,7 +22,8 @@ Item {
: ""
// currently speaking address (for hiding in list view)
property string activeSpeakerAddress
property string activeSpeakerAddress: activeSpeakerSticker.remoteAddress
onActiveSpeakerAddressChanged: console.log("active speaker address changed", activeSpeakerAddress)
property ParticipantDeviceProxy participantDevices : ParticipantDeviceProxy {
id: allDevices
@ -43,17 +44,19 @@ Item {
call: mainItem.call
displayAll: !mainItem.conference
participantDevice: mainItem.conference && mainItem.conference.core.activeSpeakerDevice
useUniqueAddress: true
property var address: participantDevice && participantDevice.core.address
videoEnabled: (participantDevice && participantDevice.core.videoEnabled) || (!participantDevice && call && call.core.remoteVideoEnabled)
qmlName: 'AS'
securityBreach: !mainItem.conference && mainItem.call?.core.isMismatch || false
displayPresence: false
Binding {
target: mainItem
property: "activeSpeakerAddress"
value: activeSpeakerSticker.address
when: true
}
onAddressChanged: console.log("active speaker adress changed ==================", address)
// Binding {
// target: mainItem
// property: "activeSpeakerAddress"
// value: activeSpeakerSticker.address
// when: true
// }
}
ListView{
id: sideStickers
@ -68,7 +71,7 @@ Item {
clip: true
delegate: Item{ // Spacing workaround
visible: $modelData && mainItem.callState != LinphoneEnums.CallState.End && mainItem.callState != LinphoneEnums.CallState.Released
&& ($modelData.core.address != activeSpeakerAddress || mainItem.conference?.core.isScreenSharingEnabled) || false
&& ($modelData.core.address != mainItem.activeSpeakerAddress || mainItem.conference?.core.isScreenSharingEnabled) || false
height: visible ? Math.round((180 + 15) * DefaultStyle.dp) : 0
width: Math.round(300 * DefaultStyle.dp)
Sticker {