tizen 2.3 release
[apps/home/settings.git] / setting-storage / include / setting-storage.h
index 4109b0e..7c558ac 100755 (executable)
 /*
  * 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__