1 // Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
2 // Use of this source code is governed by an apache-2.0 license that can be
3 // found in the LICENSE file.
5 #include "hybrid/step/configuration/step_merge_tpk_config.h"
10 #include <pkgmgrinfo_basic.h>
12 #include "common/utils/glist_range.h"
14 #include "hybrid/hybrid_backend_data.h"
17 namespace configuration {
19 common_installer::Step::Status StepMergeTpkConfig::process() {
20 HybridBackendData* data =
21 static_cast<HybridBackendData*>(context_->backend_data.get());
22 manifest_x* tpk_data = data->tpk_manifest_data.get();
23 manifest_x* wgt_data = context_->manifest_data.get();
24 // FIXME:api-version of tpk app will have wgt's if modified manifest exists.
25 GList* tpk_list = tpk_data->application;
26 while (tpk_list != nullptr) {
27 GList *next_list = g_list_next(tpk_list);
28 application_x* tpk_app = static_cast<application_x*>(tpk_list->data);
29 bool is_found = false;
30 for (GList* wgt_list = wgt_data->application;
31 wgt_list != nullptr; wgt_list = g_list_next(wgt_list)) {
32 application_x* wgt_app = static_cast<application_x*>(wgt_list->data);
33 if (!strcmp(tpk_app->appid, wgt_app->appid)) {
42 wgt_data->application = g_list_append(
43 wgt_data->application, tpk_list->data);
44 tpk_data->application = g_list_delete_link(
45 tpk_data->application, tpk_list);
53 } // namespace configuration