#endif
#if !defined(LOCALEDIR)
-# define LOCALEDIR "/usr/apps/org.tizen.indicator/res/locale"
+# define LOCALEDIR "locale"
#endif
#if !defined(EDJDIR)
-# define EDJDIR "/usr/apps/org.tizen.indicator/res/edje"
+# define EDJDIR "resource/"
#endif
#if !defined(ICONDIR)
-# define ICONDIR "/usr/apps/org.tizen.indicator/res/icons"
-#endif
-
-#if !defined(CHANGEABLEDIR)
-# define CHANGEABLEDIR "/usr/apps/org.tizen.indicator/shared/res/tables"
+# define ICONDIR EDJDIR"icons"
#endif
#define EDJ_FILE EDJDIR"/"PACKAGE"_port.edj"
#define ICON_THEME_FILE EDJDIR"/"PACKAGE"_icon_theme.edj"
#define ICON_NONFIXED_THEME_FILE EDJDIR"/"PACKAGE"_icon_nonfixed_theme.edj"
#define ICON_NONFIXED_THEME_ANI_FILE EDJDIR"/"PACKAGE"_icon_animation.edj"
-#define ICON_NONFIXED_THEME_SYNC_FILE EDJDIR"/"PACKAGE"_icon_activesync.edj"
-
-#define CHANGEABLE_COLOR_FILE CHANGEABLEDIR"/"PACKAGEID"_ChangeableColorInfo.xml"
-#define CHANGEABLE_FONT_FILE CHANGEABLEDIR"/"PACKAGEID"_ChangeableFontInfo.xml"
#define _S(str) dgettext("sys_string", str)
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
+/*
+ * @brief Application sub-directories type.
+ */
+enum app_subdir {
+ APP_DIR_DATA,
+ APP_DIR_CACHE,
+ APP_DIR_RESOURCE,
+ APP_DIR_SHARED_DATA,
+ APP_DIR_SHARED_RESOURCE,
+ APP_DIR_SHARED_TRUSTED,
+ APP_DIR_EXTERNAL_DATA,
+ APP_DIR_EXTERNAL_CACHE,
+ APP_DIR_EXTERNAL_SHARED_DATA,
+};
+
+/**
+ * @brief Returns absolute path to resource file located in applications directory.
+ *
+ * @param subdir type of subdirectory
+ * @param relative path of resource in application's subdir.
+ * eg. for DATA_DIR subdir and relative "database.db" => "/home/owner/apps/org.tizen.homescreen-efl/data/database.db"
+ * @return absolute path string.
+ */
+const char *util_get_file_path(enum app_subdir dir, const char *relative);
+
+/**
+ * @brief Convinience macros
+ */
+#define util_get_data_file_path(x) util_get_file_path(APP_DIR_DATA, (x))
+#define util_get_cache_file_path(x) util_get_file_path(APP_DIR_CACHE, (x))
+#define util_get_res_file_path(x) util_get_file_path(APP_DIR_RESOURCE, (x))
+#define util_get_shared_data_file_path(x) util_get_file_path(APP_DIR_SHARED_DATA, (x))
+#define util_get_shared_res_file_path(x) util_get_file_path(APP_DIR_SHARED_RESOURCE, (x))
+#define util_get_trusted_file_path(x) util_get_file_path(APP_DIR_SHARED_TRUSTED, (x))
+#define util_get_external_data_file_path(x) util_get_file_path(APP_DIR_EXTERNAL_DATA, (x))
+#define util_get_external_cache_file_path(x) util_get_file_path(APP_DIR_EXTERNAL_CACHE, (x))
+#define util_get_external_shared_data_file_path(x) util_get_file_path(APP_DIR_EXTERNAL_SHARED_DATA, (x))
+
#endif /* __INDICATOR_UTIL_H__ */
ret_if(!ly);
if(icon->type == INDICATOR_DIGIT_ICON && icon->digit_area == DIGIT_DOZENS) {
- elm_layout_file_set(ly, ICON_THEME_FILE,"elm/indicator/icon/dozen_digit");
+ elm_layout_file_set(ly, util_get_res_file_path(ICON_THEME_FILE), "elm/indicator/icon/dozen_digit");
} else {
- elm_layout_file_set(ly, ICON_THEME_FILE,"elm/indicator/icon/base");
+ elm_layout_file_set(ly, util_get_res_file_path(ICON_THEME_FILE), "elm/indicator/icon/base");
}
}
if (noti_is_ani) {
evas_object_data_set(ly, PRIVATE_DATA_KEY_ICON_B_ANI, (void *) 1);
- elm_layout_file_set(ly, ICON_NONFIXED_THEME_ANI_FILE, "elm/indicator/icon/base");
+ elm_layout_file_set(ly, util_get_res_file_path(ICON_NONFIXED_THEME_ANI_FILE), "elm/indicator/icon/base");
} else {
- elm_layout_file_set(ly, ICON_NONFIXED_THEME_FILE, "elm/indicator/icon/base");
+ elm_layout_file_set(ly, util_get_res_file_path(ICON_NONFIXED_THEME_FILE), "elm/indicator/icon/base");
}
}
char path[PATH_MAX];
Evas_Object *evas_icon;
Evas_Object *ly;
- char *imgpath = NULL;
+ const char *imgpath = NULL;
int noti_is_ani = 0;
int b_ani = 0;
if (icon->type == INDICATOR_IMG_ICON || icon->type == INDICATOR_TXT_WITH_IMG_ICON || icon->type == INDICATOR_DIGIT_ICON) {
if (icon->area== INDICATOR_ICON_AREA_FIXED) {
if(icon->type == INDICATOR_DIGIT_ICON && icon->digit_area == DIGIT_DOZENS) {
- elm_layout_file_set(icon->img_obj.obj, ICON_THEME_FILE,"elm/indicator/icon/dozen_digit");
+ elm_layout_file_set(icon->img_obj.obj, util_get_res_file_path(ICON_THEME_FILE), "elm/indicator/icon/dozen_digit");
} else {
- elm_layout_file_set(icon->img_obj.obj, ICON_THEME_FILE,"elm/indicator/icon/base");
+ elm_layout_file_set(icon->img_obj.obj, util_get_res_file_path(ICON_THEME_FILE), "elm/indicator/icon/base");
}
} else {
if(util_check_noti_ani(icon->img_obj.data)) {
- elm_layout_file_set(icon->img_obj.obj, ICON_NONFIXED_THEME_ANI_FILE,"elm/indicator/icon/base");
+ elm_layout_file_set(icon->img_obj.obj, util_get_res_file_path(ICON_NONFIXED_THEME_ANI_FILE), "elm/indicator/icon/base");
} else{
- elm_layout_file_set(icon->img_obj.obj, ICON_NONFIXED_THEME_FILE,"elm/indicator/icon/base");
+ elm_layout_file_set(icon->img_obj.obj, util_get_res_file_path(ICON_NONFIXED_THEME_FILE), "elm/indicator/icon/base");
}
}
_D("win_size = Original(%d, %d), Scaled(%lf, %lf)", ad->win.port_w, ad->win.h, ELM_SCALE_SIZE(ad->win.port_w), ELM_SCALE_SIZE(ad->win.h));
- _create_layout(ad, EDJ_FILE, GRP_NAME);
+ _create_layout(ad, util_get_res_file_path(EDJ_FILE), GRP_NAME);
_create_box(&(ad->win));
#define ICON_PRIORITY INDICATOR_PRIORITY_MINICTRL2
#define MODULE_NAME "MP3_PLAY"
#define MINICONTROL_NAME "[musicplayer-mini]"
-#define MUSIC_STATUS_FILE_PATH "/opt/usr/apps/org.tizen.music-player-lite/shared/data/MusicPlayStatus.ini"
+#define MUSIC_STATUS_FILE_PATH "MusicPlayStatus.ini"
#define MAX_NAM_LEN 640
#define MP_APP_ID "org.tizen.music-player-lite"
static void show_mp_icon(void* data)
{
- FILE* fp = fopen(MUSIC_STATUS_FILE_PATH, "r");
+ FILE* fp = fopen(util_get_data_file_path(MUSIC_STATUS_FILE_PATH), "r");
char line[MAX_NAM_LEN+1];
retif(data == NULL, , "Invalid parameter!");
return OK;
}
- indicator_mp3_play_change_cb(data, pFileMonitor, (Ecore_File_Event)NULL, MUSIC_STATUS_FILE_PATH);
+ indicator_mp3_play_change_cb(data, pFileMonitor, (Ecore_File_Event)NULL, util_get_data_file_path(MUSIC_STATUS_FILE_PATH));
return OK;
}
set_app_state(data);
ECORE_FILE_MONITOR_DELIF(pFileMonitor);
- pFileMonitor = util_file_monitor_add(MUSIC_STATUS_FILE_PATH, (Ecore_File_Monitor_Cb)indicator_mp3_play_change_cb, data);
+ pFileMonitor = util_file_monitor_add(util_get_data_file_path(MUSIC_STATUS_FILE_PATH), (Ecore_File_Monitor_Cb)indicator_mp3_play_change_cb, data);
retif(pFileMonitor == NULL, FAIL, "util_file_monitor_add return NULL!!");
return OK;
#include <vconf.h>
#include <app.h>
+#include <app_common.h>
#include "common.h"
#include "indicator.h"
#define DIR_PREFIX "Theme_%02d_"
#define LABEL_STRING "<color=#%02x%02x%02x%02x>%s</color>"
-static char *_icondir;
-
-
char *util_set_label_text_color(const char *txt)
{
const char *util_get_icon_dir(void)
{
- if (_icondir == NULL)
- _icondir = DEFAULT_DIR;
-
- return (const char *)_icondir;
+ return util_get_res_file_path(DEFAULT_DIR);
}
ecore_file_monitor_del(pFileMonitor);
pFileMonitor = NULL;
}
+
+const char *util_get_file_path(enum app_subdir dir, const char *relative)
+{
+ static char buf[PATH_MAX];
+ char *prefix;
+
+ switch (dir) {
+ case APP_DIR_DATA:
+ prefix = app_get_data_path();
+ break;
+ case APP_DIR_CACHE:
+ prefix = app_get_cache_path();
+ break;
+ case APP_DIR_RESOURCE:
+ prefix = app_get_resource_path();
+ break;
+ case APP_DIR_SHARED_DATA:
+ prefix = app_get_shared_data_path();
+ break;
+ case APP_DIR_SHARED_RESOURCE:
+ prefix = app_get_shared_resource_path();
+ break;
+ case APP_DIR_SHARED_TRUSTED:
+ prefix = app_get_shared_trusted_path();
+ break;
+ case APP_DIR_EXTERNAL_DATA:
+ prefix = app_get_external_data_path();
+ break;
+ case APP_DIR_EXTERNAL_CACHE:
+ prefix = app_get_external_cache_path();
+ break;
+ case APP_DIR_EXTERNAL_SHARED_DATA:
+ prefix = app_get_external_shared_data_path();
+ break;
+ default:
+ LOGE("Not handled directory type.");
+ return NULL;
+ }
+ size_t res = eina_file_path_join(buf, sizeof(buf), prefix, relative);
+ free(prefix);
+ if (res > sizeof(buf)) {
+ LOGE("Path exceeded PATH_MAX");
+ return NULL;
+ }
+
+ return &buf[0];
+}
/* End of file */