[TM-165] Corrected the Album creation path. 06/54406/4 accepted/tizen/mobile/20151215.125103 submit/tizen_mobile/20151215.102750
authorRahul Dadhich <r.dadhich@samsung.com>
Tue, 15 Dec 2015 06:23:03 +0000 (11:53 +0530)
committerRahul Dadhich <r.dadhich@samsung.com>
Tue, 15 Dec 2015 09:55:41 +0000 (15:25 +0530)
Change-Id: I01932581c1133b79800d19a3a1ed76f6d418484f
Signed-off-by: Rahul Dadhich <r.dadhich@samsung.com>
inc/gallery.h
inc/util/gl-util.h
src/2dview/gl-albums-new.c
src/2dview/gl-albums-rename.c
src/2dview/gl-timeline.c
src/data/gl-data.c
src/features/gl-entry.c
src/util/gl-fs.c
src/util/gl-util.c

index d43600f..d13d12a 100644 (file)
@@ -21,7 +21,7 @@
 #include <pthread.h>
 #include <app.h>
 #include <efl_extension.h>
-
+#include <storage.h>
 #include "gl-data.h"
 #include "gl-util.h"
 
@@ -212,11 +212,6 @@ extern "C"
 #define GL_ERROR_BUF_LEN 1024
 
 /* File system related String definition */
-#define GL_ROOT_PATH_PHONE             "/opt/usr/media"
-#define GL_ROOT_PATH_MMC       "/opt/storage/sdcard"
-#define GL_DEFAULT_PATH_IMAGES GL_ROOT_PATH_PHONE"/Pictures" // refer to s4
-#define GL_DEFAULT_PATH_PICTURES GL_ROOT_PATH_PHONE"/Images"
-#define GL_DOWNLOADS_PATH GL_ROOT_PATH_PHONE"/Downloads"
 #define GL_DATA_FOLDER_PATH "/opt/usr/apps/"PKGNAME_GALLERY"/data"
 
 #define GL_NAVIFRAME_OBJ_DATA_KEY "gl_naviframe_data_key"
index fb0b6ab..68e3c90 100755 (executable)
@@ -24,6 +24,7 @@ extern "C" {
 
 #include "gl-data.h"
 #include "gallery.h"
+#include <storage.h>
 
 /*     File system related String definition   */
 
@@ -257,6 +258,8 @@ int _gl_free_selected_list(void *data);
 int _gl_dlopen_imageviewer(void *data);
 int _gl_dlclose_imageviewer(void *data);
 char *_gl_get_edje_path(void);
+char *_gl_get_directory_path(int storage_directory_type);
+char *_gl_get_root_directory_path(int storage_type);
 
 #ifdef __cplusplus
 }
index d12ccef..3306d61 100644 (file)
@@ -126,13 +126,15 @@ int _gl_albums_new_process(void *data, bool b_enter)
                }
                return -1;
        }
+       char *default_images_path = _gl_get_directory_path(STORAGE_DIRECTORY_IMAGES);
+       GL_CHECK_VAL(default_images_path, -1);
        gl_sdbg("Valid album name: %s", name);
 
        /* Check whether the new folder exist */
        char new_path[GL_DIR_PATH_LEN_MAX] = { 0, };
 
        /* Make dir full new_path of new album */
