/*
* setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
*
- * Licensed under the Flora License, Version 1.1 (the License);
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://floralicense.org/license/
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
+ * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
+ *
*/
#ifndef __SETTING_STORAGE_H__
#define __SETTING_STORAGE_H__
-#include <stdio.h>
-#include <Elementary.h>
-
-#include <glib-object.h>
-
-#include <setting-common-draw-widget.h>
-#include <setting-common-view.h>
-
-#include <sys/statvfs.h>
-#include <sys/stat.h>
-#include <sys/mount.h>
-#include <dirent.h>
-#include <glib.h>
-#include <glib/gprintf.h>
-#include <sysman.h>
+#include <string.h>
#include <pthread.h>
-#include <media_content.h>
-#include <media_content_type.h>
-
-#define SUPPORT_SD_CARD_FORMAT 1
-
-#define SETTING_STORAGE_PROGRESSBAR_TIMEOUT 10
-#define SETTING_STORAGE_POPUP_TIMER 2
+#include <cairo.h>
-#define SETTING_STORAGE_MAX_STR_LEN 30
-
-#define SETTING_STORAGE_DIR_PATH_LEN_MAX 4096
-#define SETTING_STORAGE_FILE_NAME_LEN_MAX 256
-#define SETTING_STORAGE_CHILDPATH_LEN 512
-
-#define SETTING_STORAGE_KILOBYTE_VALUE 1024
-#define SETTING_STORAGE_MEGABYTE_VALUE 1048576
-#define SETTING_STORAGE_GIGABYTE_VALUE 1073741824
-
-#define SETTING_STORAGE_FORMAT_ASK_MSG "This action will erase the external storage in the phone. You will lose ALL data on the card! Format?"
-
-#define SETTING_STORAGE_SD_CARD_MOUNT_ALREADY_DESC "Already mount"
-
-#define SETTING_STORAGE_DEFAULT_STORAGE_STR "IDS_ST_BODY_DEFAULT_STORAGE"
-#define SETTING_STORAGE_INTERNAL_STORAGE_STR "IDS_ST_BODY_DEVICE_MEMORY"
-
-#define SETTING_STORAGE_AUDIO_STR "IDS_COM_BODY_AUDIO"
-
-#define SETTING_STORAGE_PICS_STR "IDS_ST_BODY_PICTURES_VIDEOS"
-#define SETTING_STORAGE_MISCES_STR "IDS_ST_BODY_MISCELLANEOUS_FILES"
-#define SETTING_STORAGE_AVAIL_STR "IDS_ST_BODY_AVAILABLE"
-#define SETTING_STORAGE_FORMAT_STR "IDS_ST_BODY_FORMAT_USB_STORAGE"
-#define SETTING_STORAGE_FORMAT_DESC_STR "Erases all data on the internal USB storage, such as music and photos"
-#define SETTING_STORAGE_MOUNT_STR "IDS_ST_BODY_MOUNT_SD_CARD"
-#define SETTING_STORAGE_INSERT_STR "IDS_ST_BODY_INSERT_SD_CARD"
+#include <Elementary.h>
+#include <dd-deviced.h>
+#include <package-manager.h>
-#define SETTING_STORAGE_APPS_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_applications.png"
-#define SETTING_STORAGE_PICS_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_pictures.png"
-#define SETTING_STORAGE_AUDIO_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_Audio.png"
-#define SETTING_STORAGE_MISCES_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_miscellaneous_files.png"
-#define SETTING_STORAGE_AVAIL_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_available.png"
+#include "setting-common-view.h"
+#include "setting-common-draw-widget.h"
+#include "setting-storage-string.h"
-#define SETTING_STORAGE_ICON_LANDSCAPE_WIDTH ((int)1200 * WIDGET_SCALE_FACTOR)
-#define SETTING_STORAGE_ICON_WIDTH ((int)640 * WIDGET_SCALE_FACTOR)
-#define SETTING_STORAGE_ICON_HEIGHT ((int)16 * WIDGET_SCALE_FACTOR)
+extern const char *storageUg_MMC_stat;
+extern const char *storageUg_ENCRYPT_stat;
-#define SETTING_STORAGE_OPT_USR_PATH "/opt/usr"
-#define SETTING_STORAGE_MMC_PATH "/opt/storage/sdcard"
-#define SETTING_STORAGE_MMC_PARENT_PATH "/opt/storage/sdcard/.."
-#define PATH1 "/opt/usr/media/.tmp_download"
-#define PATH2 "/opt/usr/media/.video-hub"
-#define PATH3 "/opt/usr/media/Camera"
-#define PATH4 "/opt/usr/media/Downloads"
-#define PATH5 "/opt/usr/media/Images"
-#define PATH6 "/opt/usr/media/Others"
-#define PATH7 "/opt/usr/media/Sounds"
-#define PATH8 "/opt/usr/media/Videos"
-#define PATH9 "/opt/usr/media/lost+found"
+#define SETTING_STORAGE_PIE_RECT_OFFSET (36 * WIDGET_SCALE_FACTOR)
+#define SETTING_STORAGE_DEFAULT_STORAGE_APP_DESP_SIZE (240 * WIDGET_SCALE_FACTOR)
-enum {
- SETTING_STORAGE_SYSMAN_REQUEST_MOUNT_ALREADY = -2,
- SETTING_STORAGE_SYSMAN_REQUEST_SUCCESS = 0
-};
+#define SETTING_STORAGE_POPUP_TIMER 2
+#define SETTING_STORAGE_PROGRESSBAR_TIMEOUT 10
-typedef enum {
- SETTING_STORAGE_SLEEP = -1,
- SETTING_STORAGE_REUPDATE = 0,
- SETTING_STORAGE_PICTURES_VIDEO = 1,
- SETTING_STORAGE_AUDIO,
- SETTING_STORAGE_MISCELLANEOUS,
- SETTING_STORAGE_APPLICATIONS,
- SETTING_STORAGE_MAX,
-} update_type;
-typedef void (*setting_storage_mmc_cb) (int val, void *data);
+#define SAFE_STRDUP(src) (src)?strdup(src):NULL
typedef struct _Setting_Storage_Status {
double dTotal;
double dAvail;
} Setting_Storage_Status;
-typedef struct _Node_Info Node_Info;
-struct _Node_Info {
- char *path;
- char *name;
- void *data;
-};
-typedef struct _app_info_t {
- char *pkg_name;
- char *pkg_type;
- int total_size;
-} App_Info;
+typedef struct _SettingStorageUG SettingStorageUG;
+
+typedef struct
+{
+ pthread_t tid;
-typedef struct _update_info_t {
- double total_size;
- update_type type;
-} Update_Info;
+ double video_total;
+ double audio_total;
+ double misces_total;
-typedef struct _SettingStorageUG SettingStorageUG;
+ SettingStorageUG *ad;
+}storageUg_worker_data;
-/**
- * Setting Storage UG context
- * all UG function has void* as an agument. this is casted back to SettingStorageUG
- * and the functions access app context.
- */
struct _SettingStorageUG {
ui_gadget_h ug;
- /* add more variables here (move your appdata to here) */
- Evas *evas;
- Evas_Object *win_main_layout;
- Evas_Object *win_get;
+ setting_view *main_view;
+ setting_view *default_view;
+ setting_view *misces_view;
- Evas_Object *ly_main;
+ Evas_Object *win;
+ Evas_Object *lo_parent;
+ Evas_Object *navi;
- Evas_Object *genlist;
- Evas_Object *navibar;
+ Evas_Object *lo_main;
+ Evas_Object *gl_main;
/* storage setting */
Evas_Object *popup;
Elm_Genlist_Item_Class itc_2text_3_parent;
Elm_Genlist_Item_Class itc_1icon_1text_sub;
- Elm_Genlist_Item_Class itc_1text_1icon_2;
Elm_Genlist_Item_Class itc_2text_2;
Elm_Genlist_Item_Class itc_group_item;
- Elm_Genlist_Item_Class itc_bg_1icon;
- Elm_Genlist_Item_Class itc_seperator;
Elm_Genlist_Item_Class itc_2text_1icon_3;
Elm_Genlist_Item_Class itc_1text;
- Elm_Genlist_Item_Class itc_2text_1icon_4;
Elm_Genlist_Item_Class itc_1text_1icon;
-
- Setting_Storage_Status internal_status;
- Setting_Storage_Status apps_status;
- Setting_Storage_Status pics_videos_status;
- Setting_Storage_Status audio_status;
- Setting_Storage_Status others_status;
-
- Setting_GenGroupItem_Data *internal;
+ Elm_Genlist_Item_Class itc_pie;
+ Elm_Genlist_Item_Class itc_notice;
+ Elm_Genlist_Item_Class itc_color_item;
+
+ double sz_inter_total;
+ double sz_inter_avail;
+ double sz_sys;
+ double sz_apps;
+ double sz_pics_videos;
+ double sz_audio;
+ double sz_misces;
+
+ Setting_GenGroupItem_Data *total_space;
+ Setting_GenGroupItem_Data *sys_mem;
Setting_GenGroupItem_Data *apps;
Setting_GenGroupItem_Data *pics_videos;
Setting_GenGroupItem_Data *audio;
- Setting_GenGroupItem_Data *others;
+ Setting_GenGroupItem_Data *misces;
Setting_GenGroupItem_Data *avail;
+ pkgmgr_client *pc;
+ /* pie sub_layout*/
+ Elm_Object_Item *pie_it;
+ cairo_t *cr;
+
+ Setting_GenGroupItem_Data *sd_card;
Setting_GenGroupItem_Data *sd_mount;
Setting_GenGroupItem_Data *sd_total;
- Setting_GenGroupItem_Data *sd_available;
-#if SUPPORT_SD_CARD_FORMAT
+ Setting_GenGroupItem_Data *sd_avail;
Setting_GenGroupItem_Data *sd_format;
-#endif
- struct mmc_contents *mmc_content;
+ struct mmc_contents mmc_content;
+ int sd_request;
- /* default storage */
-#if DISABLED_CODE
- Setting_GenGroupItem_Data *data_wap;
-#endif
- Setting_GenGroupItem_Data *data_bt;
- Setting_GenGroupItem_Data *data_cmr;
- Setting_GenGroupItem_Data *data_vrec;
-#if DISABLED_CODE
- Setting_GenGroupItem_Data *data_rdo;
- Setting_GenGroupItem_Data *data_dvb_h;
-#endif
- Setting_Done_List_Data miscellaneous_list; /* miscellaneous files list */
- Eina_Bool back_from_misc; /* if true, means back from miscellaneous view*/
-
- Ecore_Pipe *pipe;
- Eina_Bool exit_flag;
- update_type type;
- pthread_t tid;
- double total_size;
+ /* usb otg storage */
+ Setting_GenGroupItem_Data *usb_card;
+ Setting_GenGroupItem_Data *usb_mount;
+ Setting_GenGroupItem_Data *usb_total;
+ Setting_GenGroupItem_Data *usb_available;
+ Setting_GenGroupItem_Data *usb_unmount;
+ Setting_GenGroupItem_Data *usb_format;
+ Elm_Object_Item *usb_sep_item;
- pthread_mutex_t exit_mutex;
- pthread_mutex_t update_mutex;
- pthread_cond_t wait_cond;
+ int usb_otg_status;
+ int usb_request;
+ char *usb_otg_path;
- Eina_List *files_list;
- Evas_Object *popup_progressbar;
- Ecore_Timer *timer;
-};
+ void *size_worker;
-extern setting_view setting_view_storage_main;
-extern setting_view setting_view_storage_default_storage;
-extern setting_view setting_view_storage_miscellaneous_files;
+ Ecore_Idler *update_idler;
+ Ecore_Timer *update_timer;
+
+ /* default storage */
+ Setting_GenGroupItem_Data *data_bt;
+ Setting_GenGroupItem_Data *data_nfc;
+ Setting_GenGroupItem_Data *data_wifidirect;
+ Setting_GenGroupItem_Data *data_installapp;
+
+ /* miscellaneous files list */
+ Elm_Object_Item *misces_navi_it;
+ Evas_Object *gl_misces;
+ Evas_Object *misces_lo_noitem;
+ Eina_Bool misces_is_select_all;
+ Eina_List *misces_list;
+ Eina_List *misces_sel_list;
+ int misces_sz_all;
+ int misces_checked;
+ void *del_worker;
+ Evas_Object *select_all_layout;
+ Evas_Object *title_left_btn;
+ Evas_Object *title_right_btn;
+
+ int mmc_status;
+};
-#endif /* __SETTING_STORAGE_H__ */
+#endif //__SETTING_STORAGE_H__