Add support for FILE_PROVIDER_DOMAIN_SYNC_STATE_CHANGE socket messages in client...
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 16 Jul 2024 10:57:52 +0000 (18:57 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 23 Jul 2024 06:06:28 +0000 (14:06 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/macOS/fileprovidersocketcontroller.cpp
src/gui/macOS/fileprovidersocketcontroller.h

index 0b34a9962ad611f9c74c71054b65bba20139c9f3..4faf1404400f0abdb807a2a830f0340f0e3ca177 100644 (file)
@@ -89,6 +89,9 @@ void FileProviderSocketController::parseReceivedLine(const QString &receivedLine
         _accountState = FileProviderDomainManager::accountStateFromFileProviderDomainIdentifier(argument);
         sendAccountDetails();
         return;
+    } else if (command == "FILE_PROVIDER_DOMAIN_SYNC_STATE_CHANGE") {
+        reportSyncState(argument);
+        return;
     }
 
     qCWarning(lcFileProviderSocketController) << "Unknown command or reply:" << receivedLine;
@@ -216,6 +219,24 @@ void FileProviderSocketController::sendAccountDetails() const
     sendMessage(message);
 }
 
-}
+void FileProviderSocketController::reportSyncState(const QString &receivedState) const
+{
+    auto syncState = SyncResult::Status::Undefined;
+    if (receivedState == QStringLiteral("SYNC_STARTED")) {
+        syncState = SyncResult::Status::SyncRunning;
+    } else if (receivedState == QStringLiteral("SYNC_FINISHED")) {
+        syncState = SyncResult::Status::Success;
+    } else if (receivedState == QStringLiteral("SYNC_FAILED")) {
+        syncState = SyncResult::Status::Problem;
+    } else if (receivedState == QStringLiteral("SYNC_PAUSED")) {
+        syncState = SyncResult::Status::Paused;
+    } else {
+        qCWarning(lcFileProviderSocketController) << "Unknown sync state received:" << receivedState;
+    }
 
+    emit syncStateChanged(_accountState->account(), syncState);
 }
+
+} // namespace Mac
+
+} // namespace OCC
index ca7c35334323750fcffe9c1406f5b4c80ce2c2a4..0906216b66b3370d3f7673963b448800874680b9 100644 (file)
@@ -16,7 +16,8 @@
 
 #include <QPointer>
 
-#include "accountstate.h"
+#include "gui/accountstate.h"
+#include "libsync/syncresult.h"
 
 class QLocalSocket;
 
@@ -32,7 +33,8 @@ public:
     explicit FileProviderSocketController(QLocalSocket * const socket, QObject * const parent = nullptr);
 
 signals:
-    void socketDestroyed(const QLocalSocket * const socket);
+    void socketDestroyed(const QLocalSocket * const socket);signals:
+    void syncStateChanged(const AccountPtr &account, SyncResult::Status state) const;
 
 public slots:
     void sendMessage(const QString &message) const;
@@ -50,6 +52,8 @@ private slots:
     void sendAccountDetails() const;
     void sendNotAuthenticated() const;
 
+    void reportSyncState(const QString &receivedState) const;
+
 private:
     QPointer<QLocalSocket> _socket;
     AccountStatePtr _accountState;