aboutsummaryrefslogtreecommitdiff
path: root/backends/cloud
diff options
context:
space:
mode:
Diffstat (limited to 'backends/cloud')
-rw-r--r--backends/cloud/storage.cpp25
-rw-r--r--backends/cloud/storage.h8
2 files changed, 32 insertions, 1 deletions
diff --git a/backends/cloud/storage.cpp b/backends/cloud/storage.cpp
index c20ad865ad..d4548b84cb 100644
--- a/backends/cloud/storage.cpp
+++ b/backends/cloud/storage.cpp
@@ -128,7 +128,8 @@ SavesSyncRequest *Storage::syncSaves(BoolCallback callback, Networking::ErrorCal
_runningRequestsMutex.unlock();
return _savesSyncRequest;
}
- if (!errorCallback) errorCallback = getErrorPrintingCallback();
+ if (!callback) callback = new Common::Callback<Storage, BoolResponse>(this, &Storage::savesSyncDefaultCallback);
+ if (!errorCallback) errorCallback = new Common::Callback<Storage, Networking::ErrorResponse>(this, &Storage::savesSyncDefaultErrorCallback);
_savesSyncRequest = new SavesSyncRequest(this, callback, errorCallback);
_syncRestartRequestsed = false;
_runningRequestsMutex.unlock();
@@ -192,6 +193,28 @@ void Storage::setSyncTarget(GUI::CommandReceiver *target) {
_runningRequestsMutex.unlock();
}
+void Storage::savesSyncDefaultCallback(BoolResponse response) {
+ _runningRequestsMutex.lock();
+ _savesSyncRequest = nullptr;
+ _runningRequestsMutex.unlock();
+
+ if (!response.value) warning("SavesSyncRequest called success callback with `false` argument");
+ g_system->displayMessageOnOSD(_("Saves sync complete."));
+}
+
+void Storage::savesSyncDefaultErrorCallback(Networking::ErrorResponse error) {
+ _runningRequestsMutex.lock();
+ _savesSyncRequest = nullptr;
+ _runningRequestsMutex.unlock();
+
+ printErrorResponse(error);
+
+ if (error.interrupted)
+ g_system->displayMessageOnOSD(_("Saves sync was cancelled."));
+ else
+ g_system->displayMessageOnOSD(_("Saves sync failed.\nCheck your Internet connection."));
+}
+
///// DownloadFolderRequest-related /////
bool Storage::startDownload(Common::String remotePath, Common::String localPath) {
diff --git a/backends/cloud/storage.h b/backends/cloud/storage.h
index a577b3c468..b33d69e411 100644
--- a/backends/cloud/storage.h
+++ b/backends/cloud/storage.h
@@ -181,6 +181,14 @@ public:
/** Sets SavesSyncRequest's target to given CommandReceiver. */
virtual void setSyncTarget(GUI::CommandReceiver *target);
+protected:
+ /** Finishes the sync. Shows an OSD message. */
+ virtual void savesSyncDefaultCallback(BoolResponse response);
+
+ /** Finishes the sync. Shows an OSD message. */
+ virtual void savesSyncDefaultErrorCallback(Networking::ErrorResponse error);
+
+public:
///// DownloadFolderRequest-related /////
/** Starts a folder download. */