[Content] - cancelScanDirectory implemented
authorAndrzej Popowski <a.popowski@samsung.com>
Fri, 24 Jul 2015 07:15:26 +0000 (09:15 +0200)
committerAndrzej Popowski <a.popowski@samsung.com>
Fri, 24 Jul 2015 07:56:46 +0000 (09:56 +0200)
[Verification] - TCT results 100% (230/230/0/0/0)

Change-Id: I9cc4ac690034260bf45eb3aaf3b61856f6a5b125
Signed-off-by: Andrzej Popowski <a.popowski@samsung.com>
src/content/content_instance.cc
src/content/content_instance.h
src/content/content_manager.cc
src/content/content_manager.h
src/content/js/manager.js

index 42e6e636798e81e292d892c9641b2efc1d28685a..175b47e42f140997f2ae80962976ecea70f76e6c 100755 (executable)
@@ -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<std::string>();
+
+  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");
index 3c7c576c9132c60cc605957e0e67d349f4812783..be795028f94acc8a62935410d783b76f717aaf5e 100755 (executable)
@@ -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);
index 260785f80636bbb7c5cd2cd1a2a192da7138e127..6faddebafc0661262d15503366ffbeb46dc8acce 100755 (executable)
@@ -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);
index 05cbc57ba093fc8a29b228acb52c9978db0043cd..7d951254638186b6ac1e8d000e1df6f4060fdf45 100755 (executable)
@@ -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();
 
index fbc786a3b50f9c3ce0bb4ee1ad263b5e8db715c5..32643c489115d29df2c658ad647ec654b776357e 100755 (executable)
@@ -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);