Add <category> tag parsing in tpk manifest 40/59040/2 accepted/tizen/mobile/20160212.002816 accepted/tizen/tv/20160212.002835 accepted/tizen/wearable/20160212.002849 submit/submit/tizen/20160211.235541/20160211.235604 submit/tizen/20160211.235541
authorTomasz Iwanek <t.iwanek@samsung.com>
Mon, 8 Feb 2016 14:59:36 +0000 (15:59 +0100)
committerTomasz Iwanek <t.iwanek@samsung.com>
Thu, 11 Feb 2016 16:30:59 +0000 (08:30 -0800)
Change-Id: Iaa1372bf328444fe99124c17e1f5dde23c71f6cb

src/tpk_manifest_handlers/common/application_handler.cc
src/tpk_manifest_handlers/common/application_handler.h
src/tpk_manifest_handlers/ui_application_handler.cc
src/tpk_manifest_handlers/widget_application_handler.cc

index 359b5742cb652b96a341e0192c9cbe35e7022bff..e087041442da6b25c4d390305b6bcc2c1486b310 100644 (file)
@@ -45,6 +45,11 @@ const char kLabelLangKey[] = "@lang";
 const char kMetaDataKey[] = "metadata";
 const char kMetaDataKeyKey[] = "@key";
 const char kMetaDataValueKey[] = "@value";
+
+// category
+const char kCategoryKey[] = "category";
+const char kCategoryNameKey[] = "@name";
+
 }  // namespace tpk_app_keys
 
 const utils::VersionNumber kLaunchModeRequiredVersion("2.4");
index 09463c488a991e1ff7134f1b11fd246363356f82..dd23bee75bbff1bc86726bbfd2faffb96ef4b6c7 100644 (file)
@@ -57,6 +57,11 @@ extern const char kLabelLangKey[];
 extern const char kMetaDataKey[];
 extern const char kMetaDataKeyKey[];
 extern const char kMetaDataValueKey[];
+
+// category
+extern const char kCategoryKey[];
+extern const char kCategoryNameKey[];
+
 }  // namespace tpk_app_keys
 
 extern const utils::VersionNumber kLaunchModeRequiredVersion;
@@ -90,6 +95,7 @@ struct ApplicationSingleEntry : public parser::ManifestData {
   std::vector<MetaDataInfo> meta_data;
   ApplicationIconsInfo app_icons;
   std::vector<LabelInfo> label;
+  std::vector<std::string> categories;
 };
 
 template<typename T>
@@ -220,6 +226,16 @@ bool ParseMetaData(const parser::DictionaryValue& dict,
   return true;
 }
 
+template<typename T>
+bool ParseCategory(const parser::DictionaryValue& dict,
+                   T* info, std::string*) {
+  std::string name;
+  dict.GetString(tpk_app_keys::kCategoryNameKey, &name);
+  if (!name.empty())
+    info->categories.push_back(name);
+  return true;
+}
+
 template<typename T>
 using ParsingFuncPtr =
     std::function<bool(const parser::DictionaryValue&, T*, std::string*)>;
index 04c39b7eeaef7aeca447995ce9e31bc24058aa77..0e97512ad15de74b64c8c2c483f50a8a63989d4a 100644 (file)
@@ -79,6 +79,10 @@ bool InitializeParsing(const parser::DictionaryValue& app_dict,
   if (!InitializeParsingElement(app_dict, tpk_app_keys::kImageKey,
       parsingFunc, uiapplicationinfo, error))
     return false;
+  parsingFunc = ParseCategory<UIApplicationSingleEntry>;
+  if (!InitializeParsingElement(app_dict, tpk_app_keys::kCategoryKey,
+      parsingFunc, uiapplicationinfo, error))
+    return false;
   parsingFunc = ParseBackgroundCategoryElement<UIApplicationSingleEntry>;
   if (!InitializeParsingElement(app_dict, tpk_app_keys::kBackgroundCategoryKey,
       parsingFunc, uiapplicationinfo, error))
index cfe18982e1423fb0dab8135af75d8ff1be5b2336..09f57793fe5ffb792b1c6d0fc4357acca7cc9fca 100644 (file)
@@ -75,6 +75,10 @@ bool InitializeParsing(const parser::DictionaryValue& app_dict,
   if (!InitializeParsingElement(app_dict, tpk_app_keys::kImageKey,
       parsingFunc, widgetapplicationinfo, error))
     return false;
+  parsingFunc = ParseCategory<WidgetApplicationSingleEntry>;
+  if (!InitializeParsingElement(app_dict, tpk_app_keys::kCategoryKey,
+      parsingFunc, widgetapplicationinfo, error))
+    return false;
 
   return true;
 }