-       snprintf(new_path, GL_DIR_PATH_LEN_MAX, "%s/%s", GL_DEFAULT_PATH_IMAGES,
+       snprintf(new_path, GL_DIR_PATH_LEN_MAX, "%s/%s", default_images_path,
                 name);
        gl_sdbg("New dir new_path: %s", new_path);
 #ifdef _RENAME_ALBUM_SENSITIVE
@@ -141,7 +143,7 @@ int _gl_albums_new_process(void *data, bool b_enter)
        {
                memset(new_path, 0x00, GL_DIR_PATH_LEN_MAX);
                snprintf(new_path, GL_DIR_PATH_LEN_MAX, "%s/%s",
-                        GL_DEFAULT_PATH_IMAGES, name);
+                               default_images_path, name);
                gl_sdbg("New dir new_path: %s", new_path);
                int res = gl_file_dir_is_empty(new_path);
                /**
@@ -154,9 +156,11 @@ int _gl_albums_new_process(void *data, bool b_enter)
                        gl_dbgW("New folder already exists!");
                        _gl_popup_create_local(data, GL_POPUP_NOBUT,
                                               GL_STR_ID_SAME_NAME_ALREADY_IN_USE);
+                       GL_FREE(default_images_path);
                        return -1;
                }
        }
+       GL_FREE(default_images_path);
 
        /* Save new album name */
        char *new_album = ad->albuminfo.new_name;
index 4937263..679145d 100644 (file)
@@ -166,9 +166,12 @@ static int __gl_albums_rename_process(void *data, bool b_enter)
        char parent[GL_DIR_PATH_LEN_MAX] = { 0, };
 
        if (b_root_path) {
+               char *default_images_path = _gl_get_directory_path(STORAGE_DIRECTORY_IMAGES);
+               GL_CHECK_VAL(default_images_path, -1);
                snprintf(new_path, GL_DIR_PATH_LEN_MAX, "%s/%s",
-                        GL_DEFAULT_PATH_IMAGES, name);
-               g_strlcpy(parent, GL_DEFAULT_PATH_IMAGES, GL_DIR_PATH_LEN_MAX);
+                               default_images_path, name);
+               g_strlcpy(parent, default_images_path, GL_DIR_PATH_LEN_MAX);
+               GL_FREE(default_images_path);
        } else {
                g_strlcpy(new_path, old_path, GL_DIR_PATH_LEN_MAX);
                g_strlcpy(parent, old_path, GL_DIR_PATH_LEN_MAX);
index 7c8d7d5..451a481 100644 (file)
@@ -3763,8 +3763,13 @@ static int __gl_timeline_move_copy(void *data)
                        gl_dbgE("Failed to make a new directory!");
                        goto GL_FAILED;
                }
+               char *default_images_path = _gl_get_directory_path(STORAGE_DIRECTORY_IMAGES);
+                if (!default_images_path) {
+                        goto GL_FAILED;
+                }
                snprintf(folder_fullpath, GL_DIR_PATH_LEN_MAX, "%s/%s",
-                        GL_DEFAULT_PATH_IMAGES, ad->albuminfo.new_name);
+                               default_images_path, ad->albuminfo.new_name);
+               GL_FREE(default_images_path);
        } else {
                g_strlcpy(folder_fullpath, ad->albuminfo.path,
                          GL_DIR_PATH_LEN_MAX);
index 7062be1..0a33d06 100644 (file)
@@ -30,6 +30,7 @@
 #include "gl-db-update.h"
 #include "gl-file-util.h"
 #include "gl-data-util.h"
+#include "gl-util.h"
 
 static int __gl_data_append_gitems(void *data, Eina_List *elist, int store_type,
                                    Eina_List **p_elist)
@@ -237,7 +238,8 @@ static int __gl_data_get_cluster_list(void *data, bool b_update)
                        */
                        if (default_album) {
                                /* album 'Camera' is in phone, set it before MMC album 'Camera' */
-                               if (_gl_data_check_root_type(f_data->path, GL_ROOT_PATH_PHONE)) {
+                               char *phone_root_path = _gl_get_root_directory_path(STORAGE_TYPE_INTERNAL);
+                               if (phone_root_path && _gl_data_check_root_type(f_data->path, phone_root_path)) {
                                        ad->albuminfo.elist->clist = eina_list_prepend(ad->albuminfo.elist->clist,
                                                                     gcluster);
                                } else {
@@ -246,6 +248,7 @@ static int __gl_data_get_cluster_list(void *data, bool b_update)
                                                                     default_album);
                                        default_album = gcluster;
                                }
+                               GL_FREEIF(phone_root_path);
                        } else {
                                default_album = gcluster;
                                ad->albuminfo.elist->clist = eina_list_prepend(ad->albuminfo.elist->clist,
@@ -417,7 +420,12 @@ bool _gl_data_is_default_album(const char *match_folder, gl_album_s *album)
                gl_sdbg("Parent path: %s.", parent_path);
 
                /* And parent folder is Phone root path, it's default folder */
-               return (!g_strcmp0(parent_path, GL_ROOT_PATH_PHONE));
+               char *phone_root_path = _gl_get_root_directory_path(STORAGE_TYPE_INTERNAL);
+               if (phone_root_path && !g_strcmp0(parent_path, phone_root_path)) {
+                       GL_FREE(phone_root_path);
+                       return true;
+               }
+               GL_FREEIF(phone_root_path);
        }
 
        return false;
@@ -440,7 +448,12 @@ bool _gl_data_is_screenshot_album(const char *match_folder, gl_album_s *album)
                _gl_data_util_get_file_dir_name(album->path, NULL, NULL,
                                                parent_path);
                /* And parent folder is Phone Image path, it's default folder */
-               return (!g_strcmp0(parent_path, GL_DEFAULT_PATH_PICTURES));
+               char *default_picture_path = _gl_get_directory_path(STORAGE_DIRECTORY_IMAGES);
+               if (default_picture_path && !g_strcmp0(parent_path, default_picture_path)) {
+                       GL_FREE(default_picture_path);
+                       return true;
+               }
+               GL_FREEIF(default_picture_path);
        }
 
        return false;
@@ -460,13 +473,17 @@ bool _gl_data_is_camera_album(gl_album_s *album)
                char *parent_path = (char *)calloc(1, GL_DIR_PATH_LEN_MAX);
                GL_CHECK_FALSE(parent_path);
 
-               const char *root = NULL;
+               char *root = NULL;
                if (album->type == GL_STORE_T_PHONE) {
-                       root = GL_ROOT_PATH_PHONE;
+                       root = _gl_get_root_directory_path(STORAGE_TYPE_INTERNAL);
                } else {
-                       root = GL_ROOT_PATH_MMC;
+                       root = _gl_get_root_directory_path(STORAGE_TYPE_EXTERNAL);
                }
 
+               if (!root) {
+                       GL_GFREE(parent_path);
+                       return false;
+               }
                gl_sdbg("Full path: %s", album->path);
                _gl_data_util_get_file_dir_name(album->path, NULL, NULL,
                                                parent_path);
@@ -481,6 +498,7 @@ bool _gl_data_is_camera_album(gl_album_s *album)
                bool ret = false;
                ret = !g_strcmp0(dcim_path, parent_path);
 
+               GL_GFREE(root);
                GL_GFREE(parent_path);
                GL_GFREE(dcim_path);
                return ret;
@@ -1702,12 +1720,18 @@ bool _gl_data_is_root_path(const char *path)
                return false;
        }
 
