Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>2020-01-03 15:09:29 +0300
committerDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>2020-01-03 15:09:29 +0300
commitb32310b8a6b298e7bc96df14205e00d8bd1f8c00 (patch)
tree443eb2248f892062f2df438934af5c4ce9c7b859 /src/gui/accountstate.cpp
parent556a1a5ef2b132e39bd199b96040f41e84286928 (diff)
Gigantic ton of changes and deletions: ActivityListModel, tray GUI, Account logic.
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Diffstat (limited to 'src/gui/accountstate.cpp')
-rw-r--r--src/gui/accountstate.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/gui/accountstate.cpp b/src/gui/accountstate.cpp
index 7893a7a3b..9d2fa1830 100644
--- a/src/gui/accountstate.cpp
+++ b/src/gui/accountstate.cpp
@@ -74,6 +74,11 @@ AccountPtr AccountState::account() const
return _account;
}
+bool AccountState::hasTalk() const
+{
+ return _hasTalk;
+}
+
AccountState::ConnectionStatus AccountState::connectionStatus() const
{
return _connectionStatus;
@@ -89,6 +94,23 @@ AccountState::State AccountState::state() const
return _state;
}
+void AccountState::setTalkCapability()
+{
+ QNetworkAccessManager *manager = new QNetworkAccessManager(this);
+ connect(manager, &QNetworkAccessManager::finished,
+ this, [=](QNetworkReply *reply) {
+ if (reply->error()) {
+ return;
+ }
+ //TODO: This is **** dirty, but atm I don't see a capability-way to determine talk integration
+ _hasTalk = (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 303) ? true : false;
+ });
+ QNetworkRequest request;
+ QString url = this->account()->url().toString() + "/apps/spreed";
+ request.setUrl(QUrl(url));
+ manager->get(request);
+}
+
void AccountState::setState(State state)
{
if (_state != state) {
@@ -267,7 +289,7 @@ void AccountState::slotConnectionValidatorResult(ConnectionValidator::Status sta
// Come online gradually from 503 or maintenance mode
if (status == ConnectionValidator::Connected
&& (_connectionStatus == ConnectionValidator::ServiceUnavailable
- || _connectionStatus == ConnectionValidator::MaintenanceMode)) {
+ || _connectionStatus == ConnectionValidator::MaintenanceMode)) {
if (!_timeSinceMaintenanceOver.isValid()) {
qCInfo(lcAccountState) << "AccountState reconnection: delaying for"
<< _maintenanceToConnectedDelay << "ms";
@@ -293,6 +315,7 @@ void AccountState::slotConnectionValidatorResult(ConnectionValidator::Status sta
case ConnectionValidator::Connected:
if (_state != Connected) {
setState(Connected);
+ setTalkCapability();
}
break;
case ConnectionValidator::Undefined: