Add <description/> in the manifest.xml
authorJihoon Chung <jihoon.chung@samsung.com>
Sat, 20 Apr 2013 10:05:27 +0000 (19:05 +0900)
committerGerrit Code Review <gerrit2@kim11>
Sun, 21 Apr 2013 13:29:04 +0000 (22:29 +0900)
[Issue#] TREL-163
[Problem] PackageInformation descroption can't get expect value.
[Cause] Missed <description/> element in the manifest.xml
[Solution] Add <description/> element
[SCMRequest] N/A

Change-Id: Idef2c095e437146b1191ec4f00f23a5607a3dbce

src/jobs/widget_install/task_manifest_file.cpp
src/jobs/widget_install/task_manifest_file.h

index 3596659..9019b5e 100644 (file)
@@ -572,6 +572,7 @@ void TaskManifestFile::writeManifest(const DPL::String & path)
     setWidgetName(manifest, uiApp);
     setWidgetIds(manifest, uiApp);
     setWidgetIcons(uiApp);
+    setWidgetDescription(manifest);
     setWidgetManifest(manifest);
     setWidgetOtherInfo(uiApp);
 #ifndef MULTIPROCESS_SERVICE_SUPPORT
@@ -788,6 +789,39 @@ void TaskManifestFile::generateWidgetIcon(UiApplication & uiApp,
      m_context.job->SendProgressIconPath(iconPath.str());
 }
 
+void TaskManifestFile::setWidgetDescription(Manifest & manifest)
+{
+    FOREACH(localizedData, m_context.widgetConfig.configInfo.localizedDataSet)
+    {
+        Locale i = localizedData->first;
+        DPL::OptionalString tag = getLangTag(i); // translate en -> en_US etc
+        if (tag.IsNull()) {
+            tag = i;
+        }
+        DPL::OptionalString description = localizedData->second.description;
+        generateWidgetDescription(manifest, tag, description);
+    }
+}
+
+void TaskManifestFile::generateWidgetDescription(Manifest & manifest,
+                                                 const DPL::OptionalString& tag,
+                                                  DPL::OptionalString description)
+{
+    if (!!description) {
+        if (!!tag) {
+            DPL::String locale =
+                LanguageTagsProvider::BCP47LanguageTagToLocale(*tag);
+            if (!locale.empty()) {
+                manifest.addDescription(DescriptionType(*description, locale));
+            } else {
+                manifest.addDescription(DescriptionType(*description));
+            }
+        } else {
+            manifest.addDescription(DescriptionType(*description));
+        }
+    }
+}
+
 void TaskManifestFile::setWidgetManifest(Manifest & manifest)
 {
     manifest.setPackage(m_context.widgetConfig.tzPkgid);
index 14e33fc..c9106cb 100644 (file)
@@ -96,6 +96,7 @@ class TaskManifestFile :
                        UiApplication & uiApp,
                        const std::string &postfix = std::string());
     void setWidgetIcons(UiApplication & uiApp);
+    void setWidgetDescription(Manifest & manifest);
     void setWidgetManifest(Manifest & manifest);
     void setWidgetOtherInfo(UiApplication & uiApp);
     void setAppControlsInfo(UiApplication & uiApp);
@@ -111,6 +112,9 @@ class TaskManifestFile :
                             const DPL::OptionalString& tag,
                             DPL::OptionalString name,
                             bool & defaultNameSaved);
+    void generateWidgetDescription(Manifest & manifest,
+                                   const DPL::OptionalString& tag,
+                                   DPL::OptionalString description);
     void generateWidgetIcon(UiApplication & uiApp,
                             const DPL::OptionalString& tag,
                             const DPL::String& language,