-       if (!g_strcmp0(GL_ROOT_PATH_PHONE, path) ||
-               !g_strcmp0(GL_ROOT_PATH_MMC, path)) {
+       char *phone_root_path = _gl_get_root_directory_path(STORAGE_TYPE_INTERNAL);
+       char *mmc_root_path = _gl_get_root_directory_path(STORAGE_TYPE_EXTERNAL);
+
+       if ((phone_root_path && !g_strcmp0(phone_root_path, path)) ||
+               (mmc_root_path && !g_strcmp0(mmc_root_path, path))) {
                gl_sdbg("Root path: %s", path);
+               GL_FREEIF(phone_root_path);
+               GL_FREEIF(mmc_root_path);
                return true;
        }
-
+       GL_FREEIF(phone_root_path);
+       GL_FREEIF(mmc_root_path);
        return false;
 }
 
index 3a57175..34bc85e 100644 (file)
@@ -252,7 +252,10 @@ int _gl_entry_create_view(void *data, char *name, char *title)
        /* Set callback */
        char *new_name = NULL;
        char *full_path = NULL;
-       full_path = (char *)_gl_fs_get_unique_new_album_name(GL_DEFAULT_PATH_IMAGES, GL_STR_ID_ALBUM_DEFAULT, &new_name);
+       char *default_images_path = _gl_get_directory_path(STORAGE_DIRECTORY_IMAGES);
+       GL_CHECK_VAL(default_images_path, -1);
+       full_path = (char *)_gl_fs_get_unique_new_album_name(default_images_path, GL_STR_ID_ALBUM_DEFAULT, &new_name);
+       GL_FREE(default_images_path);
        __gl_editfield_set_entry(ad, entry_ly, entry, new_name);
        elm_entry_select_all(entry);
        GL_FREEIF(new_name);
