diff --git a/src/calladapter.cpp b/src/calladapter.cpp index 26ec8c09ffb3988c0db3a044b547c382794c001d..a7980fdff8ab1afc7d3089e134bbe933ac87ab32 100644 --- a/src/calladapter.cpp +++ b/src/calladapter.cpp @@ -150,7 +150,10 @@ CallAdapter::slotShowIncomingCallView(const QString &accountId, const conversati /* * Show incoming call page only. */ - emit showIncomingCallPage(accountId, convInfo.uid); + auto accountProperties = LRCInstance::accountModel().getAccountConfig(accountId); + if (!accountProperties.autoAnswer && !accountProperties.isRendezVous) { + emit showIncomingCallPage(accountId, convInfo.uid); + } return; } @@ -165,11 +168,7 @@ CallAdapter::slotShowIncomingCallView(const QString &accountId, const conversati } else { auto selectedAccountId = LRCInstance::getCurrentAccountInfo().id; auto accountProperties = LRCInstance::accountModel().getAccountConfig(selectedAccountId); - if (accountProperties.autoAnswer) { - /* - * TODO: Auto answer - */ - } else { + if (!accountProperties.autoAnswer && !accountProperties.isRendezVous) { emit showIncomingCallPage(accountId, convInfo.uid); } } diff --git a/src/settingsadaptor.cpp b/src/settingsadaptor.cpp index 471b25f59cc6749871b7861070d8b0deaf457ac0..f8aa28261c1d21fa620630319111d15827a528ef 100644 --- a/src/settingsadaptor.cpp +++ b/src/settingsadaptor.cpp @@ -380,6 +380,12 @@ SettingsAdaptor::getAccountConfig_DHT_PublicInCalls() return getAccountConfig().DHT.PublicInCalls; } +bool +SettingsAdaptor::getAccountConfig_RendezVous() +{ + return getAccountConfig().isRendezVous; +} + bool SettingsAdaptor::getAccountConfig_AutoAnswer() { @@ -656,6 +662,15 @@ SettingsAdaptor::setCallsUntrusted(bool state) LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps); } +void +SettingsAdaptor::setIsRendezVous(bool state) +{ + auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId()); + confProps.isRendezVous = state; + LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps); +} + + void SettingsAdaptor::setAutoAnswerCalls(bool state) { diff --git a/src/settingsadaptor.h b/src/settingsadaptor.h index eec7784d30e56d7e8b934c99c5b98e3187ac413c..38a655f54135121c15759f9db2067531faca0456 100644 --- a/src/settingsadaptor.h +++ b/src/settingsadaptor.h @@ -121,6 +121,7 @@ public: Q_INVOKABLE bool getAccountConfig_PeerDiscovery(); Q_INVOKABLE bool getAccountConfig_DHT_PublicInCalls(); + Q_INVOKABLE bool getAccountConfig_RendezVous(); Q_INVOKABLE bool getAccountConfig_AutoAnswer(); Q_INVOKABLE QString getAccountConfig_RingNS_Uri(); @@ -177,6 +178,7 @@ public: Q_INVOKABLE void setAutoConnectOnLocalNetwork(bool state); Q_INVOKABLE void setCallsUntrusted(bool state); + Q_INVOKABLE void setIsRendezVous(bool state); Q_INVOKABLE void setAutoAnswerCalls(bool state); Q_INVOKABLE void setEnableRingtone(bool state); Q_INVOKABLE void setEnableProxy(bool state); diff --git a/src/settingsview/components/AdvancedSettingsView.qml b/src/settingsview/components/AdvancedSettingsView.qml index 0510145d0bc1c1f54b602e6369330718e7011454..93beddbe3207e779bcf88b9d7b785661330b397e 100644 --- a/src/settingsview/components/AdvancedSettingsView.qml +++ b/src/settingsview/components/AdvancedSettingsView.qml @@ -34,6 +34,7 @@ ColumnLayout { //Call Settings checkAutoConnectOnLocalNetwork.checked = ClientWrapper.settingsAdaptor.getAccountConfig_PeerDiscovery() checkBoxUntrusted.checked = ClientWrapper.settingsAdaptor.getAccountConfig_DHT_PublicInCalls() + checkBoxRdv.checked = ClientWrapper.settingsAdaptor.getAccountConfig_RendezVous() checkBoxAutoAnswer.checked = ClientWrapper.settingsAdaptor.getAccountConfig_AutoAnswer() checkBoxCustomRingtone.checked = ClientWrapper.settingsAdaptor.getAccountConfig_Ringtone_RingtoneEnabled() @@ -380,6 +381,17 @@ ColumnLayout { } } } + + ToggleSwitch { + id: checkBoxRdv + + labelText: qsTr("(Experimental) Rendez-vous: turn your account into a conference room") + fontPointSize: 10 + + onSwitchToggled: { + ClientWrapper.settingsAdaptor.setIsRendezVous(checked) + } + } } }