_gl_get_win_factor(ad->maininfo.win, &win_w, &win_h);
if ((rotate_mode == APP_DEVICE_ORIENTATION_270) ||
- (rotate_mode == APP_DEVICE_ORIENTATION_90)) {
+ (rotate_mode == APP_DEVICE_ORIENTATION_90)) {
if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_TWO) {
- items_per_row = GL_GRID_6_PER_ROW;
- } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) {
items_per_row = GL_GRID_7_PER_ROW;
+ } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) {
+ items_per_row = GL_GRID_6_PER_ROW;
} else if (ad->pinchinfo.zoom_level == GL_ZOOM_DEFAULT) {
items_per_row = GL_GRID_10_PER_ROW;
} else {
int rotate_mode = ad->maininfo.rotate_mode;
int items_per_row = 0;
if ((rotate_mode == APP_DEVICE_ORIENTATION_270) ||
- (rotate_mode == APP_DEVICE_ORIENTATION_90)) {
+ (rotate_mode == APP_DEVICE_ORIENTATION_90)) {
if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_TWO) {
- items_per_row = GL_GRID_6_PER_ROW;
- } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) {
items_per_row = GL_GRID_7_PER_ROW;
+ } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) {
+ items_per_row = GL_GRID_6_PER_ROW;
} else if (ad->pinchinfo.zoom_level == GL_ZOOM_DEFAULT) {
items_per_row = GL_GRID_10_PER_ROW;
} else {
char *style = NULL;
_gl_get_win_factor(ad->maininfo.win, &win_w, &win_h);
if (_gl_is_timeline_edit_mode(data) || _gl_is_timeline_edit_copy_mode(data)) {
- ad->pinchinfo.zoom_level = GL_ZOOM_IN_ONE;
+ ad->pinchinfo.zoom_level = GL_ZOOM_IN_TWO;
}
if ((rotate_mode == APP_DEVICE_ORIENTATION_270) ||
(rotate_mode == APP_DEVICE_ORIENTATION_90)) {
if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_TWO) {
- items_per_row = GL_GRID_6_PER_ROW;
- } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) {
items_per_row = GL_GRID_7_PER_ROW;
+ } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) {
+ items_per_row = GL_GRID_6_PER_ROW;
} else if (ad->pinchinfo.zoom_level == GL_ZOOM_DEFAULT) {
items_per_row = GL_GRID_10_PER_ROW;
} else {
elm_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
elm_scroller_single_direction_set(genlist, ELM_SCROLLER_SINGLE_DIRECTION_HARD);
+ elm_genlist_homogeneous_set(genlist, EINA_TRUE);
evas_object_event_callback_add(genlist, EVAS_CALLBACK_DEL, __gl_del_date_item, parent);
evas_object_show(genlist);
timeline_d->parent = parent;
timeline_d->nf_it = ad->ctrlinfo.nf_it;
ad->tlinfo = timeline_d;
- ad->pinchinfo.zoom_level = GL_ZOOM_IN_ONE;
+ ad->pinchinfo.zoom_level = GL_ZOOM_IN_TWO;
char *path = _gl_get_edje_path();
GL_CHECK_VAL(path, -1);
ret = preference_get_boolean(GL_LAUNCH_STATE, &launch_state);
if (ret != PREFERENCE_ERROR_NONE) {
gl_dbgE("Unable to get preference for launch State ERROR(%d)",ret);
- return false;
+ return true;
}
return launch_state;
}
appcore-efl
dlog
widget_service
+ storage
)
ADD_DEFINITIONS(${app_pkgs_CFLAGS})
#ifndef GL_WIDGET_H
#define GL_WIDGET_H
+#include <storage/storage.h>
+
typedef struct widget_data {
Evas_Object *win;
Evas_Object *layout;
char **selected_images;
int selected_count;
int images_count;
+ int mmc_id;
+ int device_id;
} _widget_data;
#define TIMER_INTERVAL 5
const char *emission, const char *source);
void _gl_widget_create_edit_btn(_widget_data* widget_data);
+static char *gl_get_folder_path(int storage_id, int directory)
+{
+ char *path = NULL;
+ if (storage_id != -1) {
+ char *path_camera = NULL;
+ storage_get_directory(storage_id, directory, &path_camera);
+ if (path_camera) {
+ path = strdup(path_camera);
+ free(path_camera);
+ } else {
+ path = strdup("");
+ }
+ } else {
+ path = strdup("");
+ }
+ return path;
+}
+
+char * _gl_get_camera_folder_path_internal(_widget_data *widget_data)
+{
+ return gl_get_folder_path(widget_data->device_id, STORAGE_DIRECTORY_CAMERA);
+}
+
+char * _gl_get_images_folder_path(_widget_data *widget_data)
+{
+ return gl_get_folder_path(widget_data->device_id, STORAGE_DIRECTORY_IMAGES);
+}
+
+char * _gl_get_camera_folder_path_external(_widget_data *widget_data)
+{
+ return gl_get_folder_path(widget_data->mmc_id, STORAGE_DIRECTORY_CAMERA);
+}
+
+char *_gl_get_downloads_folder_path(_widget_data *widget_data)
+{
+ return gl_get_folder_path(widget_data->device_id, STORAGE_DIRECTORY_DOWNLOADS);
+}
+
+
void gl_widget_win_del_cb(void *data, Evas *evas, Evas_Object *obj,
void *event_info)
{
return albumpath;
}
-static Eina_Bool gl_widget_check_default_album(char* pathInfo)
+static Eina_Bool gl_widget_check_default_album(char* pathInfo, _widget_data* widget_data)
{
if (!pathInfo) {
ErrPrint("Invalid path!!");
return EINA_FALSE;
}
- if (!strcmp("/opt/usr/media/Pictures/", path) ||
- !strcmp("/opt/usr/media/Images/", path) ||
- !strcmp("/opt/usr/media/DCIM/Camera", path) ||
- !strcmp("/opt/usr/media/Downloads/", path) ||
- !strcmp("/opt/storage/sdcard/DCIM/", path)) {
+ char * path_camera_internal = _gl_get_camera_folder_path_internal(widget_data);
+ char * path_camera_external = _gl_get_camera_folder_path_external(widget_data);
+ char * path_downloads = _gl_get_downloads_folder_path(widget_data);
+ char * path_images = _gl_get_images_folder_path(widget_data);
+
+ if (!strcmp(path_camera_internal, path) ||
+ !strcmp(path_camera_external, path) ||
+ !strcmp(path_downloads, path) ||
+ !strcmp(path_images, path)) {
+ free(path_images);
+ free(path_camera_internal);
+ free(path_camera_external);
+ free(path_downloads);
free(path);
return EINA_TRUE;
}
-
+ free(path_images);
+ free(path_camera_internal);
+ free(path_camera_external);
+ free(path_downloads);
free(path);
return EINA_FALSE;
Eina_Bool isSameAlbum = gl_widget_check_albumInfo(pathArray, arrayLength);
Eina_Bool isDefaultAlbum = false;
if (isSameAlbum) {
- isDefaultAlbum = gl_widget_check_default_album(pathArray[0]);
+ isDefaultAlbum = gl_widget_check_default_album(pathArray[0], widget_data);
}
widget_data->showAlbumDetails = isSameAlbum && !isDefaultAlbum;
widget_data->showDateDetails = gl_widget_check_dateInfo(pathArray,
_gl_widget_show_album_date_info(widget_data->selected_count, widget_data->selected_images, widget_data,
layout);
}
-// evas_object_resize(layout, w, h);
elm_win_resize_object_add(widget_data->win, layout);
evas_object_event_callback_add(widget_data->win, EVAS_CALLBACK_KEY_DOWN,
gl_widget_key_down_cb, NULL);
return data;
}
+void gl_util_to_lower(char *str) {
+ int i = 0;
+ while(str[i] != '\0') {
+ if (str[i] >= 'A' && str[i] <= 'Z') {
+ str[i] = str[i] + 32;
+ }
+ i++;
+ }
+}
+
+static void gl_callback_storage_changed_cb(int storage_id,
+ storage_dev_e dev, storage_state_e state,
+ const char *fstype, const char *fsuuid, const char *mountpath,
+ bool primary, int flags, void *user_data)
+{
+ _widget_data *widget_data = (_widget_data *)user_data;
+ DbgPrint("storage state changed");
+ if (state == STORAGE_STATE_MOUNTED) {
+ char *temp_path = strdup(mountpath);
+ gl_util_to_lower(temp_path);
+ if (strstr(temp_path, "sdcard")) {
+ widget_data->mmc_id = storage_id;
+ }
+ } else {
+ char *temp_path = strdup(mountpath);
+ gl_util_to_lower(temp_path);
+ if (strstr(temp_path, "sdcard")) {
+ widget_data->mmc_id = -1;
+ }
+ }
+}
+
+bool gl_get_supported_device_cb(int storage_id, storage_type_e type, storage_state_e state, const char *path, void *userData)
+{
+ DbgPrint("");
+ _widget_data *widget_data = (_widget_data *)userData;
+ if (type == STORAGE_TYPE_EXTERNAL) {
+ widget_data->mmc_id = storage_id;
+ return false;
+ } else if (type == STORAGE_TYPE_INTERNAL) {
+ widget_data->device_id = storage_id;
+ return false;
+ }
+
+ return true;
+}
+
+void gl_unregister_update_cb()
+{
+ int error_code = -1;
+ error_code = storage_unset_changed_cb(STORAGE_TYPE_EXTERNAL, gl_callback_storage_changed_cb);
+ if (error_code != STORAGE_ERROR_NONE) {
+ DbgPrint("storage_unset_state_changed_cb() failed!!");
+ }
+}
+
+void gl_register_update_cb(_widget_data *widget_data)
+{
+ int error_code = -1;
+
+ error_code = storage_foreach_device_supported(gl_get_supported_device_cb, widget_data);
+ if (error_code != STORAGE_ERROR_NONE) {
+ DbgPrint("storage_foreach_device_supported() failed!!");
+ }
+ storage_set_changed_cb(STORAGE_TYPE_EXTERNAL , gl_callback_storage_changed_cb, widget_data);
+ if (error_code != STORAGE_ERROR_NONE) {
+ DbgPrint("storage_set_changed_cb() failed!!");
+ }
+}
+
int widget_Create(widget_context_h context, bundle *content, int w, int h, void *data)
{
Evas_Object *win = NULL;
DbgPrint("failed to create instance");
return WIDGET_ERROR_OUT_OF_MEMORY;
}
+ widget_data->mmc_id = -1;
+ widget_data->device_id = 0;
+ gl_register_update_cb(widget_data);
char locale_path[1024];
char *res_path = app_get_resource_path();
if (!res_path) {
if (!widget_data) {
return WIDGET_ERROR_INVALID_PARAMETER;
}
+ gl_unregister_update_cb();
widget_app_context_set_tag(context, NULL);
evas_object_del(widget_data->win);