index b87448e..d490f5f 100644 (file)
@@ -26,6 +26,7 @@
 #include "gl-debug.h"
 #include "gl-thread-util.h"
 #include "gl-file-util.h"
+#include "gl-util.h"
 #include <storage.h>
 
 static int __gl_fs_free_node(gl_node_info_s *pnode)
@@ -876,9 +877,13 @@ int _gl_fs_get_default_folder(char *path)
 {
        int len = 0;
        GL_CHECK_VAL(path, -1);
+       char *phone_root_path = _gl_get_root_directory_path(STORAGE_TYPE_INTERNAL);
+       GL_CHECK_VAL(phone_root_path, -1);
 
        len = snprintf(path, GL_DIR_PATH_LEN_MAX, "%s",
-                      GL_ROOT_PATH_PHONE);
+                       phone_root_path);
+       GL_GFREEIF(phone_root_path);
+
        if (len < 0) {
                gl_dbgE("snprintf returns failure!");
                return -1;
@@ -887,14 +892,17 @@ int _gl_fs_get_default_folder(char *path)
                len = -1;
        }
 
-       len = g_strlcat(path, GL_DEFAULT_PATH_IMAGES,
+       char *default_images_path = _gl_get_directory_path(STORAGE_DIRECTORY_IMAGES);
+       GL_CHECK_VAL(default_images_path, -1);
+       len = g_strlcat(path, default_images_path,
                        GL_DIR_PATH_LEN_MAX);
+       GL_GFREEIF(default_images_path);
+
        if (len >= GL_DIR_PATH_LEN_MAX) {
                gl_dbgE("strlcat returns failure(%d)!", len);
                return -1;
        }
        gl_sdbg("Default images path: %s.", path);
-
        return 0;
 }
 
index b06edb7..93d4efe 100644 (file)
@@ -256,9 +256,12 @@ static bool _gl_check_mmc_file_selected(void *data)
                gitem = _gl_data_selected_list_get_nth(ad, i);
                /* File on MMC is selected */
                if (gitem && gitem->item && gitem->item->file_url) {
-                       on_mmc = strncmp(GL_ROOT_PATH_MMC,
+                       char *mmc_root_path = _gl_get_root_directory_path(STORAGE_TYPE_EXTERNAL);
+                       GL_CHECK_FALSE(mmc_root_path);
+                       on_mmc = strncmp(mmc_root_path,
                                         gitem->item->file_url,
-                                        strlen(GL_ROOT_PATH_MMC));
+                                        strlen(mmc_root_path));
+                       GL_FREEIF(mmc_root_path);
                        if (on_mmc == 0) {
                                return true;
                        }
@@ -614,12 +617,16 @@ bool gl_make_new_album(const char *name)
        gl_dbg("");
        char path[GL_DIR_PATH_LEN_MAX] = { 0, };
 
-       snprintf(path, GL_DIR_PATH_LEN_MAX, "%s/%s", GL_DEFAULT_PATH_IMAGES, name);
+       char *default_images_path = _gl_get_directory_path(STORAGE_DIRECTORY_IMAGES);
+       GL_CHECK_FALSE(default_images_path);
+
+       snprintf(path, GL_DIR_PATH_LEN_MAX, "%s/%s", default_images_path, name);
        path[strlen(path)] = '\0';
        gl_sdbg("Making %s directory", path);
 
-       _gl_fs_mkdir(GL_DEFAULT_PATH_IMAGES);
+       _gl_fs_mkdir(default_images_path);
        bool isSuccessful = _gl_fs_mkdir(path);
+       GL_FREE(default_images_path);
        return isSuccessful;
 }
 
@@ -667,9 +674,12 @@ int _gl_move_media_thumb(void *data, gl_item *gitem, char *new_dir_name,
                        *popup_op = GL_POPUP_OP_DUPLICATED_NAME;
                }
        } else {
+               char *default_images_path = _gl_get_directory_path(STORAGE_DIRECTORY_IMAGES);
+               GL_CHECK_VAL(default_images_path, -1);
                snprintf(new_path, GL_FILE_PATH_LEN_MAX, "%s/%s/%s",
-                        GL_DEFAULT_PATH_IMAGES, new_dir_name,
+                               default_images_path, new_dir_name,
                         (char *)(gitem->item->display_name));
+               GL_FREE(default_images_path);
        }
 
        new_path[strlen(new_path)] = '\0';
