2 #include <tzplatform_config.h>
6 #include "rua_internal.h"
9 static int __exec(sqlite3 *db, char *query)
17 r = sqlite3_exec(db, query, NULL, NULL, &errmsg);
27 static int __create_table(sqlite3 *db)
31 r = __exec(db, CREATE_RUA_HISTORY_TABLE);
38 static sqlite3 *__db_init()
43 char defname[FILENAME_MAX];
44 const char *rua_db_path = tzplatform_getenv(TZ_USER_DB);
45 if (rua_db_path == NULL) {
46 LOGE("fail to get rua_db_path");
49 snprintf(defname, sizeof(defname), "%s/%s", rua_db_path, RUA_DB_NAME);
51 r = db_util_open_with_options(defname, &db, SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE, NULL);
57 r = __create_table(db);
66 int rua_db_delete_history(bundle *b)
70 char query[QUERY_MAXLEN];
72 char *pkg_name = NULL;
73 char *app_path = NULL;
79 LOGE("Error db null");
84 bundle_get_str(b, AUL_K_RUA_PKGNAME, &pkg_name);
85 bundle_get_str(b, AUL_K_RUA_APPPATH, &app_path);
89 snprintf(query, QUERY_MAXLEN, "delete from rua_history where pkg_name = '%s';", pkg_name);
90 else if (app_path != NULL)
91 snprintf(query, QUERY_MAXLEN, "delete from rua_history where app_path = '%s';", app_path);
93 snprintf(query, QUERY_MAXLEN, "delete from rua_history;");
95 LOGI("rua_delete_history_from_db : %s", query);
96 r = sqlite3_exec(db, query, NULL, NULL, &errmsg);
99 LOGE("fail to exec delete query %s : %s", query, errmsg);
100 sqlite3_free(errmsg);
111 int rua_db_add_history(struct rua_rec *rec)
115 char query[QUERY_MAXLEN];
121 LOGE("Error db null");
126 LOGE("Error rec null");
131 snprintf(query, QUERY_MAXLEN,
132 "select count(*) from %s where pkg_name = '%s';", RUA_HISTORY,
135 r = sqlite3_prepare(db, query, sizeof(query), &stmt, NULL);
136 if (r != SQLITE_OK) {
137 LOGE("Error sqlite3_prepare fail");
142 r = sqlite3_step(stmt);
144 cnt = sqlite3_column_int(stmt, 0);
146 sqlite3_finalize(stmt);
150 snprintf(query, QUERY_MAXLEN,
151 "insert into %s ( pkg_name, app_path, arg, launch_time ) "
152 " values ( \"%s\", \"%s\", \"%s\", %d ) ",
154 rec->pkg_name ? rec->pkg_name : "",
155 rec->app_path ? rec->app_path : "",
156 rec->arg ? rec->arg : "", (int)time(NULL));
159 snprintf(query, QUERY_MAXLEN,
160 "update %s set arg='%s', launch_time='%d' where pkg_name = '%s';",
162 rec->arg ? rec->arg : "", (int)time(NULL), rec->pkg_name);
164 r = __exec(db, query);
166 LOGE("[RUA ADD HISTORY ERROR] %s\n", query);