#endif
#define LOG_TAG "STICKER_PARSER"
-#define STICKER_DIRECTORY tzplatform_mkpath(TZ_SYS_SHARE, "sticker-data")
+#define STICKER_DIRECTORY "/opt/usr/share/sticker-data"
#define STICKER_INFO_CREATE_TABLE "CREATE TABLE IF NOT EXISTS sticker_info(sticker_info_id INTEGER PRIMARY KEY AUTOINCREMENT, app_id TEXT NOT NULL, type INTEGER NOT NULL, uri TEXT NOT NULL, thumbnail TEXT, description TEXT, group_name TEXT NOT NULL, date TEXT NOT NULL, display_type INTEGER)"
#define STICKER_KEYWORD_INFO_CREATE_TABLE "CREATE TABLE IF NOT EXISTS sticker_keyword_info(keyword_id INTEGER PRIMARY KEY AUTOINCREMENT, sticker_info_id INTEGER, keyword TEXT NOT NULL, FOREIGN KEY (sticker_info_id) REFERENCES sticker_info(sticker_info_id) ON DELETE CASCADE)"
#define STICKER_WHITELIST_INFO_CREATE_TABLE "CREATE TABLE IF NOT EXISTS sticker_whitelist_info(whitelist_id INTEGER PRIMARY KEY AUTOINCREMENT, provider_id TEXT NOT NULL, consumer_id TEXT NOT NULL)"
+#define STICKER_RECENT_HISTORY_INFO_CREATE_TABLE "CREATE TABLE IF NOT EXISTS sticker_recent_history_info(history_id INTEGER PRIMARY KEY AUTOINCREMENT, sticker_info_id INTEGER, count INTEGER NOT NULL, timestamp TEXT NOT NULL, FOREIGN KEY (sticker_info_id) REFERENCES sticker_info(sticker_info_id) ON DELETE CASCADE)"
#define UIFW_ID 502
#define APPFW_ID 301
#define MAX_ERROR_BUFFER 256
goto cleanup;
}
+ ret = sqlite3_exec(db, STICKER_RECENT_HISTORY_INFO_CREATE_TABLE, NULL, NULL, &err);
+ if (ret != SQLITE_OK) {
+ LOGE("Failed to create sticker_recent_history_info table : %s", err);
+ goto cleanup;
+ }
+
is_corrupted = FALSE;
cleanup:
goto cleanup;
}
+ ret = sqlite3_exec(db, STICKER_RECENT_HISTORY_INFO_CREATE_TABLE, NULL, NULL, &err);
+ if (ret != SQLITE_OK) {
+ LOGE("Failed to create sticker_recent_history_info table : %s", err);
+ goto cleanup;
+ }
+
ret = sqlite3_exec(db, "PRAGMA journal_mode = WAL", NULL, NULL, &err);
if (ret != SQLITE_OK) {
LOGE("Failed to set journal_mode : %s", err);
return ret;
}
-static char* __convert_sticker_uri(const char *uri, const char *appid, const char *app_path)
+static char* __convert_sticker_uri(char *uri, const char *appid, const char *app_path)
{
int ret;
- char *rel_path = strdup(uri);
- __remove_app_path(rel_path, app_path);
- int len = strlen(STICKER_DIRECTORY) + strlen(appid) + strlen(rel_path) + 2;
+ __remove_app_path(uri, app_path);
+ int len = strlen(STICKER_DIRECTORY) + strlen(appid) + strlen(uri) + 2;
char *new_path = (char *)calloc(len, sizeof(char));
- if (new_path == NULL) {
- free(rel_path);
- rel_path = NULL;
+ if (new_path == NULL)
return NULL;
- }
- snprintf(new_path, len, "%s/%s%s",STICKER_DIRECTORY, appid, rel_path);
+ snprintf(new_path, len, "%s/%s%s",STICKER_DIRECTORY, appid, uri);
if (access(new_path, F_OK) == 0) {
LOGE("sticker file already exists");
LOGE("failed to change ownership");
cleanup:
- free(rel_path);
- rel_path = NULL;
-
if (ret == 0) {
return new_path;
} else {
char *rel_thumbnail = __get_string_from_object(info_object, "thumbnail");
if (rel_thumbnail) {
- thumbnail_path = __convert_sticker_uri(rel_thumbnail, appid, app_path);
+ if (rel_thumbnail[0] != '\0')
+ thumbnail_path = __convert_sticker_uri(rel_thumbnail, appid, app_path);
+
free(rel_thumbnail);
}