@@ -827,9 +837,12 @@ int _gl_move_media(gl_item *gitem, char *new_dir_name, bool is_full_path)
                        GL_FREE(final_path);
                }
        } else {
+               char *default_images_path = _gl_get_directory_path(STORAGE_DIRECTORY_IMAGES);
+               GL_CHECK_VAL(default_images_path, -1);
                snprintf(new_path, GL_FILE_PATH_LEN_MAX, "%s/%s/%s",
-                        GL_DEFAULT_PATH_IMAGES, new_dir_name,
+                               default_images_path, new_dir_name,
                         (char *)(gitem->item->display_name));
+               GL_FREE(default_images_path);
        }
 
        new_path[strlen(new_path)] = '\0';
@@ -922,6 +935,8 @@ int gl_check_mmc_state(void *data, char *dest_folder)
        }
 
        int on_mmc = -1;
+       char *mmc_root_path = _gl_get_root_directory_path(STORAGE_TYPE_EXTERNAL);
+       GL_CHECK_VAL(mmc_root_path, -1);
        /**
        * 1, Places: Add tag;
        * 2, Tags: Add tag/remove tag;
@@ -929,8 +944,8 @@ int gl_check_mmc_state(void *data, char *dest_folder)
        */
        /* Move files to MMC album */
        if (dest_folder) {
-               on_mmc = strncmp(GL_ROOT_PATH_MMC, dest_folder,
-                                strlen(GL_ROOT_PATH_MMC));
+               on_mmc = strncmp(mmc_root_path, dest_folder,
+                                strlen(mmc_root_path));
                if (on_mmc == 0) {
                        goto ON_MMC;
                }
@@ -944,8 +959,8 @@ int gl_check_mmc_state(void *data, char *dest_folder)
        GL_CHECK_VAL(cur_album->cluster->uuid, -1);
        g_strlcpy(src_folder_path, cur_album->cluster->path,
                  GL_DIR_PATH_LEN_MAX);
-       on_mmc = strncmp(GL_ROOT_PATH_MMC, src_folder_path,
-                        strlen(GL_ROOT_PATH_MMC));
+       on_mmc = strncmp(mmc_root_path, src_folder_path,
+                        strlen(mmc_root_path));
        /* Check MMC files selected in album [All albums] */
        if (on_mmc == 0) {
                goto ON_MMC;
@@ -955,11 +970,13 @@ int gl_check_mmc_state(void *data, char *dest_folder)
                        goto ON_MMC;
                }
        }
+       GL_FREEIF(mmc_root_path);
        return 0;
 
 ON_MMC:
        gl_dbgW("Operate medias on MMC!");
        ad->maininfo.mmc_state = GL_MMC_STATE_ADDED_MOVING;
+       GL_FREEIF(mmc_root_path);
        return 0;
 }
 
@@ -1794,8 +1811,11 @@ int gl_move_copy_to_album(void *data)
                        gl_dbgE("Failed to make a new directory!");
                        goto GL_FAILED;
                }
+               char *default_images_path = _gl_get_directory_path(STORAGE_DIRECTORY_IMAGES);
+               GL_CHECK_VAL(default_images_path, -1);
                snprintf(folder_fullpath, GL_DIR_PATH_LEN_MAX, "%s/%s",
-                        GL_DEFAULT_PATH_IMAGES, ad->albuminfo.new_name);
+                               default_images_path, ad->albuminfo.new_name);
+               GL_FREE(default_images_path);
        } else {
                g_strlcpy(folder_fullpath, ad->albuminfo.path,
                          GL_DIR_PATH_LEN_MAX);
@@ -2499,3 +2519,16 @@ char *_gl_get_edje_path(void)
        return strdup(edj_path);
 }
 
+char *_gl_get_directory_path(int storage_directory_type)
+{
+       char *path = NULL;
+       storage_get_directory(STORAGE_TYPE_INTERNAL, storage_directory_type, &path);
+       return path;
+}
+
+char *_gl_get_root_directory_path(int storage_type)
+{
+       char *path = NULL;
+       storage_get_root_directory(storage_type, &path);
+       return path;
+}