"REFERENCES package_app_info(app_id) " \
"ON DELETE CASCADE)"
-#define QUERY_CREATE_TABLE_PACKAGE_APP_APP_SVC "create table if not exists package_app_app_svc " \
- "(app_id text not null, " \
- "operation text not null, " \
- "uri_scheme text, " \
- "mime_type text, " \
- "subapp_name text, " \
- "PRIMARY KEY(app_id,operation,uri_scheme,mime_type,subapp_name) " \
- "FOREIGN KEY(app_id) " \
- "REFERENCES package_app_info(app_id) " \
- "ON DELETE CASCADE)"
-
#define QUERY_CREATE_TABLE_PACKAGE_APP_APP_CATEGORY "create table if not exists package_app_app_category " \
"(app_id text not null, " \
"category text not null, " \
"ON DELETE CASCADE)"
static int __insert_application_info(manifest_x *mfx);
-static int __insert_application_appsvc_info(manifest_x *mfx);
static int __insert_application_appcategory_info(manifest_x *mfx);
static int __insert_application_appcontrol_info(manifest_x *mfx);
static int __insert_application_appmetadata_info(manifest_x *mfx);
return 0;
}
-/* FIXME: should be changed to app_control */
-static int __insert_application_appsvc_info(manifest_x *mfx)
-{
- GList *app_tmp;
- application_x *app;
- GList *asvc_tmp;
- appsvc_x *asvc;
- int ret = -1;
- char query[MAX_QUERY_LEN] = {'\0'};
- for (app_tmp = mfx->application; app_tmp; app_tmp = app_tmp->next) {
- app = (application_x *)app_tmp->data;
- if (app == NULL)
- continue;
- for (asvc_tmp = app->appsvc; asvc_tmp; asvc_tmp = asvc_tmp->next) {
- asvc = (appsvc_x *)asvc_tmp->data;
- if (asvc == NULL)
- continue;
- snprintf(query, MAX_QUERY_LEN,
- "insert into package_app_app_svc(app_id, operation, uri_scheme, mime_type, subapp_name) " \
- "values('%s', '%s', '%s', '%s', '%s')",\
- app->appid,
- asvc->operation,
- __get_str(asvc->uri),
- __get_str(asvc->mime),
- __get_str(asvc->subapp));
-
- ret = __exec_query(query);
- if (ret == -1) {
- _LOGD("Package UiApp AppSvc DB Insert Failed\n");
- return -1;
- }
- memset(query, '\0', MAX_QUERY_LEN);
- }
- }
- return 0;
-}
-
static int __insert_application_datacontrol_info(manifest_x *mfx)
{
GList *app_tmp;
if (ret == -1)
return -1;
- /*Insert in the package_app_app_svc DB*/
- ret = __insert_application_appsvc_info(mfx);
- if (ret == -1)
- return -1;
-
/*Insert in the package_app_share_allowed DB*/
ret = __insert_application_share_allowed_info(mfx);
if (ret == -1)
ret = __delete_appinfo_from_db("package_app_image_info", appid);
if (ret < 0)
return ret;
- ret = __delete_appinfo_from_db("package_app_app_svc", appid);
- if (ret < 0)
- return ret;
ret = __delete_appinfo_from_db("package_app_app_control", appid);
if (ret < 0)
return ret;
ret = __delete_appinfo_from_db("package_app_image_info", app->appid);
if (ret < 0)
return ret;
- ret = __delete_appinfo_from_db("package_app_app_svc", app->appid);
- if (ret < 0)
- return ret;
ret = __delete_appinfo_from_db("package_app_app_control", app->appid);
if (ret < 0)
return ret;
_LOGD("package app app permission DB initialization failed\n");
return ret;
}
- ret = __initialize_db(pkgmgr_parser_db, QUERY_CREATE_TABLE_PACKAGE_APP_APP_SVC);
- if (ret == -1) {
- _LOGD("package app app svc DB initialization failed\n");
- return ret;
- }
ret = __initialize_db(pkgmgr_parser_db, QUERY_CREATE_TABLE_PACKAGE_APP_SHARE_ALLOWED);
if (ret == -1) {
_LOGD("package app share allowed DB initialization failed\n");
free((void*)appcontrol);
}
-static void __ps_free_appsvc(gpointer data)
-{
- appsvc_x *appsvc = (appsvc_x *)data;
- if (appsvc == NULL)
- return;
- if (appsvc->text)
- free((void *)appsvc->text);
- /*Free Operation*/
- if (appsvc->operation)
- free((void *)appsvc->operation);
- /*Free Uri*/
- if (appsvc->uri)
- free((void *)appsvc->uri);
- /*Free Mime*/
- if (appsvc->mime)
- free((void *)appsvc->mime);
- /*Free subapp*/
- if (appsvc->subapp)
- free((void *)appsvc->subapp);
- free((void*)appsvc);
-}
-
static void __ps_free_define(gpointer data)
{
define_x *define = (define_x *)data;
g_list_free_full(application->icon, __ps_free_icon);
/*Free image*/
g_list_free_full(application->image, __ps_free_image);
- /*Free AppSvc*/
- g_list_free_full(application->appsvc, __ps_free_appsvc);
/*Free AppControl*/
g_list_free_full(application->appcontrol, __ps_free_appcontrol);
/*Free Category*/
break;
case E_PMINFO_APPINFO_PROP_APP_OPERATION:
snprintf(temp, sizeof(temp), "(%s)", node->value);
- snprintf(buf, sizeof(buf), "package_app_app_svc.operation IN %s", temp);
+ snprintf(buf, sizeof(buf), "package_app_app_control.app_control LIKE %s|%%|%%", temp);
break;
case E_PMINFO_APPINFO_PROP_APP_URI:
snprintf(temp, sizeof(temp), "(%s)", node->value);
- snprintf(buf, sizeof(buf), "package_app_app_svc.uri_scheme IN %s", temp);
+ snprintf(buf, sizeof(buf), "package_app_app_control.app_control LIKE %%|%s|%%", temp);
break;
case E_PMINFO_APPINFO_PROP_APP_MIME:
snprintf(temp, sizeof(temp), "(%s)", node->value);
- snprintf(buf, sizeof(buf), "package_app_app_svc.mime_type IN %s", temp);
+ snprintf(buf, sizeof(buf), "package_app_app_control.app_control LIKE %%|%%|%s", temp);
break;
case E_PMINFO_APPINFO_PROP_APP_CATEGORY:
snprintf(temp, sizeof(temp), "(%s)", node->value);