From: Andrzej Popowski Date: Fri, 24 Jul 2015 07:15:26 +0000 (+0200) Subject: [Content] - cancelScanDirectory implemented X-Git-Tag: submit/tizen_tv/20150803.021740^2^2~31^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dd4563a85b2cb1ff6c1d39e40b14b309a0834b20;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Content] - cancelScanDirectory implemented [Verification] - TCT results 100% (230/230/0/0/0) Change-Id: I9cc4ac690034260bf45eb3aaf3b61856f6a5b125 Signed-off-by: Andrzej Popowski --- diff --git a/src/content/content_instance.cc b/src/content/content_instance.cc index 42e6e636..175b47e4 100755 --- a/src/content/content_instance.cc +++ b/src/content/content_instance.cc @@ -46,6 +46,7 @@ ContentInstance::ContentInstance() { REGISTER_SYNC("ContentManager_update", ContentManagerUpdate); REGISTER_SYNC("ContentManager_scanFile", ContentManagerScanfile); REGISTER_SYNC("ContentManager_scanDirectory", ContentManagerScanDirectory); + REGISTER_SYNC("ContentManager_cancelScanDirectory", ContentManagerCancelScanDirectory); REGISTER_SYNC("ContentManager_unsetChangeListener", ContentManagerUnsetchangelistener); REGISTER_SYNC("ContentManager_setChangeListener", ContentManagerSetchangelistener); REGISTER_SYNC("ContentManager_getDirectories", ContentManagerGetdirectories); @@ -389,6 +390,17 @@ void ContentInstance::ContentManagerScanDirectory(const picojson::value& args, p } +void ContentInstance::ContentManagerCancelScanDirectory(const picojson::value& args, picojson::object& out) { + LoggerD("Enter"); + CHECK_EXIST(args, "contentDirURI", out) + const std::string& content_dir_uri = args.get("contentDirURI").get(); + + if (ContentManager::getInstance()->cancelScanDirectory(content_dir_uri).IsError()) { + ReportError(common::PlatformResult(common::ErrorCode::UNKNOWN_ERR, "Cancel scan directory failed"), &out); + } +} + + void ContentInstance::ContentManagerSetchangelistener(const picojson::value& args, picojson::object& out) { LoggerD("entered"); diff --git a/src/content/content_instance.h b/src/content/content_instance.h index 3c7c576c..be795028 100755 --- a/src/content/content_instance.h +++ b/src/content/content_instance.h @@ -53,6 +53,7 @@ class ContentInstance : public common::ParsedInstance { void ContentManagerFind(const picojson::value& args, picojson::object& out); void ContentManagerScanfile(const picojson::value& args, picojson::object& out); void ContentManagerScanDirectory(const picojson::value& args, picojson::object& out); + void ContentManagerCancelScanDirectory(const picojson::value& args, picojson::object& out); void ContentManagerSetchangelistener(const picojson::value& args, picojson::object& out); void ContentManagerUnsetchangelistener(const picojson::value& args, picojson::object& out); void ContentManagerGetplaylists(const picojson::value& args, picojson::object& out); diff --git a/src/content/content_manager.cc b/src/content/content_manager.cc index 260785f8..6faddeba 100755 --- a/src/content/content_manager.cc +++ b/src/content/content_manager.cc @@ -814,6 +814,17 @@ PlatformResult ContentManager::scanDirectory(media_scan_completed_cb callback, R return PlatformResult(ErrorCode::NO_ERROR); } +PlatformResult ContentManager::cancelScanDirectory(const std::string& content_dir_uri) { + LoggerD("Enter"); + + int ret = media_content_cancel_scan_folder(content_dir_uri.c_str()); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + LoggerE("Cancel scan folder failed in platform: %d", ret); + return PlatformResult(ErrorCode::UNKNOWN_ERR, "Cancel scan content directory failed"); + } + return PlatformResult(ErrorCode::NO_ERROR); +} + PlatformResult ContentManager::setChangeListener(media_content_db_update_cb callback, void *user_data) { LoggerD("Enter"); int ret = media_content_set_db_updated_cb(callback, user_data); diff --git a/src/content/content_manager.h b/src/content/content_manager.h index 05cbc57b..7d951254 100755 --- a/src/content/content_manager.h +++ b/src/content/content_manager.h @@ -51,6 +51,7 @@ class ContentManager { int scanFile(std::string& uri); common::PlatformResult scanDirectory(media_scan_completed_cb callback, ReplyCallbackData* cbData); + common::PlatformResult cancelScanDirectory(const std::string& content_dir_uri); common::PlatformResult setChangeListener(media_content_db_update_cb callback, void *user_data); common::PlatformResult unSetChangeListener(); diff --git a/src/content/js/manager.js b/src/content/js/manager.js index fbc786a3..32643c48 100755 --- a/src/content/js/manager.js +++ b/src/content/js/manager.js @@ -220,6 +220,29 @@ ContentManager.prototype.scanDirectory = function(contentDirURI, recursive, succ } }; +ContentManager.prototype.cancelScanDirectory = function(contentDirURI) { + xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE); + + var args = validator_.validateArgs(arguments, [ + {name: 'contentDirURI', type: types_.STRING} + ]); + + var path = args.contentDirURI.trim(); + if (!path.length) { + throw new WebAPIException(WebAPIException.INVALID_VALUES_ERR, 'Directory path is not valid.'); + } + + var data = { + contentDirURI: convertUriToPath_(path) + }; + + var result = native_.callSync('ContentManager_cancelScanDirectory', data); + + if (native_.isFailure(result)) { + throw native_.getErrorObject(result); + } +}; + ContentManager.prototype.setChangeListener = function(changeCallback) { xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_READ);