#include <libxml/xmlschemas.h>
#include <vconf.h>
-
#include "pkgmgr_parser.h"
#include "pkgmgr_parser_internal.h"
#include "pkgmgr_parser_db.h"
} else {
mfx->appsetting = strdup("false");
}
+ if (xmlTextReaderGetAttribute(reader, XMLCHAR("storeclient-id")))
+ mfx->storeclient_id= ASCII(xmlTextReaderGetAttribute(reader, XMLCHAR("storeclient-id")));
/*Assign default values. If required it will be overwritten in __add_preload_info()*/
mfx->preload = strdup("False");
{
char filepath[PKG_STRING_LEN_MAX] = "";
int ret = 0;
+ uiapplication_x *uiapplication = mfx->uiapplication;
- for(; mfx->uiapplication; mfx->uiapplication=mfx->uiapplication->next) {
- snprintf(filepath, sizeof(filepath),"%s%s.desktop", DESKTOP_RW_PATH, mfx->uiapplication->appid);
+ for(; uiapplication; uiapplication=uiapplication->next) {
+ snprintf(filepath, sizeof(filepath),"%s%s.desktop", DESKTOP_RW_PATH, uiapplication->appid);
- __ail_change_info(AIL_REMOVE, mfx->uiapplication->appid);
+ __ail_change_info(AIL_REMOVE, uiapplication->appid);
ret = remove(filepath);
if (ret <0)
return 0;
}
+#define LIBAPPSVC_PATH "/usr/lib/libappsvc.so.0"
+
+static int __ps_remove_appsvc_db(manifest_x *mfx)
+{
+ void *lib_handle = NULL;
+ int (*appsvc_operation) (const char *);
+ int ret = 0;
+ uiapplication_x *uiapplication = mfx->uiapplication;
+
+ if ((lib_handle = dlopen(LIBAPPSVC_PATH, RTLD_LAZY)) == NULL) {
+ DBGE("dlopen is failed LIBAIL_PATH[%s]\n", LIBAPPSVC_PATH);
+ goto END;
+ }
+
+ if ((appsvc_operation =
+ dlsym(lib_handle, "appsvc_unset_defapp")) == NULL || dlerror() != NULL) {
+ DBGE("can not find symbol \n");
+ goto END;
+ }
+
+ for(; uiapplication; uiapplication=uiapplication->next) {
+ ret = appsvc_operation(uiapplication->appid);
+ if (ret <0)
+ DBGE("can not operation symbol \n");
+ }
+
+END:
+ if (lib_handle)
+ dlclose(lib_handle);
+
+ return ret;
+}
+
#define MANIFEST_RO_PREFIX "/usr/share/packages/"
#define PRELOAD_PACKAGE_LIST "/usr/etc/package-manager/preload/preload_list.txt"
static int __add_preload_info(manifest_x * mfx, const char *manifest)
else
DBG("Removing desktop file Success\n");
+ ret = __ps_remove_appsvc_db(mfx);
+ if (ret == -1)
+ DBG("Removing appsvc_db failed\n");
+ else
+ DBG("Removing appsvc_db Success\n");
+
pkgmgr_parser_free_manifest_xml(mfx);
DBG("Free Done\n");
xmlCleanupParser();