diff options
author | Alexander Tkachev | 2016-05-23 11:23:33 +0600 |
---|---|---|
committer | Alexander Tkachev | 2016-08-24 16:07:55 +0600 |
commit | 41e65db7d0468b01f626c6ce21a1b8e6791f58fa (patch) | |
tree | b8ea4bbd60950c5f58e323b4c504b4be13b07493 /backends/cloud/dropbox/dropboxstorage.cpp | |
parent | c4b1fdc72752516a81b83490035d8f71357d045b (diff) | |
download | scummvm-rg350-41e65db7d0468b01f626c6ce21a1b8e6791f58fa.tar.gz scummvm-rg350-41e65db7d0468b01f626c6ce21a1b8e6791f58fa.tar.bz2 scummvm-rg350-41e65db7d0468b01f626c6ce21a1b8e6791f58fa.zip |
CLOUD: Add Storage saving mechanism
In this commit CloudManager starts supporting multiple Storage. Now, in
its init() it loads all the Storages and determines the current one.
It now also has save() method. In that method all Storages are saved
with their new saveConfig() method.
CloudManager::save() not called from anywhere, though. The only one
Storage that could be added is DropboxStorage in case you have no
cloud-related config keys or you have no storages connected.
Diffstat (limited to 'backends/cloud/dropbox/dropboxstorage.cpp')
-rw-r--r-- | backends/cloud/dropbox/dropboxstorage.cpp | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/backends/cloud/dropbox/dropboxstorage.cpp b/backends/cloud/dropbox/dropboxstorage.cpp index 49355fa845..d32d86567a 100644 --- a/backends/cloud/dropbox/dropboxstorage.cpp +++ b/backends/cloud/dropbox/dropboxstorage.cpp @@ -45,9 +45,12 @@ static void saveAccessTokenCallback(void *ptr) { if (!result.contains("access_token") || !result.contains("uid")) { warning("Bad response, no token/uid passed"); } else { - ConfMan.set("current_storage_type", "Dropbox", "cloud"); - ConfMan.set("current_storage_access_token", result.getVal("access_token")->asString(), "cloud"); - ConfMan.set("current_storage_user_id", result.getVal("uid")->asString(), "cloud"); + //we suppose that's the first storage + ConfMan.set("storages_number", "1", "cloud"); + ConfMan.set("current_storage", "1", "cloud"); + ConfMan.set("storage1_type", "Dropbox", "cloud"); + ConfMan.set("storage1_access_token", result.getVal("access_token")->asString(), "cloud"); + ConfMan.set("storage1_user_id", result.getVal("uid")->asString(), "cloud"); ConfMan.removeKey("dropbox_code", "cloud"); debug("Now please restart ScummVM to apply the changes."); } @@ -66,6 +69,12 @@ DropboxStorage::~DropboxStorage() { curl_global_cleanup(); } +void DropboxStorage::saveConfig(Common::String keyPrefix) { + ConfMan.set(keyPrefix + "type", "Dropbox", "cloud"); + ConfMan.set(keyPrefix + "access_token", _token, "cloud"); + ConfMan.set(keyPrefix + "user_id", _uid, "cloud"); +} + void DropboxStorage::syncSaves(BoolCallback callback) { //this is not the real syncSaves() implementation info(new Common::Callback<DropboxStorage, StorageInfo>(this, &DropboxStorage::infoMethodCallback)); @@ -106,22 +115,22 @@ void DropboxStorage::infoMethodCallback(StorageInfo storageInfo) { debug("info: %s", storageInfo.info().c_str()); } -DropboxStorage *DropboxStorage::loadFromConfig() { +DropboxStorage *DropboxStorage::loadFromConfig(Common::String keyPrefix) { KEY = ConfMan.get("DROPBOX_KEY", "cloud"); SECRET = ConfMan.get("DROPBOX_SECRET", "cloud"); - if (!ConfMan.hasKey("current_storage_access_token", "cloud")) { + if (!ConfMan.hasKey(keyPrefix + "access_token", "cloud")) { warning("No access_token found"); return 0; } - if (!ConfMan.hasKey("current_storage_user_id", "cloud")) { + if (!ConfMan.hasKey(keyPrefix + "user_id", "cloud")) { warning("No user_id found"); return 0; } - Common::String accessToken = ConfMan.get("current_storage_access_token", "cloud"); - Common::String userId = ConfMan.get("current_storage_user_id", "cloud"); + Common::String accessToken = ConfMan.get(keyPrefix + "access_token", "cloud"); + Common::String userId = ConfMan.get(keyPrefix + "user_id", "cloud"); return new DropboxStorage(accessToken, userId); } |