[Content] Always use platform to check number of playlist items.
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Thu, 30 Jul 2015 09:44:08 +0000 (11:44 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Thu, 30 Jul 2015 09:44:14 +0000 (11:44 +0200)
Fixes: multiple UTC tests
[Verification] Wearable service UTC: 52/55
               Mobile TCT: 230/230

Change-Id: I36d24046eeadf71d3c1b46bac1c80d0fbb3dc492
Signed-off-by: Pawel Andruszkiewicz <p.andruszkie@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/playlist.js

index 1e7ec05a9eb055f39b00f1111ff90db9917a76d7..e0c3fe11a8a29fbccb5b45e1e98d2a2e7d52ed20 100755 (executable)
@@ -67,6 +67,7 @@ ContentInstance::ContentInstance() {
   REGISTER_SYNC("ContentPlaylist_setName", PlaylistSetName);
   REGISTER_SYNC("ContentPlaylist_getThumbnailUri", PlaylistGetThumbnailUri);
   REGISTER_SYNC("ContentPlaylist_setThumbnailUri", PlaylistSetThumbnailUri);
+  REGISTER_SYNC("ContentPlaylist_getNumberOfTracks", PlaylistGetNumberOfTracks);
   #undef REGISTER_SYNC
 }
 
@@ -691,6 +692,20 @@ void ContentInstance::PlaylistSetThumbnailUri(const picojson::value& args, picoj
   }
 }
 
+void ContentInstance::PlaylistGetNumberOfTracks(const picojson::value& args,
+                                                picojson::object& out) {
+  LoggerD("entered");
+  CHECK_EXIST(args, "id", out)
+  int id = static_cast<int>(args.get("id").get<double>());
+  int count = 0;
+  int ret = ContentManager::getInstance()->getNumberOfTracks(id, &count);
+  if (ret != MEDIA_CONTENT_ERROR_NONE) {
+    ReportError(ContentManager::getInstance()->convertError(ret), &out);
+  } else {
+    ReportSuccess(picojson::value(static_cast<double>(count)), out);
+  }
+}
+
 #undef CHECK_EXIST
 
 } // namespace content
index c8f20c75bffeafe2ed007a724c6a784c87ffe72b..34cfc3522559476a2ff01ee6affbbb657873884c 100755 (executable)
@@ -72,6 +72,7 @@ class ContentInstance : public common::ParsedInstance {
   void PlaylistSetName(const picojson::value& args, picojson::object& out);
   void PlaylistGetThumbnailUri(const picojson::value& args, picojson::object& out);
   void PlaylistSetThumbnailUri(const picojson::value& args, picojson::object& out);
+  void PlaylistGetNumberOfTracks(const picojson::value& args, picojson::object& out);
 };
 
 typedef struct _ReplyCallbackData {
index 31101570b2e98d5390dbcd26b393cee12d8f5df6..80346209952e59ac67fc9198be888b0c265144e8 100755 (executable)
@@ -1464,6 +1464,22 @@ int ContentManager::setThumbnailUri(int id, const std::string& thb_uri)
   return ret;
 }
 
+int ContentManager::getNumberOfTracks(int id, int* result) {
+  LoggerD("Entered");
+
+  int count = 0;
+  const int ret_code = media_playlist_get_media_count_from_db(id, nullptr,
+                                                              &count);
+
+  if (MEDIA_CONTENT_ERROR_NONE != ret_code) {
+    LoggerE("media_playlist_get_media_count_from_db failed");
+    return TIZEN_ERROR_UNKNOWN;
+  }
+
+  *result = count;
+  return MEDIA_CONTENT_ERROR_NONE;
+}
+
 PlatformResult ContentManager::convertError(int err) {
   switch (err) {
     case MEDIA_CONTENT_ERROR_INVALID_PARAMETER :
index 7d951254638186b6ac1e8d000e1df6f4060fdf45..95290b621345564b31deab0e42f415adb9527f6c 100755 (executable)
@@ -76,6 +76,8 @@ class ContentManager {
   int getThumbnailUri(int id, std::string* result);
   int setThumbnailUri(int id, const std::string& thb_uri);
 
+  int getNumberOfTracks(int id, int* result);
+
 //playlistSetOrder
   static common::PlatformResult convertError(int err);
  private:
index ac22e6da851df2fd723b376626e1be5d24b3109e..1dd6a4f43b3aafe64a292d7b610cda16a58de9d1 100755 (executable)
@@ -52,13 +52,13 @@ function Playlist(data) {
     },
     numberOfTracks: {
       get: function() {
-        return numberOfTracks;
-      },
-      set: function(v) {
-        if (edit_.isAllowed) {
-          numberOfTracks = converter_.toUnsignedLong(v, false);
+        var result = native_.callSync('ContentPlaylist_getNumberOfTracks', {'id' : Number(id)});
+        if (native_.isFailure(result)) {
+          throw native_.getErrorObject(result);
         }
+        return native_.getResultObject(result);
       },
+      set: function() {},
       enumerable: true
     },
     thumbnailURI: {