mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-24 03:24:50 +00:00
CLOUD: Fix SavesSyncRequest to create saves folder
This commit is contained in:
parent
8cdde307f7
commit
06163cb8b9
@ -164,10 +164,37 @@ void SavesSyncRequest::directoryListedErrorCallback(Networking::ErrorResponse er
|
||||
return;
|
||||
}
|
||||
|
||||
//we're lucky - user just lacks his "/cloud/" folder
|
||||
//we're lucky - user just lacks his "/cloud/" folder - let's create one
|
||||
Common::String dir = _storage->savesDirectoryPath();
|
||||
if (dir.lastChar() == '/') dir.deleteLastChar();
|
||||
debug("creating %s", dir.c_str());
|
||||
_workingRequest = _storage->createDirectory(dir,
|
||||
new Common::Callback<SavesSyncRequest, Storage::BoolResponse>(this, &SavesSyncRequest::directoryCreatedCallback),
|
||||
new Common::Callback<SavesSyncRequest, Networking::ErrorResponse>(this, &SavesSyncRequest::directoryCreatedErrorCallback)
|
||||
);
|
||||
}
|
||||
|
||||
void SavesSyncRequest::directoryCreatedCallback(Storage::BoolResponse response) {
|
||||
_workingRequest = nullptr;
|
||||
if (_ignoreCallback) return;
|
||||
|
||||
//stop syncing if failed to create saves directory
|
||||
if (!response.value) {
|
||||
finishError(Networking::ErrorResponse(this, false, true, "", -1));
|
||||
return;
|
||||
}
|
||||
|
||||
//continue with empty files list
|
||||
Common::Array<StorageFile> files;
|
||||
directoryListedCallback(Storage::ListDirectoryResponse(error.request, files));
|
||||
//TODO: create it before uploading stuff
|
||||
directoryListedCallback(Storage::ListDirectoryResponse(response.request, files));
|
||||
}
|
||||
|
||||
void SavesSyncRequest::directoryCreatedErrorCallback(Networking::ErrorResponse error) {
|
||||
_workingRequest = nullptr;
|
||||
if (_ignoreCallback) return;
|
||||
|
||||
//stop syncing if failed to create saves directory
|
||||
finishError(error);
|
||||
}
|
||||
|
||||
void SavesSyncRequest::downloadNextFile() {
|
||||
|
@ -47,6 +47,8 @@ class SavesSyncRequest: public Networking::Request {
|
||||
void start();
|
||||
void directoryListedCallback(Storage::ListDirectoryResponse response);
|
||||
void directoryListedErrorCallback(Networking::ErrorResponse error);
|
||||
void directoryCreatedCallback(Storage::BoolResponse response);
|
||||
void directoryCreatedErrorCallback(Networking::ErrorResponse error);
|
||||
void fileDownloadedCallback(Storage::BoolResponse response);
|
||||
void fileDownloadedErrorCallback(Networking::ErrorResponse error);
|
||||
void fileUploadedCallback(Storage::UploadResponse response);
|
||||
|
Loading…
x
Reference in New Issue
Block a user