Fix StepMergeTpkConfig for application attribute 80/214980/1
authorJunghyun Yeon <jungh.yeon@samsung.com>
Fri, 9 Aug 2019 08:30:55 +0000 (17:30 +0900)
committerIlho Kim <ilho159.kim@samsung.com>
Mon, 30 Sep 2019 10:24:31 +0000 (19:24 +0900)
Mainapp attribute should be modified at here to
set mainapp as true for webapp.

Change-Id: I94aa9e482a2550fefa1378f1fa3e961f0636ad0c
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
src/hybrid/step/configuration/step_merge_tpk_config.cc

index d63d003..eb2619f 100644 (file)
@@ -6,6 +6,8 @@
 
 #include <pkgmgrinfo_basic.h>
 
+#include <common/utils/glist_range.h>
+
 #include "hybrid/hybrid_backend_data.h"
 
 namespace hybrid {
@@ -22,11 +24,27 @@ common_installer::Step::Status StepMergeTpkConfig::process() {
   manifest_x* tpk_data = data->tpk_manifest_data.get();
   manifest_x* wgt_data = context_->manifest_data.get();
 
-  if (merge_type_ == MergeType::CONCAT)
+  if (merge_type_ == MergeType::CONCAT) {
     wgt_data->application =
         g_list_concat(wgt_data->application, tpk_data->application);
-  else
+  } else {
+    // mainappid should be webapp for hybrid pkg
+    for (application_x* app :
+        GListRange<application_x*>(tpk_data->application)) {
+      if (app->type && strcmp(app->type, "webapp") != 0)
+        continue;
+
+      if (app->mainapp)
+        free(app->mainapp);
+      app->mainapp = strdup("true");
+      if (!app->mainapp) {
+        LOG(ERROR) << "Out of memoery";
+        return Status::ERROR;
+      }
+      break;
+    }
     wgt_data->application = tpk_data->application;
+  }
 
   tpk_data->application = nullptr;
   return Status::OK;