Use relative directories path instead of hardcoded. 94/58794/4
authorLukasz Stanislawski <l.stanislaws@samsung.com>
Wed, 3 Feb 2016 11:38:58 +0000 (12:38 +0100)
committerLukasz Stanislawski <l.stanislaws@samsung.com>
Thu, 4 Feb 2016 12:54:49 +0000 (13:54 +0100)
Change-Id: I79005f4d022d276c03ccddb5ed3789ff2a6a661e
Signed-off-by: Lukasz Stanislawski <l.stanislaws@samsung.com>
inc/main.h
inc/util.h
src/icon.c
src/main.c
src/modules/information/mp3_playing.c
src/util.c

index 341779b..d31fca1 100644 (file)
 #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)
index a359e4f..063cc59 100644 (file)
@@ -74,4 +74,42 @@ extern void util_icon_access_unregister(icon_s *icon);
 
 #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__ */
index 3f4cc11..4d54d63 100644 (file)
@@ -183,9 +183,9 @@ static void _fixed_icon_layout_file_set(icon_s *icon, Evas_Object *ly)
        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");
        }
 }
 
@@ -197,9 +197,9 @@ static void _noti_ani_icon_layout_file_set(int noti_is_ani, Evas_Object *ly)
 
        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");
        }
 }
 
@@ -210,7 +210,7 @@ static Evas_Object *_img_icon_add(win_info *win, icon_s *icon)
        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;
 
@@ -497,15 +497,15 @@ static int _icon_update(icon_s *icon)
        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");
                        }
                }
 
index 0791072..c34d470 100644 (file)
@@ -790,7 +790,7 @@ static void _create_base_gui(void* data)
 
        _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));
 
 
index 119ddf9..eae8534 100644 (file)
@@ -34,7 +34,7 @@
 #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"
 
@@ -105,7 +105,7 @@ static void hide_image_icon(void)
 
 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!");
@@ -175,7 +175,7 @@ static int wake_up_cb(void *data)
                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;
 }
 
@@ -189,7 +189,7 @@ static int register_mp3_play_module(void *data)
        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;
index 9fa3d4c..1d1e978 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <vconf.h>
 #include <app.h>
+#include <app_common.h>
 
 #include "common.h"
 #include "indicator.h"
@@ -37,9 +38,6 @@
 #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)
 {
@@ -64,10 +62,7 @@ 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);
 }
 
 
@@ -573,4 +568,51 @@ void util_file_monitor_remove(Ecore_File_Monitor* pFileMonitor)
        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 */