Refactor ode application 12/116012/9
authoryeji01kim <yeji01.kim@samsung.com>
Wed, 22 Feb 2017 10:17:08 +0000 (19:17 +0900)
committerSungbae Yoo <sungbae.yoo@samsung.com>
Fri, 24 Feb 2017 08:55:01 +0000 (17:55 +0900)
Change-Id: I6083137d4712f5d97a7b527c3ab63948499327c9
Signed-off-by: yeji01kim <yeji01.kim@samsung.com>
23 files changed:
tools/apps/ode/CMakeLists.txt
tools/apps/ode/include/ode-app.h
tools/apps/ode/res/edc_resource/encryption_device.edc [changed mode: 0644->0755]
tools/apps/ode/src/battery.c [new file with mode: 0755]
tools/apps/ode/src/external-decrypt/confirm.c [new file with mode: 0755]
tools/apps/ode/src/external-decrypt/main.c [new file with mode: 0755]
tools/apps/ode/src/external-encrypt/check.c [new file with mode: 0755]
tools/apps/ode/src/external-encrypt/confirm.c [new file with mode: 0755]
tools/apps/ode/src/external-encrypt/main.c [new file with mode: 0755]
tools/apps/ode/src/internal-decrypt/confirm.c [new file with mode: 0755]
tools/apps/ode/src/internal-decrypt/main.c [new file with mode: 0755]
tools/apps/ode/src/internal-encrypt/check.c [new file with mode: 0755]
tools/apps/ode/src/internal-encrypt/confirm.c [new file with mode: 0755]
tools/apps/ode/src/internal-encrypt/main.c [new file with mode: 0755]
tools/apps/ode/src/locktype.c [new file with mode: 0755]
tools/apps/ode/src/ode-app-common.c [new file with mode: 0755]
tools/apps/ode/src/ode-app-confirm.c [deleted file]
tools/apps/ode/src/ode-app-main.c [deleted file]
tools/apps/ode/src/ode-app.c
tools/apps/ode/src/password/confirm-popup.c
tools/apps/ode/src/password/entry-popup.c
tools/apps/ode/src/password/password.c
tools/apps/ode/src/sdcard.c [new file with mode: 0755]

index 1d621d28be3b21bd5ea2e149edb80f3491d4b07b..7ac6c1286d22ceb03ad88492e8054755db64010b 100755 (executable)
@@ -17,15 +17,27 @@ LINK_DIRECTORIES(${EFL_APP_LIBRARY_DIRS} ${tools_pkgs_LIBRARY_DIRS})
 SET(PKG_NAME "${ODE_TARGET}")
 SET(PKG_SRC ./src/ode-app.c
                        ./src/ode-app-widget.c
-                       ./src/ode-app-main.c
-                       ./src/ode-app-confirm.c
+                       ./src/ode-app-common.c
                        ./src/ode-app-progress.c
                        ./src/insert-sdcard.c
                        ./src/reset-sdcard.c
+                       ./src/battery.c
+                       ./src/locktype.c
+                       ./src/sdcard.c
                        ./src/password/password.c
                        ./src/password/message-popup.c
                        ./src/password/confirm-popup.c
-                       ./src/password/entry-popup.c)
+                       ./src/password/entry-popup.c
+                       ./src/internal-encrypt/main.c
+                       ./src/internal-encrypt/check.c
+                       ./src/internal-encrypt/confirm.c
+                       ./src/internal-decrypt/main.c
+                       ./src/internal-decrypt/confirm.c
+                       ./src/external-encrypt/main.c
+                       ./src/external-encrypt/check.c
+                       ./src/external-encrypt/confirm.c
+                       ./src/external-decrypt/main.c
+                       ./src/external-decrypt/confirm.c)
 
 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
index 779bd7c4c8dd83c3658b74f574d08c797f3f1de8..4bb5699365821d1776340ef7850038ffb45f9e10 100755 (executable)
@@ -48,7 +48,7 @@
 #define PACKAGE "org.tizen.ode"
 #endif
 
-typedef struct dpm_encryption_info {
+typedef struct ode_encryption_info {
        int battery_status;
        int charger_status;
        int locktype_status;
@@ -60,7 +60,7 @@ typedef struct dpm_encryption_info {
 
        char* sdcard_pw;
        Evas_Object *next_button;
-} dpm_encryption_info_s;
+} ode_encryption_info_s;
 
 typedef enum {
        ENCRYPT_DEVICE,
@@ -68,12 +68,12 @@ typedef enum {
        ENCRYPT_SD_CARD,
        DECRYPT_SD_CARD,
        SD_CARD_PASSWORD,
-} dpm_encryption_viewtype;
+} ode_viewtype;
 
 typedef enum {
        ICON_CHECK,
        ICON_BAR,
-} dpm_encryption_icontype;
+} ode_icontype;
 
 typedef struct appdata {
        Evas_Object* win;
@@ -81,9 +81,9 @@ typedef struct appdata {
        Evas_Object* nf;
        Evas_Object* base;
        Evas_Object* navi_bar;
-       Evas_Object* dpm_encryption_layout;
+       Evas_Object* encryption_layout;
        Evas_Object* sdcard_pw_layout;
-       dpm_encryption_info_s device_info;
+       ode_encryption_info_s device_info;
 
        char* edj_path;
        char* icon_check_path;
@@ -102,12 +102,19 @@ typedef struct appdata {
 #define SUB_TITLE_STYLE_W "DEFAULT='font=Tizen:style=Regular font_size=40 color=#ffffff wrap=mixed align=center'"
 #define SUB_CONTENT_STYLE_W "DEFAULT='font=Tizen:style=Regular font_size=32 color=#ffffff wrap=mixed align=center'"
 
+#define APP_SETTING_LOCKTYPE "org.tizen.setting-locktype"
+#define APP_SETTING_PASSWORD "org.tizen.setting-password"
+#define APP_ODE_PASSWORD "org.tizen.ode-password"
+
+#define sdcard_option_num 2
+
 void ode_encrypt_device_create_view(appdata_s* ad);
-void ode_check_encrypt_device_create_view(appdata_s* ad);
 void ode_encrypt_sd_card_create_view(appdata_s* ad);
 void ode_decrypt_sd_card_create_view(appdata_s* ad);
 
 void ode_confirm_encrypt_device_create_view(appdata_s* ad);
+void ode_confirm_decrypt_device_create_view(appdata_s *ad);
+void ode_check_decrypt_device_create_view(appdata_s *ad);
 void ode_check_encrypt_sd_card_create_view(appdata_s* ad);
 void ode_confirm_encrypt_sd_card_create_view(appdata_s* ad);
 void ode_confirm_decrypt_sd_card_create_view(appdata_s* ad);
@@ -119,4 +126,30 @@ void battery_changed_cb(device_callback_e type, void* value, void* user_data);
 void create_base_window();
 void create_progress_view(const char *type, const char *target);
 
+void set_next_btn(Evas_Object *layout, const char* edj_path, const char *btn_text, Evas_Smart_Cb callback, const void* data);
+void set_icon(appdata_s *ad, int type, char *part);
+void set_two_btn(Evas_Object *layout, appdata_s *ad, Evas_Smart_Cb callback, const void* data);
+
+void _prev_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void sw_back_btn_set(Evas_Object *obj, const char *title_label, Evas_Object *content);
+void set_confirm_two_btn(Evas_Object *layout, const char *edj_path, int text_idx, Evas_Smart_Cb callback, const void* data);
+void ode_check_encrypt_device_create_view(appdata_s *ad);
+
+/* battery */
+int battery_icon_status_update(appdata_s *ad);
+int battery_cb_register(runtime_info_changed_cb charger_callback, device_changed_cb capacity_callback, void *user_data);
+
+void enc_battery_changed_cb(device_callback_e type, void *value, void *user_data);
+
+/* locktype */
+void new_launch_locktype_ug(void);
+int locktype_cb_register(vconf_callback_fn callback, void* user_data);
+int locktype_icon_status_update(appdata_s *ad);
+
+/* sdcard */
+int sdcard_icon_status_update(appdata_s *ad);
+int sdcard_cb_register(vconf_callback_fn callback, void* user_data);
+
+void set_change_pw_btn(Evas_Object *layout, const char *edj_path, const char *btn_text, Evas_Smart_Cb callback, const void* data);
+
 #endif                                                 /* __ODE_H__ */
diff --git a/tools/apps/ode/src/battery.c b/tools/apps/ode/src/battery.c
new file mode 100755 (executable)
index 0000000..135638d
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * Tizen ODE application
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+
+int battery_icon_status_update(appdata_s *ad)
+{
+       bool connected;
+       int battery_pct, ret;
+       dlog_print(DLOG_DEBUG, LOG_TAG, "battery_icon_status_update start ");
+
+       if (ad->encryption_layout == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "encrypt layout is null");
+               return -1;
+       }
+
+       /* get battery percent info */
+       ret = device_battery_get_percent(&battery_pct);
+       if (ret != DEVICE_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "device_battery_get_percent failed %d", ret);
+               return -1;
+       }
+
+       if (battery_pct > NEEDED_BATTERY_PERCENT) {
+               set_icon(ad, ICON_CHECK, "battery_icon");
+               ad->device_info.battery_status = 1;
+       } else {
+               set_icon(ad, ICON_BAR, "battery_icon");
+               ad->device_info.battery_status = 0;
+       }
+
+       /* get charger connected info */
+       ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_CHARGER_CONNECTED, &connected);
+       if (ret != RUNTIME_INFO_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "get runtime info fail");
+               return -1;
+       }
+       if (connected) {
+               set_icon(ad, ICON_CHECK, "charge_icon");
+               ad->device_info.charger_status = 1;
+       } else {
+               set_icon(ad, ICON_BAR, "charge_icon");
+               ad->device_info.charger_status = 0;
+       }
+
+       return 0;
+}
+
+int battery_cb_register(runtime_info_changed_cb charger_callback, device_changed_cb capacity_callback, void *user_data)
+{
+       int ret;
+
+       /* register runtime callback : connected charger */
+       ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_CHARGER_CONNECTED, charger_callback, user_data);
+       if (ret != RUNTIME_INFO_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "runtime_info_set_changed_cb failed: %d", ret);
+               return -1;
+       }
+
+       /* register runtime callback : battery percent */
+       ret = device_add_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, capacity_callback, user_data);
+       if (ret != DEVICE_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "device_add_callback failed: %d", ret);
+               return -1;
+       }
+
+       return 0;
+}
+
diff --git a/tools/apps/ode/src/external-decrypt/confirm.c b/tools/apps/ode/src/external-decrypt/confirm.c
new file mode 100755 (executable)
index 0000000..448066a
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+#include "ode-password.h"
+#include <ode/external-encryption.h>
+
+static void _external_decrypt_confirm_next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s *ad = (appdata_s *) data;
+       int ret;
+
+       create_base_window();
+       create_progress_view("Decrypting", "External");
+       ret = ode_external_encryption_decrypt(ad->entry_data);
+       if (ret != 0) {
+               dlog_print(DLOG_DEBUG, LOG_TAG, "external decryption failed");
+       }
+}
+
+void ode_confirm_decrypt_sd_card_create_view(appdata_s *ad)
+{
+       Evas_Object *naviframe = ad->navi_bar;
+       Evas_Object *base_layout = NULL;
+       Evas_Object *confirm_msg = NULL;
+       Evas_Object *confirm_layout = NULL;
+
+       dlog_print(DLOG_DEBUG, LOG_TAG, "start ode_confirm_decrypt_sd_card_create_view");
+
+       char string[PATH_MAX] = "";
+       char *confirm_text[] = {
+               "IDS_ST_BODY_TAP_ENCRYPT_SD_CARD_TO_START_THE_ENCRYPTION_PROCESS",
+               "IDS_ST_BODY_ALL_OPEN_FILES_ON_SD_CARD_WILL_BE_CLOSED",
+               "IDS_ST_BODY_THE_DECRYPTION_CANT_BE_CANCELLED_AND_DATA_WILL_BE_LOST_IF_THE_PROCESS_IS_INTERRUPTED_MSG"
+       };
+
+       if (naviframe == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "naviframe is null");
+               return;
+       }
+
+       base_layout = ode_create_layout(naviframe, ad->edj_path, "base_layout");
+       confirm_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_confirm_layout");
+
+       snprintf(string, sizeof(string), "%s<br><br>%s%s", __(confirm_text[0]), __(confirm_text[1]), __(confirm_text[2]));
+       confirm_msg = ode_create_textblock(confirm_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(confirm_layout, "msg_content", confirm_msg);
+
+       elm_object_part_content_set(base_layout, "content_layout", confirm_layout);
+       set_confirm_two_btn(base_layout, ad->edj_path, 2, _external_decrypt_confirm_next_btn_clicked_cb, ad);
+       elm_naviframe_item_push(naviframe, __("IDS_ST_HEADER_DECRYPT_SD_CARD"), NULL, NULL, base_layout, NULL);
+}
diff --git a/tools/apps/ode/src/external-decrypt/main.c b/tools/apps/ode/src/external-decrypt/main.c
new file mode 100755 (executable)
index 0000000..1ed0f4b
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+#include "ode-password.h"
+
+void _external_decrypt_next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       dlog_print(DLOG_DEBUG, LOG_TAG, "_external_decrypt_next_btn_clicked_cb start");
+       appdata_s *ad = (appdata_s *) data;
+       ode_confirm_decrypt_sd_card_create_view(ad);
+}
+
+static void _change_pw_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       dlog_print(DLOG_INFO, LOG_TAG, "change password button click");
+       appdata_s *ad = (appdata_s *)data;
+       on_change_password_popup(ad->base);
+       password_popup_set_result_callback(NULL, ad);
+}
+
+void ode_decrypt_sd_card_create_view(appdata_s *ad)
+{
+       Evas_Object *navi_bar = ad->navi_bar;
+       Evas_Object *base_layout = NULL;
+       Evas_Object *encrypt_msg = NULL;
+       Evas_Object *decrypt_sd_card_layout = NULL;
+
+       char string[PATH_MAX] = "";
+
+       char *encrypt_text[] = {
+               "IDS_ST_BODY_THE_DECRYPTION_PROCESS_MAY_TAKE_A_LONG_TIME_MSG"
+       };
+
+       if (navi_bar == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "navi_bar is null");
+               ui_app_exit();
+       }
+
+       base_layout = ode_create_layout(navi_bar, ad->edj_path, "base_layout");
+       decrypt_sd_card_layout = ode_create_layout(base_layout, ad->edj_path, "decrypt_sdcard_layout");
+       ad->encryption_layout = decrypt_sd_card_layout;
+
+       snprintf(string, sizeof(string), "%s", __(encrypt_text[0]));
+       encrypt_msg = ode_create_textblock(decrypt_sd_card_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(decrypt_sd_card_layout, "msg_content", encrypt_msg);
+
+       set_change_pw_btn(decrypt_sd_card_layout, ad->edj_path, __("IDS_ST_BUTTON_CHANGE_PASSWORD_ABB2"), _change_pw_btn_clicked_cb, ad);
+       set_next_btn(base_layout, ad->edj_path, __("IDS_ST_BUTTON_NEXT"), _external_decrypt_next_btn_clicked_cb, ad);
+
+       elm_object_part_content_set(base_layout, "content_layout", decrypt_sd_card_layout);
+
+       snprintf(string, sizeof(string), "%s", __("IDS_ST_HEADER_DECRYPT_SD_CARD"));
+       sw_back_btn_set(navi_bar, string, base_layout);
+}
diff --git a/tools/apps/ode/src/external-encrypt/check.c b/tools/apps/ode/src/external-encrypt/check.c
new file mode 100755 (executable)
index 0000000..fd4cbd1
--- /dev/null
@@ -0,0 +1,207 @@
+/*
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+#include "ode-password.h"
+
+static void update_sdcard_pw_btn_status(void *data);
+
+
+static void _external_encrypt_check_next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       dlog_print(DLOG_DEBUG, LOG_TAG, "_check_next_btn_clicked_cb start");
+
+       appdata_s *ad = (appdata_s *) data;
+       ode_confirm_encrypt_sd_card_create_view(ad);
+}
+
+
+static void update_external_encrypt_next_button_status(appdata_s *ad)
+{
+       dlog_print(DLOG_DEBUG, LOG_TAG, "update_next_button_status start");
+       if (ad->device_info.next_button == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "[Encrypt Device] next button is null");
+               return;
+       }
+
+       if (ad->device_info.sdcard_status && ad->device_info.sdcard_pw_status == 1) {
+               elm_object_disabled_set(ad->device_info.next_button, EINA_FALSE);
+       } else {
+               elm_object_disabled_set(ad->device_info.next_button, EINA_TRUE);
+       }
+}
+
+void sdcard_status_changed_cb(keynode_t *node, void *data)
+{
+       appdata_s *ad = (appdata_s *) data;
+       sdcard_icon_status_update(ad);
+       update_external_encrypt_next_button_status(ad);
+}
+
+static void _sdcardpw_create_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       dlog_print(DLOG_ERROR, LOG_TAG, "sdcardpw create btn cb start");
+       appdata_s *ad = (appdata_s *)data;
+
+       on_create_password_popup(ad->base);
+       password_popup_set_result_callback(update_sdcard_pw_btn_status, ad);
+}
+
+static void _sdcardpw_change_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       dlog_print(DLOG_ERROR, LOG_TAG, "sdcardpw change btn cb start");
+       appdata_s *ad = (appdata_s *)data;
+
+       on_change_password_popup(ad->base);
+       password_popup_set_result_callback(update_sdcard_pw_btn_status, ad);
+}
+
+static void _sdcardpw_delete_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       dlog_print(DLOG_ERROR, LOG_TAG, "sdcardpw delete btn cb start");
+       appdata_s *ad = (appdata_s *)data;
+
+       on_delete_password_popup(ad->base);
+       password_popup_set_result_callback(update_sdcard_pw_btn_status, ad);
+}
+
+static void update_sdcard_pw_btn_status(void *data)
+{
+       Evas_Object *one_btn_layout, *two_btn_layout;
+       Evas_Object *createpw_btn, *changepw_btn, *deletepw_btn;
+       appdata_s *ad = (appdata_s *)data;
+
+       char *btn_text[] = {
+               "IDS_ST_BUTTON_CREATE_PASSWORD",
+               "IDS_ST_BUTTON_CHANGE_PW_ABB",
+               "IDS_ST_BUTTON_DELETE_PW_ABB",
+       };
+
+       if (ad->device_info.sdcard_pw_status == 0) {
+               /* set create pw button */
+               one_btn_layout = ode_create_layout(ad->encryption_layout, ad->edj_path, "one_button_layout");
+               createpw_btn = ode_create_button(one_btn_layout, __(btn_text[0]), "default");
+               elm_object_part_content_set(one_btn_layout, "button_base", createpw_btn);
+               evas_object_smart_callback_add(createpw_btn, "clicked", _sdcardpw_create_btn_clicked_cb, ad);
+               elm_object_part_content_set(ad->encryption_layout, "button_base", one_btn_layout);
+               set_icon(ad, ICON_BAR, "charge_icon");
+       } else if (ad->device_info.sdcard_pw_status == 1) {
+               /* set change pw / delete pw button */
+               two_btn_layout = ode_create_layout(ad->encryption_layout, ad->edj_path, "two_button_layout");
+               changepw_btn = ode_create_button(two_btn_layout, __(btn_text[1]), "default");
+               deletepw_btn = ode_create_button(two_btn_layout, __(btn_text[2]), "default");
+               elm_object_part_content_set(two_btn_layout, "prev_button", changepw_btn);
+               elm_object_part_content_set(two_btn_layout, "next_button", deletepw_btn);
+               evas_object_smart_callback_add(changepw_btn, "clicked", _sdcardpw_change_btn_clicked_cb, ad);
+               evas_object_smart_callback_add(deletepw_btn, "clicked", _sdcardpw_delete_btn_clicked_cb, ad);
+               elm_object_part_content_set(ad->encryption_layout, "button_base", two_btn_layout);
+               set_icon(ad, ICON_CHECK, "charge_icon");
+       }
+       update_external_encrypt_next_button_status(ad);
+       return;
+}
+
+static Eina_Bool external_encrypt_check_view_pop_cb(void *data, Elm_Object_Item *it)
+{
+       int ret;
+
+       ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_MMC_STATUS, sdcard_status_changed_cb);
+       if (ret != 0)
+               dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister sdcard callback");
+
+       return EINA_TRUE;
+}
+
+void ode_check_encrypt_sd_card_create_view(appdata_s *ad)
+{
+       Evas_Object *navi_bar = ad->navi_bar;
+       Evas_Object *base_layout = NULL;
+       Evas_Object *check_msg = NULL;
+       Evas_Object *encryption_check_layout = NULL;
+       Evas_Object *genlist = NULL;
+       Elm_Object_Item *item;
+       Elm_Genlist_Item_Class *itc;
+
+       dlog_print(DLOG_DEBUG, LOG_TAG, "start ode_check_encrypt_sd_card_create_view");
+       char string[PATH_MAX] = "";
+       char *check_text[] = {
+               "IDS_ST_BODY_THE_ENCRYPTION_PROCESS_MAY_TAKE_A_LONG_TIME_DEPENDING_ON_THE_AMOUNT_OF_DATA_MSG",
+               "IDS_ST_BODY_MAKE_SURE_THAT_THE_BATTERY_IS_CHARGED_AND_KEEP_THE_PHONE_PLUGGED_IN_UNTIL_ENCRYPTION_IS_COMPLETE",
+               "IDS_ST_BODY_TO_ENCRYPT_YOUR_SD_CARD_C",
+       };
+
+       char *status_text[] = {
+               "IDS_ST_BODY_INSERT_THE_SD_CARD_ABB",
+               "IDS_ST_BODY_CREATE_AN_SD_CARD_PASSWORD"
+       };
+
+       int ret;
+       if (navi_bar == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "navi_bar is null");
+               return;
+       }
+
+       base_layout = ode_create_layout(navi_bar, ad->edj_path, "base_layout");
+       encryption_check_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_check_layout");
+       ad->encryption_layout = encryption_check_layout;
+
+       snprintf(string, sizeof(string), "%s</br>%s", __(check_text[0]), __(check_text[1]));
+       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(encryption_check_layout, "msg_content", check_msg);
+
+       /* add group index */
+       genlist = elm_genlist_add(encryption_check_layout);
+       elm_object_style_set(genlist, "solid/default");
+       elm_layout_content_set(encryption_check_layout, "genlist_base", genlist);
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+
+       itc =  ode_create_genlist_item_class("group_index", ode_group_text_get, NULL);
+       ode_append_genlist_item(genlist, itc, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, check_text[2]);
+
+       set_two_btn(base_layout, ad, _external_encrypt_check_next_btn_clicked_cb, ad);
+
+       /* get sdcard info */
+       ret = sdcard_icon_status_update(ad);
+       if (ret != 0) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "sdcard_status_update failed");
+               return;
+       }
+
+       /* register vconf notify callback : sdcard status */
+       ret = sdcard_cb_register(sdcard_status_changed_cb, ad);
+       if (ret != 0) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "locktype_cb_register failed");
+               return;
+       }
+
+       snprintf(string, sizeof(string), "%s", __(status_text[0]));
+       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(encryption_check_layout, "battery_text", check_msg);
+
+       update_sdcard_pw_btn_status(ad);
+
+       snprintf(string, sizeof(string), "%s", __(status_text[1]));
+       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(encryption_check_layout, "charge_text", check_msg);
+       elm_object_part_content_set(base_layout, "content_layout", encryption_check_layout);
+
+       /* set bottom button */
+       item = elm_naviframe_item_push(navi_bar, __("IDS_ST_HEADER_ENCRYPT_SD_CARD"), NULL, NULL, base_layout, NULL);
+       elm_naviframe_item_pop_cb_set(item, external_encrypt_check_view_pop_cb, ad);
+}
+
diff --git a/tools/apps/ode/src/external-encrypt/confirm.c b/tools/apps/ode/src/external-encrypt/confirm.c
new file mode 100755 (executable)
index 0000000..c4a15cd
--- /dev/null
@@ -0,0 +1,158 @@
+/*
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+#include "ode-password.h"
+#include <ode/external-encryption.h>
+
+static int sdcard_option_selected = 0;
+
+static void _external_encrypt_confirm_next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s *ad = (appdata_s *) data;
+       int ret;
+
+       create_base_window();
+       create_progress_view("Encrypting", "External");
+       ret = ode_external_encryption_encrypt(ad->entry_data, 0);
+       if (ret != 0) {
+               dlog_print(DLOG_DEBUG, LOG_TAG, "external encryption failed");
+       }
+}
+
+static char *sd_confirm_multiline_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       char *genlist_text[2][2] = {
+               {
+                       "IDS_ST_MBODY_ENCRYPT_ALL_FILES",
+                       "IDS_ST_SBODY_ENCRYPT_ALL_FILES_SAVED_ON_THE_SD_CARD_NEW_FILES_WILL_ALSO_BE_ENCRYPTED"
+               },
+               {
+                       "IDS_ST_MBODY_ENCRYPT_NEW_FILES",
+                       "IDS_ST_BODY_ENCRYPT_ALL_NEW_FILES_SAVED_ON_THIS_SD_CARD_EXISTING_FILES_WILL_NOT_BE_ENCRYPTED"
+               }
+       };
+
+       char **text = genlist_text[(intptr_t)data];
+
+       if (!strcmp(part, "elm.text"))
+               return strdup(__(text[0]));
+       else if (!strcmp(part, "elm.text.multiline"))
+               return strdup(__(text[1]));
+       return NULL;
+}
+
+void radio_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       dlog_print(DLOG_INFO, LOG_TAG, "The value has changed %d\n", (intptr_t)data);
+       sdcard_option_selected = (intptr_t)data;
+
+       dlog_print(DLOG_INFO, LOG_TAG, "sdcard_option_selected is  %d\n", sdcard_option_selected);
+}
+
+static Evas_Object *sd_confirm_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       static Evas_Object *group = NULL;
+       int idx = (intptr_t)data;
+
+       if (!strcmp(part, "elm.swallow.end")) {
+               if (idx == 0) {
+                       dlog_print(DLOG_DEBUG, LOG_TAG, "radio group null");
+                       group = elm_radio_add(obj);
+                       elm_radio_state_value_set(group, 0);
+                       elm_radio_value_set(group, 0);
+               }
+
+               dlog_print(DLOG_DEBUG, LOG_TAG, "radio group not null");
+               Evas_Object *radio = elm_radio_add(obj);
+               elm_radio_state_value_set(radio, idx);
+
+               if (idx == sdcard_option_selected) {
+                       elm_radio_state_value_set(radio, idx);
+               }
+
+               elm_radio_group_add(radio, group);
+               evas_object_propagate_events_set(radio, EINA_FALSE);
+               evas_object_repeat_events_set(radio, EINA_FALSE);
+
+               evas_object_smart_callback_add(radio, "changed", radio_changed_cb, data);
+               return radio;
+       }
+       return NULL;
+}
+
+static Eina_Bool sdcard_encrypt_view_pop_cb(void *data, Elm_Object_Item *it)
+{
+       sdcard_option_selected = 0;
+       return EINA_TRUE;
+}
+
+void ode_confirm_encrypt_sd_card_create_view(appdata_s *ad)
+{
+       Evas_Object *naviframe = ad->navi_bar;
+       Evas_Object *base_layout = NULL;
+       Evas_Object *confirm_msg = NULL;
+       Evas_Object *confirm_layout = NULL;
+
+       Evas_Object *genlist = NULL;
+       Elm_Genlist_Item_Class *itc;
+       Elm_Object_Item *item;
+
+       dlog_print(DLOG_DEBUG, LOG_TAG, "start ode_confirm_encrypt_sd_card_create_view");
+
+       char string[PATH_MAX] = "";
+       char *confirm_text[] = {
+               "IDS_ST_BODY_TAP_ENCRYPT_SD_CARD_TO_START_THE_ENCRYPTION_PROCESS",
+               "IDS_ST_BODY_ALL_OPEN_FILES_ON_SD_CARD_WILL_BE_CLOSED",
+               "IDS_ST_BODY_THE_ENCRYPTION_CANT_BE_CANCELLED_AND_DATA_WILL_BE_LOST_IF_THE_PROCESS_IS_INTERRUPTED_DURING_THE_MSG",
+               "IDS_ST_HEADER_ENCRYPTION_OPTIONS_ABB"
+       };
+
+       if (naviframe == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "naviframe is null");
+               return;
+       }
+
+       base_layout = ode_create_layout(naviframe, ad->edj_path, "base_layout");
+       confirm_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_confirm_layout");
+
+       snprintf(string, sizeof(string), "%s<br><br>%s%s", __(confirm_text[0]), __(confirm_text[1]), __(confirm_text[2]));
+       confirm_msg = ode_create_textblock(confirm_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(confirm_layout, "msg_content", confirm_msg);
+
+       genlist = elm_genlist_add(confirm_layout);
+       elm_object_style_set(genlist, "solid/default");
+       elm_layout_content_set(confirm_layout, "genlist_base", genlist);
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+
+       itc =  ode_create_genlist_item_class("group_index", ode_group_text_get, NULL);
+       ode_append_genlist_item(genlist, itc, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, confirm_text[3]);
+
+       int index;
+       itc = ode_create_genlist_item_class("multiline", sd_confirm_multiline_text_get, sd_confirm_content_get);
+
+       for (index = 0; index < sdcard_option_num; index++) {
+               item = elm_genlist_item_append(genlist, itc, (void*)(intptr_t)index, NULL, ELM_GENLIST_ITEM_NONE , NULL, NULL);
+               elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE);
+       }
+
+       elm_object_part_content_set(base_layout, "content_layout", confirm_layout);
+       set_confirm_two_btn(base_layout, ad->edj_path, 1, _external_encrypt_confirm_next_btn_clicked_cb, ad);
+       item = elm_naviframe_item_push(naviframe, __("IDS_ST_HEADER_ENCRYPT_SD_CARD"), NULL, NULL, base_layout, NULL);
+       elm_naviframe_item_pop_cb_set(item, sdcard_encrypt_view_pop_cb, NULL);
+}
diff --git a/tools/apps/ode/src/external-encrypt/main.c b/tools/apps/ode/src/external-encrypt/main.c
new file mode 100755 (executable)
index 0000000..a5c4011
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+
+void _sd_card_encrypt_next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       dlog_print(DLOG_DEBUG, LOG_TAG, "_sd_card_encrypt_next_btn_clicked_cb start");
+
+       appdata_s *ad = (appdata_s *) data;
+       ode_check_encrypt_sd_card_create_view(ad);
+}
+
+void ode_encrypt_sd_card_create_view(appdata_s *ad)
+{
+       Evas_Object *navi_bar = ad->navi_bar;
+       Evas_Object *base_layout = NULL;
+       Evas_Object *encrypt_msg = NULL;
+       Evas_Object *encrypt_device_layout = NULL;
+
+       char string[PATH_MAX] = "";
+
+       char *encrypt_text[] = {
+               "IDS_ST_BODY_ENCRYPTING_YOUR_SD_CARD_WILL_PROTECT_ITS_DATA_IF_ITS_LOST_OR_STOLEN_ENCRYPTED_SD_CARDS_CAN_ONLY_MSG",
+               "IDS_ST_BODY_ONCE_THE_SD_CARD_IS_ENCRYPTED_A_PASSWORD_IS_REQUIRED_TO_USE_IT_THE_SAME_PASSWORD_MUST_MSG"
+       };
+
+       if (navi_bar == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "navi_bar is null");
+               ui_app_exit();
+       }
+
+       base_layout = ode_create_layout(navi_bar, ad->edj_path, "base_layout");
+       encrypt_device_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_first_layout");
+       ad->encryption_layout = encrypt_device_layout;
+
+       snprintf(string, sizeof(string), "%s<br><br>%s", __(encrypt_text[0]), __(encrypt_text[1]));
+       encrypt_msg = ode_create_textblock(encrypt_device_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(encrypt_device_layout, "msg_content", encrypt_msg);
+
+       set_next_btn(base_layout, ad->edj_path,  __("IDS_ST_BUTTON_NEXT"), _sd_card_encrypt_next_btn_clicked_cb, ad);
+
+       elm_object_part_content_set(base_layout, "content_layout", encrypt_device_layout);
+
+       snprintf(string, sizeof(string), "%s", __("IDS_ST_HEADER_ENCRYPT_SD_CARD"));
+       sw_back_btn_set(navi_bar, string, base_layout);
+}
diff --git a/tools/apps/ode/src/internal-decrypt/confirm.c b/tools/apps/ode/src/internal-decrypt/confirm.c
new file mode 100755 (executable)
index 0000000..dcebd40
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+#include "ode-password.h"
+#include <ode/external-encryption.h>
+#include <ode/internal-encryption.h>
+
+popup_data_s dec_popup_data; /* for temporary */
+
+static void _internal_decrypt_confirm_next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s *ad = (appdata_s *) data;
+       dlog_print(DLOG_DEBUG, LOG_TAG, "_confirm_btn_clicked_cb start");
+
+       dlog_print(DLOG_DEBUG, LOG_TAG, "decrypt device confirm");
+       dec_popup_data.parent = ad->base;
+       dec_popup_data.popup = NULL;
+       dec_popup_data.mode = INTERNAL_DECRYPT_PASSWORD;
+       create_confirm_password_popup(&dec_popup_data);
+}
+
+void ode_confirm_decrypt_device_create_view(appdata_s *ad)
+{
+       Evas_Object *naviframe = ad->navi_bar;
+       Evas_Object *base_layout = NULL;
+       Evas_Object *confirm_msg = NULL;
+       Evas_Object *confirm_layout = NULL;
+
+       dlog_print(DLOG_DEBUG, LOG_TAG, "start ode_confirm_encrypt_device_create_view");
+
+       char string[PATH_MAX] = "";
+       char *confirm_text[] = {
+               "IDS_ST_BODY_TAP_DECRYPT_TO_START_THE_DECRYPTION_PROCESS",
+               "IDS_ST_BODY_THE_DECRYPTION_CANT_BE_CANCELLED_AND_DATA_WILL_BE_LOST_IF_THE_PROCESS_IS_INTERRUPTED_DURING_THE_DECRYPTION_MSG"
+       };
+
+       if (naviframe == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "naviframe is null");
+               return;
+       }
+
+       base_layout = ode_create_layout(naviframe, ad->edj_path, "base_layout");
+       confirm_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_confirm_layout");
+
+       snprintf(string, sizeof(string), "%s<br><br>%s", __(confirm_text[0]), __(confirm_text[1]));
+       confirm_msg = ode_create_textblock(confirm_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(confirm_layout, "msg_content", confirm_msg);
+
+       elm_object_part_content_set(base_layout, "content_layout", confirm_layout);
+       /* set button */
+       set_confirm_two_btn(base_layout, ad->edj_path, (ad->view_type + 1), _internal_decrypt_confirm_next_btn_clicked_cb, ad);
+       elm_naviframe_item_push(naviframe, __("IDS_ST_HEADER_DECRYPT_DEVICE"), NULL, NULL, base_layout, NULL);
+}
diff --git a/tools/apps/ode/src/internal-decrypt/main.c b/tools/apps/ode/src/internal-decrypt/main.c
new file mode 100755 (executable)
index 0000000..fab9ddb
--- /dev/null
@@ -0,0 +1,134 @@
+/*
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+
+void _internal_decrypt_next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       dlog_print(DLOG_DEBUG, LOG_TAG, "_internal_decrypt_next_btn_clicked_cb start");
+
+       appdata_s *ad = (appdata_s *) data;
+       ode_confirm_decrypt_device_create_view(ad);
+}
+
+static void update_internal_decrypt_next_button_status(appdata_s *ad)
+{
+       dlog_print(DLOG_DEBUG, LOG_TAG, "update_internal_decrypt_next_button_status start");
+       if (ad->device_info.next_button == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "[Encrypt Device] next button is null");
+               return;
+       }
+
+       if (ad->device_info.battery_status && ad->device_info.charger_status) {
+               elm_object_disabled_set(ad->device_info.next_button, EINA_FALSE);
+       } else {
+               elm_object_disabled_set(ad->device_info.next_button, EINA_TRUE);
+       }
+}
+
+static void dec_battery_charger_changed_cb(runtime_info_key_e key, void *data)
+{
+       appdata_s *ad = (appdata_s *) data;
+       if (key == RUNTIME_INFO_KEY_CHARGER_CONNECTED)
+               battery_icon_status_update(ad);
+               update_internal_decrypt_next_button_status(ad);
+}
+
+static void dec_battery_changed_cb(device_callback_e type, void *value, void *user_data)
+{
+       appdata_s *ad = (appdata_s *) user_data;
+       if (type == DEVICE_CALLBACK_BATTERY_CAPACITY)
+               battery_icon_status_update(ad);
+               update_internal_decrypt_next_button_status(ad);
+}
+
+void ode_check_decrypt_device_create_view(appdata_s *ad)
+{
+       Evas_Object *navi_bar = ad->navi_bar;
+       Evas_Object *base_layout = NULL;
+       Evas_Object *check_msg = NULL;
+       Evas_Object *encryption_check_layout = NULL;
+       Evas_Object *genlist = NULL;
+       Elm_Genlist_Item_Class *itc;
+
+       dlog_print(DLOG_DEBUG, LOG_TAG, "start ode_check_decrypt_device_create_view");
+       char string[PATH_MAX] = "";
+       char *check_text[] = {
+               "IDS_ST_BODY_DECRYPTING_YOUR_DEVICE_WILL_DECRYPT_THE_APPS_DATA_AND_OTHER_CONTENT_ON_YOUR_DEVICE",
+               "IDS_ST_BODY_THIS_MAY_TAKE_A_LONG_TIME_DEPENDING_ON_THE_AMOUNT_OF_DATA_INTERRUPTING_THIS_PROCESS_MAY_CAUSE_MSG",
+               "IDS_ST_HEADER_TO_DECRYPT_YOUR_DEVICE_C_ABB"
+       };
+
+       char *status_text[] = {
+               "IDS_ST_BODY_CHARGE_THE_BATTERY_TO_AT_LEAST_PDP",
+               "IDS_ST_BODY_CONNECT_THE_DEVICE_TO_A_CHARGER",
+               "IDS_ST_BODY_SET_THE_SCREEN_LOCK_TYPE_TO_PASSWORD"
+       };
+
+       int ret;
+
+       if (navi_bar == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "navi_bar is null");
+               ui_app_exit();
+       }
+
+       base_layout = ode_create_layout(navi_bar, ad->edj_path, "base_layout");
+       encryption_check_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_check_layout");
+       ad->encryption_layout = encryption_check_layout;
+
+       snprintf(string, sizeof(string), "%s<br><br>%s", __(check_text[0]), __(check_text[1]));
+
+       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(encryption_check_layout, "msg_content", check_msg);
+
+       /* add group index */
+       genlist = elm_genlist_add(encryption_check_layout);
+       elm_object_style_set(genlist, "solid/default");
+       elm_layout_content_set(encryption_check_layout, "genlist_base", genlist);
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+
+       itc =  ode_create_genlist_item_class("group_index", ode_group_text_get, NULL);
+       ode_append_genlist_item(genlist, itc, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, check_text[2]);
+
+       set_next_btn(base_layout, ad->edj_path, __("IDS_ST_BUTTON_NEXT"), _internal_decrypt_next_btn_clicked_cb, ad);
+
+       /* get battery info */
+       ret = battery_icon_status_update(ad);
+       if (ret != 0) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "battery_status_update failed");
+               ui_app_exit();
+       }
+
+       ret = battery_cb_register(dec_battery_charger_changed_cb, dec_battery_changed_cb, ad);
+       if (ret != 0) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "battery_cb_register failed");
+               ui_app_exit();
+       }
+
+       snprintf(string, sizeof(string), __(status_text[0]), NEEDED_BATTERY_PERCENT);
+       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(encryption_check_layout, "battery_text", check_msg);
+
+       snprintf(string, sizeof(string), "%s", __(status_text[1]));
+       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(encryption_check_layout, "charge_text", check_msg);
+
+       elm_object_part_content_set(base_layout, "content_layout", encryption_check_layout);
+
+       sw_back_btn_set(navi_bar, __("IDS_ST_HEADER_DECRYPT_DEVICE"), base_layout);
+}
diff --git a/tools/apps/ode/src/internal-encrypt/check.c b/tools/apps/ode/src/internal-encrypt/check.c
new file mode 100755 (executable)
index 0000000..0315f9f
--- /dev/null
@@ -0,0 +1,210 @@
+/*
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+
+static void _internal_encrypt_check_next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       dlog_print(DLOG_DEBUG, LOG_TAG, "_check_next_btn_clicked_cb start");
+
+       appdata_s *ad = (appdata_s *) data;
+       ode_confirm_encrypt_device_create_view(ad);
+}
+
+static void update_internal_encrypt_next_button_status(appdata_s *ad)
+{
+       dlog_print(DLOG_DEBUG, LOG_TAG, "update_next_button_status start");
+       if (ad->device_info.next_button == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "[Encrypt Device] next button is null");
+               return;
+       }
+
+       if (ad->device_info.battery_status && ad->device_info.charger_status && ad->device_info.locktype_status) {
+               elm_object_disabled_set(ad->device_info.next_button, EINA_FALSE);
+       } else {
+               elm_object_disabled_set(ad->device_info.next_button, EINA_TRUE);
+       }
+}
+
+static void enc_battery_charger_changed_cb(runtime_info_key_e key, void *data)
+{
+       appdata_s *ad = (appdata_s *) data;
+       if (key == RUNTIME_INFO_KEY_CHARGER_CONNECTED) {
+               battery_icon_status_update(ad);
+               update_internal_encrypt_next_button_status(ad);
+       }
+}
+
+void enc_battery_changed_cb(device_callback_e type, void *value, void *user_data)
+{
+       appdata_s *ad = (appdata_s *) user_data;
+       if (type == DEVICE_CALLBACK_BATTERY_CAPACITY) {
+               battery_icon_status_update(ad);
+               update_internal_encrypt_next_button_status(ad);
+       }
+}
+
+void* locktype_sync_callback(void* user_data)
+{
+       appdata_s *ad = (appdata_s *) user_data;
+       locktype_icon_status_update(ad);
+       update_internal_encrypt_next_button_status(ad);
+       return NULL;
+}
+
+void locktype_status_changed_cb(keynode_t *node, void *data)
+{
+       dlog_print(DLOG_DEBUG, LOG_TAG, "locktype_status_changed_cb start ");
+       appdata_s *ad = (appdata_s *) data;
+       ecore_main_loop_thread_safe_call_sync(locktype_sync_callback, ad);
+}
+
+static void _new_locktype_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       /* launch lock type menu */
+       dlog_print(DLOG_DEBUG, LOG_TAG, "locktype button clicked");
+       new_launch_locktype_ug();
+}
+
+static void set_locktype_btn_layout(Evas_Object *layout, appdata_s *ad, const char *btn_text)
+{
+       Evas_Object *btn_layout;
+       Evas_Object *locktype_btn;
+
+       btn_layout = ode_create_layout(layout, ad->edj_path, "locktype_button_layout");
+
+       locktype_btn = ode_create_button(btn_layout, btn_text, "default");
+       elm_object_part_content_set(btn_layout, "locktype_button", locktype_btn);
+       evas_object_smart_callback_add(locktype_btn, "clicked", _new_locktype_btn_clicked_cb, ad);
+
+       elm_object_part_content_set(layout, "button_base", btn_layout);
+       return;
+}
+
+static Eina_Bool internal_encrypt_check_view_pop_cb(void *data, Elm_Object_Item *it)
+{
+       int ret;
+
+       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, locktype_status_changed_cb);
+       if (ret != 0)
+               dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister lockscreen type callback");
+       /* unregister runtime info callback */
+       ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_CHARGER_CONNECTED);
+       if (ret != 0)
+               dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister runtime info callback");
+       /* unregister battery percent callback */
+       ret = device_remove_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, enc_battery_changed_cb);
+       if (ret != 0)
+               dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister battery capacity callback");
+
+       return EINA_TRUE;
+}
+
+void ode_check_encrypt_device_create_view(appdata_s *ad)
+{
+       Evas_Object *navi_bar = ad->navi_bar;
+       Evas_Object *base_layout = NULL;
+       Evas_Object *check_msg = NULL;
+       Evas_Object *encryption_check_layout = NULL;
+       Evas_Object *genlist = NULL;
+       Elm_Object_Item *item;
+       Elm_Genlist_Item_Class *itc;
+
+       dlog_print(DLOG_DEBUG, LOG_TAG, "new start ode_check_encrypt_device_create_view");
+       char string[PATH_MAX] = "";
+       char *check_text[] = {
+               "IDS_ST_BODY_THE_ENCRYPTION_PROCESS_MAY_TAKE_A_LONG_TIME_DEPENDING_ON_THE_AMOUNT_OF_DATA_MSG",
+               "IDS_ST_BODY_TO_ENCRYPT_YOUR_DEVICE_C_ABB"
+       };
+
+       char *status_text[] = {
+               "IDS_ST_BODY_CHARGE_THE_BATTERY_TO_AT_LEAST_PDP",
+               "IDS_ST_BODY_CONNECT_THE_DEVICE_TO_A_CHARGER",
+               "IDS_ST_BODY_SET_THE_SCREEN_LOCK_TYPE_TO_PASSWORD"
+       };
+
+       int ret;
+
+       if (navi_bar == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "navi_bar is null");
+               return;
+       }
+
+       base_layout = ode_create_layout(navi_bar, ad->edj_path, "base_layout");
+       encryption_check_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_check_layout");
+       ad->encryption_layout = encryption_check_layout;
+
+       snprintf(string, sizeof(string), "%s", __(check_text[0]));
+
+       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(encryption_check_layout, "msg_content", check_msg);
+
+       /* add group index */
+       genlist = elm_genlist_add(encryption_check_layout);
+       elm_object_style_set(genlist, "solid/default");
+       elm_layout_content_set(encryption_check_layout, "genlist_base", genlist);
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+
+       itc =  ode_create_genlist_item_class("group_index", ode_group_text_get, NULL);
+       ode_append_genlist_item(genlist, itc, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, check_text[1]);
+
+       set_two_btn(base_layout, ad, _internal_encrypt_check_next_btn_clicked_cb, ad);
+       /* get battery info */
+       ret = battery_icon_status_update(ad);
+       if (ret != 0) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "battery_status_update failed");
+               return;
+       }
+
+       ret = battery_cb_register(enc_battery_charger_changed_cb, enc_battery_changed_cb, ad);
+       if (ret != 0) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "battery_cb_register failed");
+               return;
+       }
+
+       /* get locktype */
+       ret = locktype_icon_status_update(ad);
+       if (ret != 0) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "locktype_status_update failed");
+               return;
+       }
+       ret = locktype_cb_register(locktype_status_changed_cb, ad);
+       if (ret != 0) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "locktype_cb_register failed");
+               return;
+       }
+
+       snprintf(string, sizeof(string), "%s", __(status_text[2]));
+       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(encryption_check_layout, "locktype_text", check_msg);
+       set_locktype_btn_layout(encryption_check_layout, ad, __("IDS_ST_BUTTON_SCREEN_LOCK_TYPE_ABB"));
+
+       snprintf(string, sizeof(string), __(status_text[0]), NEEDED_BATTERY_PERCENT);
+       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(encryption_check_layout, "battery_text", check_msg);
+
+       snprintf(string, sizeof(string), "%s", __(status_text[1]));
+       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(encryption_check_layout, "charge_text", check_msg);
+
+       elm_object_part_content_set(base_layout, "content_layout", encryption_check_layout);
+
+       /* set bottom button */
+       item = elm_naviframe_item_push(navi_bar, __("IDS_ST_HEADER_ENCRYPT_DEVICE"), NULL, NULL, base_layout, NULL);
+       elm_naviframe_item_pop_cb_set(item, internal_encrypt_check_view_pop_cb, ad);
+}
diff --git a/tools/apps/ode/src/internal-encrypt/confirm.c b/tools/apps/ode/src/internal-encrypt/confirm.c
new file mode 100755 (executable)
index 0000000..f2c8ec7
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+#include "ode-password.h"
+#include <ode/external-encryption.h>
+#include <ode/internal-encryption.h>
+
+popup_data_s enc_popup_data; /* for temporary */
+static int device_full_encryption_state = 0;
+
+
+static void _internal_encrypt_confirm_next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s *ad = (appdata_s *) data;
+       dlog_print(DLOG_DEBUG, LOG_TAG, "_confirm_btn_clicked_cb start");
+       dlog_print(DLOG_DEBUG, LOG_TAG, "encrypt device confirm");
+       if (device_full_encryption_state == 0)
+               ad->device_info.device_option = 0;
+       else
+               ad->device_info.device_option = 1;
+       enc_popup_data.parent = ad->base;
+       enc_popup_data.popup = NULL;
+       enc_popup_data.mode = INTERNAL_ENCRYPT_PASSWORD;
+       enc_popup_data.callback_data = ad;
+       create_confirm_password_popup(&enc_popup_data);
+}
+
+static char *confirm_multiline_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       char *genlist_text[] = {
+               "IDS_ST_MBODY_FULL_ENCRYPTION",
+               "IDS_ST_SBODY_ENCRYPT_NOT_ONLY_THE_USED_PHONE_STORAGE_BUT_ALSO_ANY_EMPTY_SPACE_THIS_WILL_TAKE_MORE_TIME"
+       };
+
+       if (!strcmp(part, "elm.text"))
+               return strdup(__(genlist_text[0]));
+       else if (!strcmp(part, "elm.text.multiline"))
+               return strdup(__(genlist_text[1]));
+
+       return NULL;
+}
+
+void device_encrypt_option_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       dlog_print(DLOG_INFO, LOG_TAG, "The value has changed \n");
+       if (elm_check_state_get(obj) == EINA_TRUE)
+               device_full_encryption_state = 1;
+       else
+               device_full_encryption_state = 0;
+}
+
+static Evas_Object *device_encrypt_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       if (!strcmp(part, "elm.swallow.end")) {
+               Evas_Object *check = elm_check_add(obj);
+               elm_object_style_set(check, "default");
+               elm_check_state_set(check, EINA_FALSE);
+               evas_object_smart_callback_add(check, "changed", device_encrypt_option_changed_cb, data);
+               return check;
+       }
+
+       return NULL;
+}
+
+static Eina_Bool internal_device_encrypt_view_pop_cb(void *data, Elm_Object_Item *it)
+{
+       appdata_s *ad = (appdata_s *)data;
+
+       if (ad->view_type == ENCRYPT_DEVICE)
+               device_full_encryption_state = 0;
+       return EINA_TRUE;
+}
+
+void ode_confirm_encrypt_device_create_view(appdata_s *ad)
+{
+       Evas_Object *naviframe = ad->navi_bar;
+       Evas_Object *base_layout = NULL;
+       Evas_Object *confirm_msg = NULL;
+       Evas_Object *confirm_layout = NULL;
+
+       Evas_Object *genlist = NULL;
+       Elm_Genlist_Item_Class *itc;
+       Elm_Object_Item *item;
+
+       dlog_print(DLOG_DEBUG, LOG_TAG, "start ode_confirm_encrypt_device_create_view");
+
+       char string[PATH_MAX] = "";
+       char *confirm_text[] = {
+               "IDS_ST_BODY_TAP_ENCRYPT_TO_START_THE_ENCRYPTION_PROCESS",
+               "IDS_ST_BODY_THE_ENCRYPTION_CANT_BE_CANCELLED_AND_DATA_WILL_BE_LOST_IF_THE_PROCESS_IS_INTERRUPTED_DURING_MSG",
+               "IDS_ST_HEADER_ENCRYPTION_OPTIONS_ABB"
+       };
+
+       if (naviframe == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "naviframe is null");
+               return;
+       }
+
+       base_layout = ode_create_layout(naviframe, ad->edj_path, "base_layout");
+       confirm_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_confirm_layout");
+       snprintf(string, sizeof(string), "%s<br><br>%s", __(confirm_text[0]), __(confirm_text[1]));
+       confirm_msg = ode_create_textblock(confirm_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(confirm_layout, "msg_content", confirm_msg);
+
+
+       /* add group index */
+       genlist = elm_genlist_add(confirm_layout);
+       elm_object_style_set(genlist, "solid/default");
+       elm_layout_content_set(confirm_layout, "genlist_base", genlist);
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+
+       itc =  ode_create_genlist_item_class("group_index", ode_group_text_get, NULL);
+       ode_append_genlist_item(genlist, itc, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, confirm_text[2]);
+
+       itc = ode_create_genlist_item_class("multiline", confirm_multiline_text_get, device_encrypt_content_get);
+       ode_append_genlist_item(genlist, itc, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, NULL);
+
+       elm_object_part_content_set(base_layout, "content_layout", confirm_layout);
+       /* set button */
+       set_confirm_two_btn(base_layout, ad->edj_path, (ad->view_type + 1), _internal_encrypt_confirm_next_btn_clicked_cb, ad);
+       item = elm_naviframe_item_push(naviframe, __("IDS_ST_HEADER_ENCRYPT_DEVICE"), NULL, NULL, base_layout, NULL);
+       elm_naviframe_item_pop_cb_set(item, internal_device_encrypt_view_pop_cb, ad);
+}
diff --git a/tools/apps/ode/src/internal-encrypt/main.c b/tools/apps/ode/src/internal-encrypt/main.c
new file mode 100755 (executable)
index 0000000..025b9d3
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+
+void _internal_encrypt_next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       dlog_print(DLOG_DEBUG, LOG_TAG, "_internal_encrypt_next_btn_clicked_cb start");
+
+       appdata_s *ad = (appdata_s *) data;
+       ode_check_encrypt_device_create_view(ad);
+}
+
+void ode_encrypt_device_create_view(appdata_s *ad)
+{
+       Evas_Object *navi_bar = ad->navi_bar;
+       Evas_Object *base_layout = NULL;
+       Evas_Object *encrypt_msg = NULL;
+       Evas_Object *encrypt_device_layout = NULL;
+
+       char string[PATH_MAX] = "";
+
+       char *encrypt_text[] = {
+               "IDS_ST_BODY_ENCRYPTING_YOUR_PHONE_WILL_SECURE_THE_APPS_DATA_AND_OTHER_CONTENT_ON_IT_N_NTO_DECRYPT_YOUR_PHONE_ONCE_MSG",
+       };
+
+       if (navi_bar == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "navi_bar is null");
+               ui_app_exit();
+       }
+
+       base_layout = ode_create_layout(navi_bar, ad->edj_path, "base_layout");
+       encrypt_device_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_first_layout");
+       ad->encryption_layout = encrypt_device_layout;
+
+       snprintf(string, sizeof(string), "%s", __(encrypt_text[0]));
+       encrypt_msg = ode_create_textblock(encrypt_device_layout, string, MSG_TEXT_STYLE);
+       elm_object_part_content_set(encrypt_device_layout, "msg_content", encrypt_msg);
+
+       set_next_btn(base_layout, ad->edj_path,  __("IDS_ST_BUTTON_NEXT"), _internal_encrypt_next_btn_clicked_cb, ad);
+
+       elm_object_part_content_set(base_layout, "content_layout", encrypt_device_layout);
+
+       snprintf(string, sizeof(string), "%s", __("IDS_ST_HEADER_ENCRYPT_DEVICE"));
+       sw_back_btn_set(navi_bar, string, base_layout);
+}
diff --git a/tools/apps/ode/src/locktype.c b/tools/apps/ode/src/locktype.c
new file mode 100755 (executable)
index 0000000..39c0ea2
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * Tizen ODE application
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+
+int locktype_icon_status_update(appdata_s *ad)
+{
+       int lock_type;
+       dlog_print(DLOG_DEBUG, LOG_TAG, "locktype_icon_status_update start ");
+       if (ad->encryption_layout == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "encrypt layout is null");
+               return -1;
+       }
+
+       vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &lock_type);
+       if (lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD || lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) {
+               /* available */
+               dlog_print(DLOG_DEBUG, LOG_TAG, "set icon check ");
+               set_icon(ad, ICON_CHECK, "locktype_icon");
+               ad->device_info.locktype_status = 1;
+       } else {
+               /* unavailable */
+               dlog_print(DLOG_DEBUG, LOG_TAG, "set icon bar ");
+               set_icon(ad, ICON_BAR, "locktype_icon");
+               ad->device_info.locktype_status = 0;
+       }
+
+       return 0;
+}
+
+int locktype_cb_register(vconf_callback_fn callback, void* user_data)
+{
+       int ret;
+
+       /* register vconf notify for locktype */
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, callback, user_data);
+       if (ret != 0) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "runtime_info_set_changed_cb failed: %d", ret);
+               return -1;
+       }
+
+       return 0;
+}
+
+void _new_launch_password_ug_cb(app_control_h ug, app_control_h reply, app_control_result_e result, void *data)
+{
+       if (!result) {
+               char *string_result = NULL;
+               char *current = NULL;
+               app_control_get_extra_data(reply, "result", &string_result);
+               if (string_result == NULL)
+                       return;
+
+               int ret_int = 0;
+               if (strcmp(string_result, "Cancel") == 0)
+                       ret_int = 0;
+               else if (strcmp(string_result, "SETTING_PW_TYPE_ENTER_LOCK_TYPE") == 0 || strcmp(string_result, "SETTING_PW_TYPE_VERIFY_FP_ALT_PASSWORD") == 0)
+                       ret_int = 1;
+
+               free(string_result);
+
+               if (ret_int == 1) {
+                       app_control_h app_ctl;
+                       if (app_control_create(&app_ctl)) {
+                               dlog_print(DLOG_ERROR, LOG_TAG, "app_control_create failed");
+                               return;
+                       }
+                       app_control_get_extra_data(reply, "current", &current);
+                       if (current) {
+                               app_control_add_extra_data(app_ctl, "current", current);
+                               free(current);
+                       }
+                       app_control_set_app_id(app_ctl, APP_SETTING_LOCKTYPE);
+                       app_control_set_launch_mode(app_ctl, APP_CONTROL_LAUNCH_MODE_GROUP);
+                       app_control_send_launch_request(app_ctl, NULL, NULL);
+                       app_control_destroy(app_ctl);
+               }
+       }
+}
+
+void new_launch_locktype_ug(void)
+{
+       app_control_h app_ctl = NULL;
+       int ret;
+       int lock_type = 0;
+
+       ret = app_control_create(&app_ctl);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               dlog_print(DLOG_DEBUG, LOG_TAG, "app_control_create failed");
+               return;
+       }
+
+       vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &lock_type);
+
+       if (lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD || lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) {
+               app_control_add_extra_data(app_ctl, "viewtype", "SETTING_PW_TYPE_ENTER_LOCK_TYPE");
+               app_control_set_app_id(app_ctl, APP_SETTING_PASSWORD);
+               app_control_set_launch_mode(app_ctl, APP_CONTROL_LAUNCH_MODE_GROUP);
+               app_control_send_launch_request(app_ctl, _new_launch_password_ug_cb, NULL);
+               app_control_destroy(app_ctl);
+
+       } else {
+               app_control_set_app_id(app_ctl, APP_SETTING_LOCKTYPE);
+               app_control_set_launch_mode(app_ctl, APP_CONTROL_LAUNCH_MODE_GROUP);
+               app_control_send_launch_request(app_ctl, NULL, NULL);
+               app_control_destroy(app_ctl);
+       }
+}
diff --git a/tools/apps/ode/src/ode-app-common.c b/tools/apps/ode/src/ode-app-common.c
new file mode 100755 (executable)
index 0000000..8e8f9a3
--- /dev/null
@@ -0,0 +1,172 @@
+/*
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+#include "ode-password.h"
+
+char *confirm_button_text[] = {
+       "IDS_ST_BUTTON_BACK",
+       "IDS_ST_BUTTON_ENCRYPT_ABB2",
+       "IDS_ST_BUTTON_DECRYPT_DEVICE"
+};
+
+void set_icon(appdata_s *ad, int type, char *part)
+{
+       Evas_Object *icon_check = NULL, *icon_bar = NULL;
+       int ret;
+       if (ad->encryption_layout == NULL || ad->icon_check_path == NULL || ad->icon_bar_path == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "invalid parameter");
+               return;
+       }
+       if (type == ICON_CHECK) {
+               icon_check = elm_image_add(ad->encryption_layout);
+               if (icon_check == NULL) {
+                       dlog_print(DLOG_ERROR, LOG_TAG, "elm_image_add failed");
+                       return;
+               }
+               if (elm_image_file_set(icon_check, ad->icon_check_path, NULL) == EINA_FALSE) {
+                       dlog_print(DLOG_ERROR, LOG_TAG, "elm_image_file_set failed");
+                       return;
+               }
+               evas_object_color_set(icon_check, 153, 153, 153, 255);
+               evas_object_size_hint_align_set(icon_check, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_weight_set(icon_check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+               ret = elm_layout_content_set(ad->encryption_layout, part, icon_check);
+               if (!ret) {
+                       dlog_print(DLOG_ERROR, LOG_TAG, "elm_layout_content_set failed");
+                       return;
+               }
+               evas_object_show(icon_check);
+       } else if (type == ICON_BAR) {
+               icon_bar = elm_image_add(ad->encryption_layout);
+               if (icon_bar == NULL) {
+                       dlog_print(DLOG_ERROR, LOG_TAG, "elm_image_add failed");
+                       return;
+               }
+               elm_image_file_set(icon_bar, ad->icon_bar_path, NULL);
+               evas_object_color_set(icon_bar, 0, 0, 0, 255);
+               evas_object_size_hint_align_set(icon_bar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_weight_set(icon_bar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+               ret = elm_layout_content_set(ad->encryption_layout, part, icon_bar);
+               if (!ret) {
+                       dlog_print(DLOG_ERROR, LOG_TAG, "elm_layout_content_set failed");
+                       return;
+               }
+               evas_object_show(icon_bar);
+       }
+}
+
+void _prev_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s *ad = (appdata_s *)data;
+       elm_naviframe_item_pop(ad->navi_bar);
+}
+
+void set_next_btn(Evas_Object *layout, const char* edj_path, const char *btn_text, Evas_Smart_Cb callback, const void* data)
+{
+       Evas_Object *btn_layout;
+       Evas_Object *next_btn;
+       dlog_print(DLOG_DEBUG, LOG_TAG, "set_next_btn start");
+       btn_layout = ode_create_layout(layout, edj_path, "next_button_layout");
+
+       next_btn = ode_create_button(btn_layout, btn_text, "bottom");
+       elm_object_part_content_set(btn_layout, "next_button", next_btn);
+
+       evas_object_smart_callback_add(next_btn, "clicked", callback, data);
+       elm_object_part_content_set(layout, "bottom_layout", btn_layout);
+       return;
+}
+
+void set_two_btn(Evas_Object *layout, appdata_s *ad, Evas_Smart_Cb callback, const void* data)
+{
+       Evas_Object *btn_layout;
+       Evas_Object *prev_btn, *next_btn;
+
+       btn_layout = ode_create_layout(layout, ad->edj_path, "two_button_layout");
+
+       prev_btn = ode_create_button(layout, __("IDS_ST_BUTTON_BACK"), "bottom");
+       elm_object_part_content_set(btn_layout, "prev_button", prev_btn);
+       evas_object_smart_callback_add(prev_btn, "clicked", _prev_btn_clicked_cb, data);
+
+       next_btn = ode_create_button(layout, __("IDS_ST_BUTTON_NEXT"), "bottom");
+       ad->device_info.next_button = next_btn;
+       elm_object_part_content_set(btn_layout, "next_button", next_btn);
+
+       evas_object_smart_callback_add(next_btn, "clicked", callback, data);
+
+       elm_object_part_content_set(layout, "bottom_layout", btn_layout);
+       return;
+}
+
+void _back_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       ui_app_exit();
+}
+
+static Eina_Bool _pop_cb(void *data, Elm_Object_Item *it)
+{
+       ui_app_exit();
+       return EINA_FALSE;
+}
+
+void sw_back_btn_set(Evas_Object *obj, const char *title_label, Evas_Object *content)
+{
+       Evas_Object *back_btn = NULL;
+
+       back_btn = elm_button_add(obj);
+       elm_object_style_set(back_btn, "naviframe/back_btn/default");
+       evas_object_smart_callback_add(back_btn, "clicked", _back_btn_clicked_cb, obj);
+
+       Elm_Object_Item *nf_it = elm_naviframe_item_push(obj, title_label, back_btn, NULL, content, NULL);
+       elm_naviframe_item_pop_cb_set(nf_it, _pop_cb, NULL);
+}
+
+void set_change_pw_btn(Evas_Object *layout, const char *edj_path, const char *btn_text, Evas_Smart_Cb callback, const void* data)
+{
+       Evas_Object *btn_layout;
+
+       btn_layout = ode_create_layout(layout, edj_path, "one_button_layout");
+
+       btn_layout = ode_create_button(btn_layout, btn_text, "default");
+       elm_object_part_content_set(btn_layout, "button_base", btn_layout);
+       evas_object_smart_callback_add(btn_layout, "clicked", callback, data);
+
+       elm_object_part_content_set(layout, "change_pw_btn_base", btn_layout);
+       return;
+}
+
+void set_confirm_two_btn(Evas_Object *layout, const char *edj_path, int text_idx, Evas_Smart_Cb callback, const void* data)
+{
+       Evas_Object *btn_layout;
+       Evas_Object *prev_btn, *next_btn;
+
+       btn_layout = ode_create_layout(layout, edj_path, "two_button_layout");
+
+       prev_btn = ode_create_button(layout, __(confirm_button_text[0]), "bottom");
+       elm_object_part_content_set(btn_layout, "prev_button", prev_btn);
+       evas_object_smart_callback_add(prev_btn, "clicked", _prev_btn_clicked_cb, data);
+
+       next_btn = ode_create_button(layout, __(confirm_button_text[text_idx]), "bottom");
+       elm_object_part_content_set(btn_layout, "next_button", next_btn);
+
+       evas_object_smart_callback_add(next_btn, "clicked", callback, data);
+       elm_object_part_content_set(layout, "bottom_layout", btn_layout);
+       return;
+}
diff --git a/tools/apps/ode/src/ode-app-confirm.c b/tools/apps/ode/src/ode-app-confirm.c
deleted file mode 100755 (executable)
index d921a30..0000000
+++ /dev/null
@@ -1,368 +0,0 @@
-/*
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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://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,
- * 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.
- *
- */
-
-#include "ode-app.h"
-#include "ode-password.h"
-#include <ode/external-encryption.h>
-#include <ode/internal-encryption.h>
-
-char *confirm_button_text[] = {
-       "IDS_ST_BUTTON_BACK",
-       "IDS_ST_BUTTON_ENCRYPT_ABB2",
-       "IDS_ST_BUTTON_DECRYPT_DEVICE"
-};
-extern char *encrypt_header_text[];
-static int sdcard_option_selected = 0;
-static int device_full_encryption_state = 0;
-popup_data_s popup_data; /* for temporary */
-
-#define sdcard_option_num 2
-
-static void _confirm_next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       int ret = 0;
-       appdata_s *ad = (appdata_s *) data;
-       dlog_print(DLOG_DEBUG, LOG_TAG, "_confirm_btn_clicked_cb start");
-
-       switch (ad->view_type) {
-       case ENCRYPT_DEVICE:
-               dlog_print(DLOG_DEBUG, LOG_TAG, "encrypt device confirm");
-               if (device_full_encryption_state == 0)
-                       ad->device_info.device_option = 0;
-               else
-                       ad->device_info.device_option = 1;
-               popup_data.parent = ad->base;
-               popup_data.popup = NULL;
-               popup_data.mode = INTERNAL_ENCRYPT_PASSWORD;
-               popup_data.callback_data = ad;
-               create_confirm_password_popup(&popup_data);
-               break;
-       case DECRYPT_DEVICE:
-               dlog_print(DLOG_DEBUG, LOG_TAG, "decrypt device confirm");
-               popup_data.parent = ad->base;
-               popup_data.popup = NULL;
-               popup_data.mode = INTERNAL_DECRYPT_PASSWORD;
-               create_confirm_password_popup(&popup_data);
-               break;
-       case ENCRYPT_SD_CARD:
-               dlog_print(DLOG_DEBUG, LOG_TAG, "encrypt sd card confrim");
-               ret = ode_external_encryption_encrypt(ad->entry_data, 0);
-               if (ret != 0) {
-                       dlog_print(DLOG_DEBUG, LOG_TAG, "external encryption failed");
-               }
-               create_base_window();
-               create_progress_view("Encrypting", "External");
-               break;
-       case DECRYPT_SD_CARD:
-               dlog_print(DLOG_DEBUG, LOG_TAG, "decrypt sd card confrim");
-               popup_data.parent = ad->base;
-               popup_data.popup = NULL;
-               popup_data.mode = EXTERNAL_DECRYPT_PASSWORD;
-               create_confirm_password_popup(&popup_data);
-               break;
-       }
-}
-
-static char *confirm_multiline_text_get(void *data, Evas_Object *obj, const char *part)
-{
-       char *genlist_text[] = {
-               "IDS_ST_MBODY_FULL_ENCRYPTION",
-               "IDS_ST_SBODY_ENCRYPT_NOT_ONLY_THE_USED_PHONE_STORAGE_BUT_ALSO_ANY_EMPTY_SPACE_THIS_WILL_TAKE_MORE_TIME"
-       };
-
-       if (!strcmp(part, "elm.text"))
-               return strdup(__(genlist_text[0]));
-       else if (!strcmp(part, "elm.text.multiline"))
-               return strdup(__(genlist_text[1]));
-
-       return NULL;
-}
-
-void device_encrypt_option_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       dlog_print(DLOG_INFO, LOG_TAG, "The value has changed \n");
-       if (elm_check_state_get(obj) == EINA_TRUE)
-               device_full_encryption_state = 1;
-       else
-               device_full_encryption_state = 0;
-}
-
-static Evas_Object *device_encrypt_content_get(void *data, Evas_Object *obj, const char *part)
-{
-       if (!strcmp(part, "elm.swallow.end")) {
-               Evas_Object *check = elm_check_add(obj);
-               elm_object_style_set(check, "default");
-               elm_check_state_set(check, EINA_FALSE);
-               evas_object_smart_callback_add(check, "changed", device_encrypt_option_changed_cb, data);
-               return check;
-       }
-
-       return NULL;
-}
-
-static void _prev_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       appdata_s *ad = (appdata_s *)data;
-       elm_naviframe_item_pop(ad->navi_bar);
-}
-
-static void set_confirm_two_btn_layout(Evas_Object *layout, appdata_s *ad, int text_idx)
-{
-       Evas_Object *btn_layout;
-       Evas_Object *prev_btn, *next_btn;
-
-       btn_layout = ode_create_layout(layout, ad->edj_path, "two_button_layout");
-
-       prev_btn = ode_create_button(layout, __(confirm_button_text[0]), "bottom");
-       elm_object_part_content_set(btn_layout, "prev_button", prev_btn);
-       evas_object_smart_callback_add(prev_btn, "clicked", _prev_btn_clicked_cb, ad);
-
-       next_btn = ode_create_button(layout, __(confirm_button_text[text_idx]), "bottom");
-       elm_object_part_content_set(btn_layout, "next_button", next_btn);
-
-       evas_object_smart_callback_add(next_btn, "clicked", _confirm_next_btn_clicked_cb, ad);
-       elm_object_part_content_set(layout, "bottom_layout", btn_layout);
-       return;
-}
-
-static char *sd_confirm_multiline_text_get(void *data, Evas_Object *obj, const char *part)
-{
-       char *genlist_text[2][2] = {
-               {
-                       "IDS_ST_MBODY_ENCRYPT_ALL_FILES",
-                       "IDS_ST_SBODY_ENCRYPT_ALL_FILES_SAVED_ON_THE_SD_CARD_NEW_FILES_WILL_ALSO_BE_ENCRYPTED"
-               },
-               {
-                       "IDS_ST_MBODY_ENCRYPT_NEW_FILES",
-                       "IDS_ST_BODY_ENCRYPT_ALL_NEW_FILES_SAVED_ON_THIS_SD_CARD_EXISTING_FILES_WILL_NOT_BE_ENCRYPTED"
-               }
-       };
-
-       char **text = genlist_text[(intptr_t)data];
-
-       if (!strcmp(part, "elm.text"))
-               return strdup(__(text[0]));
-       else if (!strcmp(part, "elm.text.multiline"))
-               return strdup(__(text[1]));
-       return NULL;
-}
-
-void radio_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       dlog_print(DLOG_INFO, LOG_TAG, "The value has changed %d\n", (intptr_t)data);
-       sdcard_option_selected = (intptr_t)data;
-
-       dlog_print(DLOG_INFO, LOG_TAG, "sdcard_option_selected is  %d\n", sdcard_option_selected);
-}
-
-static Evas_Object *sd_confirm_content_get(void *data, Evas_Object *obj, const char *part)
-{
-       static Evas_Object *group = NULL;
-       int idx = (intptr_t)data;
-
-       if (!strcmp(part, "elm.swallow.end")) {
-               if (idx == 0) {
-                       dlog_print(DLOG_DEBUG, LOG_TAG, "radio group null");
-                       group = elm_radio_add(obj);
-                       elm_radio_state_value_set(group, 0);
-                       elm_radio_value_set(group, 0);
-               }
-
-               dlog_print(DLOG_DEBUG, LOG_TAG, "radio group not null");
-               Evas_Object *radio = elm_radio_add(obj);
-               elm_radio_state_value_set(radio, idx);
-
-               if (idx == sdcard_option_selected) {
-                       elm_radio_state_value_set(radio, idx);
-               }
-
-               elm_radio_group_add(radio, group);
-               evas_object_propagate_events_set(radio, EINA_FALSE);
-               evas_object_repeat_events_set(radio, EINA_FALSE);
-
-               evas_object_smart_callback_add(radio, "changed", radio_changed_cb, data);
-               return radio;
-       }
-       return NULL;
-}
-
-static Eina_Bool sdcard_encrypt_view_pop_cb(void *data, Elm_Object_Item *it)
-{
-       sdcard_option_selected = 0;
-       return EINA_TRUE;
-}
-
-static Eina_Bool device_encrypt_view_pop_cb(void *data, Elm_Object_Item *it)
-{
-       appdata_s *ad = (appdata_s *)data;
-
-       if (ad->view_type == ENCRYPT_DEVICE)
-               device_full_encryption_state = 0;
-       return EINA_TRUE;
-}
-
-
-void ode_confirm_encrypt_device_create_view(appdata_s *ad)
-{
-       Evas_Object *naviframe = ad->navi_bar;
-       Evas_Object *base_layout = NULL;
-       Evas_Object *confirm_msg = NULL;
-       Evas_Object *confirm_layout = NULL;
-
-       Evas_Object *genlist = NULL;
-       Elm_Genlist_Item_Class *itc;
-       Elm_Object_Item *item;
-
-       dlog_print(DLOG_DEBUG, LOG_TAG, "start ode_confirm_encrypt_device_create_view");
-
-       char string[PATH_MAX] = "";
-       char *confirm_text[2][3] = {
-               {
-                       "IDS_ST_BODY_TAP_ENCRYPT_TO_START_THE_ENCRYPTION_PROCESS",
-                       "IDS_ST_BODY_THE_ENCRYPTION_CANT_BE_CANCELLED_AND_DATA_WILL_BE_LOST_IF_THE_PROCESS_IS_INTERRUPTED_DURING_MSG",
-                       "IDS_ST_HEADER_ENCRYPTION_OPTIONS_ABB"
-               },
-               {
-                       "IDS_ST_BODY_TAP_DECRYPT_TO_START_THE_DECRYPTION_PROCESS",
-                       "IDS_ST_BODY_THE_DECRYPTION_CANT_BE_CANCELLED_AND_DATA_WILL_BE_LOST_IF_THE_PROCESS_IS_INTERRUPTED_DURING_THE_DECRYPTION_MSG",
-                       ""
-               }
-       };
-
-       char **text = confirm_text[ad->view_type];
-
-       if (naviframe == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "naviframe is null");
-               return;
-       }
-
-       base_layout = ode_create_layout(naviframe, ad->edj_path, "base_layout");
-       confirm_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_confirm_layout");
-       text = confirm_text[ad->view_type];
-       snprintf(string, sizeof(string), "%s<br><br>%s", __(text[0]), __(text[1]));
-       confirm_msg = ode_create_textblock(confirm_layout, string, MSG_TEXT_STYLE);
-       elm_object_part_content_set(confirm_layout, "msg_content", confirm_msg);
-
-       if (ad->view_type == ENCRYPT_DEVICE) {
-               /* add group index */
-               genlist = elm_genlist_add(confirm_layout);
-               elm_object_style_set(genlist, "solid/default");
-               elm_layout_content_set(confirm_layout, "genlist_base", genlist);
-               elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
-
-               itc =  ode_create_genlist_item_class("group_index", ode_group_text_get, NULL);
-               ode_append_genlist_item(genlist, itc, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, text[2]);
-
-               itc = ode_create_genlist_item_class("multiline", confirm_multiline_text_get, device_encrypt_content_get);
-               ode_append_genlist_item(genlist, itc, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, NULL);
-       }
-
-       elm_object_part_content_set(base_layout, "content_layout", confirm_layout);
-       /* set button */
-       set_confirm_two_btn_layout(base_layout, ad, (ad->view_type + 1));
-       item = elm_naviframe_item_push(naviframe, __(encrypt_header_text[ad->view_type]), NULL, NULL, base_layout, NULL);
-       elm_naviframe_item_pop_cb_set(item, device_encrypt_view_pop_cb, ad);
-}
-
-void ode_confirm_encrypt_sd_card_create_view(appdata_s *ad)
-{
-       Evas_Object *naviframe = ad->navi_bar;
-       Evas_Object *base_layout = NULL;
-       Evas_Object *confirm_msg = NULL;
-       Evas_Object *confirm_layout = NULL;
-
-       Evas_Object *genlist = NULL;
-       Elm_Genlist_Item_Class *itc;
-       Elm_Object_Item *item;
-
-       dlog_print(DLOG_DEBUG, LOG_TAG, "start ode_confirm_encrypt_sd_card_create_view");
-
-       char string[PATH_MAX] = "";
-       char *confirm_text[] = {
-               "IDS_ST_BODY_TAP_ENCRYPT_SD_CARD_TO_START_THE_ENCRYPTION_PROCESS",
-               "IDS_ST_BODY_ALL_OPEN_FILES_ON_SD_CARD_WILL_BE_CLOSED",
-               "IDS_ST_BODY_THE_ENCRYPTION_CANT_BE_CANCELLED_AND_DATA_WILL_BE_LOST_IF_THE_PROCESS_IS_INTERRUPTED_DURING_THE_MSG",
-               "IDS_ST_HEADER_ENCRYPTION_OPTIONS_ABB"
-       };
-
-       if (naviframe == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "naviframe is null");
-               return;
-       }
-
-       base_layout = ode_create_layout(naviframe, ad->edj_path, "base_layout");
-       confirm_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_confirm_layout");
-
-       snprintf(string, sizeof(string), "%s<br><br>%s%s", __(confirm_text[0]), __(confirm_text[1]), __(confirm_text[2]));
-       confirm_msg = ode_create_textblock(confirm_layout, string, MSG_TEXT_STYLE);
-       elm_object_part_content_set(confirm_layout, "msg_content", confirm_msg);
-
-       genlist = elm_genlist_add(confirm_layout);
-       elm_object_style_set(genlist, "solid/default");
-       elm_layout_content_set(confirm_layout, "genlist_base", genlist);
-       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
-
-       itc =  ode_create_genlist_item_class("group_index", ode_group_text_get, NULL);
-       ode_append_genlist_item(genlist, itc, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, confirm_text[3]);
-
-       int index;
-       itc = ode_create_genlist_item_class("multiline", sd_confirm_multiline_text_get, sd_confirm_content_get);
-
-       for (index = 0; index < sdcard_option_num; index++) {
-               item = elm_genlist_item_append(genlist, itc, (void*)(intptr_t)index, NULL, ELM_GENLIST_ITEM_NONE , NULL, NULL);
-               elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE);
-       }
-
-       elm_object_part_content_set(base_layout, "content_layout", confirm_layout);
-       set_confirm_two_btn_layout(base_layout, ad, 1);
-       item = elm_naviframe_item_push(naviframe, __(encrypt_header_text[2]), NULL, NULL, base_layout, NULL);
-       elm_naviframe_item_pop_cb_set(item, sdcard_encrypt_view_pop_cb, NULL);
-}
-
-void ode_confirm_decrypt_sd_card_create_view(appdata_s *ad)
-{
-       Evas_Object *naviframe = ad->navi_bar;
-       Evas_Object *base_layout = NULL;
-       Evas_Object *confirm_msg = NULL;
-       Evas_Object *confirm_layout = NULL;
-
-       dlog_print(DLOG_DEBUG, LOG_TAG, "start ode_confirm_decrypt_sd_card_create_view");
-
-       char string[PATH_MAX] = "";
-       char *confirm_text[] = {
-               "IDS_ST_BODY_TAP_ENCRYPT_SD_CARD_TO_START_THE_ENCRYPTION_PROCESS",
-               "IDS_ST_BODY_ALL_OPEN_FILES_ON_SD_CARD_WILL_BE_CLOSED",
-               "IDS_ST_BODY_THE_DECRYPTION_CANT_BE_CANCELLED_AND_DATA_WILL_BE_LOST_IF_THE_PROCESS_IS_INTERRUPTED_MSG"
-       };
-
-       if (naviframe == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "naviframe is null");
-               return;
-       }
-
-       base_layout = ode_create_layout(naviframe, ad->edj_path, "base_layout");
-       confirm_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_confirm_layout");
-
-       snprintf(string, sizeof(string), "%s<br><br>%s%s", __(confirm_text[0]), __(confirm_text[1]), __(confirm_text[2]));
-       confirm_msg = ode_create_textblock(confirm_layout, string, MSG_TEXT_STYLE);
-       elm_object_part_content_set(confirm_layout, "msg_content", confirm_msg);
-
-       elm_object_part_content_set(base_layout, "content_layout", confirm_layout);
-       set_confirm_two_btn_layout(base_layout, ad, 2);
-       elm_naviframe_item_push(naviframe, __(encrypt_header_text[3]), NULL, NULL, base_layout, NULL);
-}
diff --git a/tools/apps/ode/src/ode-app-main.c b/tools/apps/ode/src/ode-app-main.c
deleted file mode 100755 (executable)
index 3a42536..0000000
+++ /dev/null
@@ -1,929 +0,0 @@
-/*
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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://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,
- * 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.
- *
- */
-
-#include "ode-app.h"
-#include "ode-password.h"
-
-#define APP_SETTING_LOCKTYPE "org.tizen.setting-locktype"
-#define APP_SETTING_PASSWORD "org.tizen.setting-password"
-#define APP_ODE_PASSWORD "org.tizen.ode-password"
-
-char *encrypt_header_text[] = {
-       "IDS_ST_HEADER_ENCRYPT_DEVICE",
-       "IDS_ST_HEADER_DECRYPT_DEVICE",
-       "IDS_ST_HEADER_ENCRYPT_SD_CARD",
-       "IDS_ST_HEADER_DECRYPT_SD_CARD"
-};
-char *button_text[] = {
-       "IDS_ST_BUTTON_NEXT",
-       "IDS_ST_BUTTON_BACK",
-       "IDS_ST_BUTTON_SCREEN_LOCK_TYPE_ABB",
-       "IDS_ST_BUTTON_CHANGE_PASSWORD_ABB2",
-};
-
-static void update_sdcard_pw_btn_status(void *data);
-
-static void set_icon(appdata_s *ad, int type, char *part)
-{
-       Evas_Object *icon_check, *icon_bar = NULL;
-       int ret;
-       if (ad->dpm_encryption_layout == NULL || ad->icon_check_path == NULL || ad->icon_bar_path == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "invalid parameter");
-               return;
-       }
-       if (type == ICON_CHECK) {
-               icon_check = elm_image_add(ad->dpm_encryption_layout);
-               if (icon_check == NULL) {
-                       dlog_print(DLOG_ERROR, LOG_TAG, "elm_image_add failed");
-                       return;
-               }
-               elm_image_file_set(icon_check, ad->icon_check_path, NULL);
-               evas_object_color_set(icon_check, 153, 153, 153, 255);
-               evas_object_size_hint_align_set(icon_check, EVAS_HINT_FILL, EVAS_HINT_FILL);
-               evas_object_size_hint_weight_set(icon_check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
-               ret = elm_layout_content_set(ad->dpm_encryption_layout, part, icon_check);
-               if (!ret) {
-                       dlog_print(DLOG_ERROR, LOG_TAG, "elm_layout_content_set failed");
-                       return;
-               }
-               evas_object_show(icon_check);
-       } else if (type == ICON_BAR) {
-               icon_bar = elm_image_add(ad->dpm_encryption_layout);
-               if (icon_bar == NULL) {
-                       dlog_print(DLOG_ERROR, LOG_TAG, "elm_image_add failed");
-                       return;
-               }
-               elm_image_file_set(icon_bar, ad->icon_bar_path, NULL);
-               evas_object_color_set(icon_bar, 0, 0, 0, 255);
-               evas_object_size_hint_align_set(icon_bar, EVAS_HINT_FILL, EVAS_HINT_FILL);
-               evas_object_size_hint_weight_set(icon_bar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
-               ret = elm_layout_content_set(ad->dpm_encryption_layout, part, icon_bar);
-               if (!ret) {
-                       dlog_print(DLOG_ERROR, LOG_TAG, "elm_layout_content_set failed");
-                       return;
-               }
-               evas_object_show(icon_bar);
-       }
-}
-
-static void update_next_button_status(appdata_s *ad)
-{
-       dlog_print(DLOG_DEBUG, LOG_TAG, "update_next_button_status start");
-       if (ad->device_info.next_button == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "[Encrypt Device] next button is null");
-               return;
-       }
-
-       if (ad->view_type == ENCRYPT_DEVICE) {
-               if (ad->device_info.battery_status && ad->device_info.charger_status && ad->device_info.locktype_status) {
-                       elm_object_disabled_set(ad->device_info.next_button, EINA_FALSE);
-               } else {
-                       elm_object_disabled_set(ad->device_info.next_button, EINA_TRUE);
-               }
-       } else if (ad->view_type == DECRYPT_DEVICE) {
-               if (ad->device_info.battery_status && ad->device_info.charger_status) {
-                       elm_object_disabled_set(ad->device_info.next_button, EINA_FALSE);
-               } else {
-                       elm_object_disabled_set(ad->device_info.next_button, EINA_TRUE);
-               }
-       } else if (ad->view_type == ENCRYPT_SD_CARD) {
-               if (ad->device_info.sdcard_status && ad->device_info.sdcard_pw_status == 1) {
-                       elm_object_disabled_set(ad->device_info.next_button, EINA_FALSE);
-               } else {
-                       elm_object_disabled_set(ad->device_info.next_button, EINA_TRUE);
-               }
-       }
-}
-
-static void _next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       dlog_print(DLOG_DEBUG, LOG_TAG, "_next_btn_clicked_cb start");
-
-       appdata_s *ad = (appdata_s *) data;
-
-       switch (ad->view_type) {
-       case ENCRYPT_DEVICE:
-               ode_check_encrypt_device_create_view(ad);
-               break;
-       case DECRYPT_DEVICE:
-               ode_confirm_encrypt_device_create_view(ad);
-               break;
-       case ENCRYPT_SD_CARD:
-               ode_check_encrypt_sd_card_create_view(ad);
-               break;
-       case DECRYPT_SD_CARD:
-               ode_confirm_decrypt_sd_card_create_view(ad);
-               break;
-       }
-}
-
-static void _check_next_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       dlog_print(DLOG_DEBUG, LOG_TAG, "_check_next_btn_clicked_cb start");
-
-       appdata_s *ad = (appdata_s *) data;
-
-       switch (ad->view_type) {
-       case ENCRYPT_DEVICE:
-               ode_confirm_encrypt_device_create_view(ad);
-               break;
-       case ENCRYPT_SD_CARD:
-               ode_confirm_encrypt_sd_card_create_view(ad);
-               break;
-       }
-}
-
-static void _prev_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       appdata_s *ad = (appdata_s *)data;
-       elm_naviframe_item_pop(ad->navi_bar);
-}
-
-/*
-static void set_next_btn_layout(Evas_Object* layout, appdata_s* ad, const char* btn_text)
-{
-       Evas_Object* btn_layout;
-       Evas_Object* next_btn;
-
-       btn_layout = ode_create_layout(layout, ad->edj_path, "next_button_layout");
-
-       next_btn = ode_create_button(btn_layout, btn_text, "bottom");
-       ad->device_info.next_button = next_btn;
-       elm_object_part_content_set(btn_layout, "next_button", next_btn);
-
-       evas_object_smart_callback_add(next_btn, "clicked", _next_btn_clicked_cb, ad);
-
-       elm_object_part_content_set(layout, "bottom_layout", btn_layout);
-       return;
-}*/
-
-static void set_next_btn_layout(Evas_Object *layout, appdata_s *ad, const char *btn_text)
-{
-       Evas_Object *btn_layout;
-       Evas_Object *next_btn;
-
-       btn_layout = ode_create_layout(layout, ad->edj_path, "next_button_layout");
-
-       next_btn = ode_create_button(btn_layout, btn_text, "bottom");
-       elm_object_part_content_set(btn_layout, "next_button", next_btn);
-
-       evas_object_smart_callback_add(next_btn, "clicked", _next_btn_clicked_cb, ad);
-       elm_object_part_content_set(layout, "bottom_layout", btn_layout);
-       return;
-}
-
-
-static void set_two_btn_layout(Evas_Object *layout, appdata_s *ad)
-{
-       Evas_Object *btn_layout;
-       Evas_Object *prev_btn, *next_btn;
-
-       btn_layout = ode_create_layout(layout, ad->edj_path, "two_button_layout");
-
-       prev_btn = ode_create_button(layout, __(button_text[1]), "bottom");
-       elm_object_part_content_set(btn_layout, "prev_button", prev_btn);
-       evas_object_smart_callback_add(prev_btn, "clicked", _prev_btn_clicked_cb, ad);
-
-       next_btn = ode_create_button(layout, __(button_text[0]), "bottom");
-       ad->device_info.next_button = next_btn;
-       elm_object_part_content_set(btn_layout, "next_button", next_btn);
-
-       update_next_button_status(ad);
-       evas_object_smart_callback_add(next_btn, "clicked", _check_next_btn_clicked_cb, ad);
-
-       elm_object_part_content_set(layout, "bottom_layout", btn_layout);
-       return;
-}
-
-static void _launch_password_ug_cb(app_control_h ug, app_control_h reply, app_control_result_e result, void *data)
-{
-       if (!result) {
-               char *string_result = NULL;
-               char *current = NULL;
-               app_control_get_extra_data(reply, "result", &string_result);
-               if (string_result == NULL)
-                       return;
-
-               int ret_int = 0;
-               if (strcmp(string_result, "Cancel") == 0)
-                       ret_int = 0;
-               else if (strcmp(string_result, "SETTING_PW_TYPE_ENTER_LOCK_TYPE") == 0 || strcmp(string_result, "SETTING_PW_TYPE_VERIFY_FP_ALT_PASSWORD") == 0)
-                       ret_int = 1;
-
-               free(string_result);
-
-               if (ret_int == 1) {
-                       app_control_h app_ctl;
-                       if (app_control_create(&app_ctl)) {
-                               dlog_print(DLOG_ERROR, LOG_TAG, "app_control_create failed");
-                               return;
-                       }
-                       app_control_get_extra_data(reply, "current", &current);
-                       if (current) {
-                               app_control_add_extra_data(app_ctl, "current", current);
-                               free(current);
-                       }
-                       app_control_set_app_id(app_ctl, APP_SETTING_LOCKTYPE);
-                       app_control_set_launch_mode(app_ctl, APP_CONTROL_LAUNCH_MODE_GROUP);
-                       app_control_send_launch_request(app_ctl, NULL, NULL);
-                       app_control_destroy(app_ctl);
-               }
-       }
-}
-
-static void _locktype_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       /* launch lock type menu */
-       dlog_print(DLOG_DEBUG, LOG_TAG, "locktype button clicked");
-       appdata_s *ad = (appdata_s *) data;
-
-       app_control_h app_ctl = NULL;
-       int ret;
-       int lock_type = 0;
-
-       ret = app_control_create(&app_ctl);
-       if (ret != APP_CONTROL_ERROR_NONE) {
-               dlog_print(DLOG_DEBUG, LOG_TAG, "app_control_create failed");
-               return;
-       }
-
-       vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &lock_type);
-
-       if (lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD || lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) {
-               app_control_add_extra_data(app_ctl, "viewtype", "SETTING_PW_TYPE_ENTER_LOCK_TYPE");
-               app_control_set_app_id(app_ctl, APP_SETTING_PASSWORD);
-               app_control_set_launch_mode(app_ctl, APP_CONTROL_LAUNCH_MODE_GROUP);
-               app_control_send_launch_request(app_ctl, _launch_password_ug_cb, NULL);
-               app_control_destroy(app_ctl);
-
-       } else {
-               app_control_set_app_id(app_ctl, APP_SETTING_LOCKTYPE);
-               app_control_set_launch_mode(app_ctl, APP_CONTROL_LAUNCH_MODE_GROUP);
-               app_control_send_launch_request(app_ctl, NULL, NULL);
-               app_control_destroy(app_ctl);
-       }
-
-       update_next_button_status(ad);
-}
-
-static void _sdcardpw_create_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       dlog_print(DLOG_ERROR, LOG_TAG, "sdcardpw create btn cb start");
-       appdata_s *ad = (appdata_s *)data;
-
-       on_create_password_popup(ad->base);
-       password_popup_set_result_callback(update_sdcard_pw_btn_status, ad);
-}
-
-static void _sdcardpw_change_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       dlog_print(DLOG_ERROR, LOG_TAG, "sdcardpw change btn cb start");
-       appdata_s *ad = (appdata_s *)data;
-
-       on_change_password_popup(ad->base);
-       password_popup_set_result_callback(update_sdcard_pw_btn_status, ad);
-}
-
-static void _sdcardpw_delete_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       dlog_print(DLOG_ERROR, LOG_TAG, "sdcardpw delete btn cb start");
-       appdata_s *ad = (appdata_s *)data;
-
-       on_delete_password_popup(ad->base);
-       password_popup_set_result_callback(update_sdcard_pw_btn_status, ad);
-}
-
-static void update_sdcard_pw_btn_status(void *data)
-{
-       Evas_Object *one_btn_layout, *two_btn_layout;
-       Evas_Object *createpw_btn, *changepw_btn, *deletepw_btn;
-       appdata_s *ad = (appdata_s *)data;
-
-       char *btn_text[] = {
-               "IDS_ST_BUTTON_CREATE_PASSWORD",
-               "IDS_ST_BUTTON_CHANGE_PW_ABB",
-               "IDS_ST_BUTTON_DELETE_PW_ABB",
-       };
-
-       if (ad->device_info.sdcard_pw_status == 0) {
-               /* set create pw button */
-               one_btn_layout = ode_create_layout(ad->dpm_encryption_layout, ad->edj_path, "one_button_layout");
-               createpw_btn = ode_create_button(one_btn_layout, __(btn_text[0]), "default");
-               elm_object_part_content_set(one_btn_layout, "button_base", createpw_btn);
-               evas_object_smart_callback_add(createpw_btn, "clicked", _sdcardpw_create_btn_clicked_cb, ad);
-               elm_object_part_content_set(ad->dpm_encryption_layout, "button_base", one_btn_layout);
-               set_icon(ad, ICON_BAR, "charge_icon");
-       } else if (ad->device_info.sdcard_pw_status == 1) {
-               /* set change pw / delete pw button */
-               two_btn_layout = ode_create_layout(ad->dpm_encryption_layout, ad->edj_path, "two_button_layout");
-               changepw_btn = ode_create_button(two_btn_layout, __(btn_text[1]), "default");
-               deletepw_btn = ode_create_button(two_btn_layout, __(btn_text[2]), "default");
-               elm_object_part_content_set(two_btn_layout, "prev_button", changepw_btn);
-               elm_object_part_content_set(two_btn_layout, "next_button", deletepw_btn);
-               evas_object_smart_callback_add(changepw_btn, "clicked", _sdcardpw_change_btn_clicked_cb, ad);
-               evas_object_smart_callback_add(deletepw_btn, "clicked", _sdcardpw_delete_btn_clicked_cb, ad);
-               elm_object_part_content_set(ad->dpm_encryption_layout, "button_base", two_btn_layout);
-               set_icon(ad, ICON_CHECK, "charge_icon");
-       }
-       update_next_button_status(ad);
-       return;
-}
-
-static void set_locktype_btn_layout(Evas_Object *layout, appdata_s *ad, const char *btn_text)
-{
-       Evas_Object *btn_layout;
-       Evas_Object *locktype_btn;
-
-       btn_layout = ode_create_layout(layout, ad->edj_path, "locktype_button_layout");
-
-       locktype_btn = ode_create_button(btn_layout, btn_text, "default");
-       elm_object_part_content_set(btn_layout, "locktype_button", locktype_btn);
-       evas_object_smart_callback_add(locktype_btn, "clicked", _locktype_btn_clicked_cb, ad);
-
-       elm_object_part_content_set(layout, "button_base", btn_layout);
-       return;
-}
-
-static int battery_status_update(appdata_s *ad)
-{
-       bool connected;
-       int battery_pct, ret;
-       dlog_print(DLOG_DEBUG, LOG_TAG, "battery_status_update start ");
-
-       if (ad->dpm_encryption_layout == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "encrypt layout is null");
-               return -1;
-       }
-
-       /* get battery percent info */
-       ret = device_battery_get_percent(&battery_pct);
-       if (ret != DEVICE_ERROR_NONE) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "device_battery_get_percent failed %d", ret);
-               return -1;
-       }
-
-       if (battery_pct > NEEDED_BATTERY_PERCENT) {
-               set_icon(ad, ICON_CHECK, "battery_icon");
-               ad->device_info.battery_status = 1;
-       } else {
-               set_icon(ad, ICON_BAR, "battery_icon");
-               ad->device_info.battery_status = 0;
-       }
-
-       /* get charger connected info */
-       ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_CHARGER_CONNECTED, &connected);
-       if (ret != RUNTIME_INFO_ERROR_NONE) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "get runtime info fail");
-               return -1;
-       }
-       if (connected) {
-               set_icon(ad, ICON_CHECK, "charge_icon");
-               ad->device_info.charger_status = 1;
-       } else {
-               set_icon(ad, ICON_BAR, "charge_icon");
-               ad->device_info.charger_status = 0;
-       }
-
-       update_next_button_status(ad);
-       return 0;
-}
-
-static int sdcard_status_update(appdata_s *ad)
-{
-       int sdcard_status;
-
-       if (ad->dpm_encryption_layout == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "encrypt layout is null");
-               return -1;
-       }
-
-       vconf_get_int(VCONFKEY_SYSMAN_MMC_STATUS, &sdcard_status);
-       if (sdcard_status != VCONFKEY_SYSMAN_MMC_MOUNTED) {
-               set_icon(ad, ICON_BAR, "battery_icon");
-               ad->device_info.sdcard_status = 0;
-       } else {
-               /* available */
-               set_icon(ad, ICON_CHECK, "battery_icon");
-               ad->device_info.sdcard_status = 1;
-       }
-
-       update_next_button_status(ad);
-       return 0;
-}
-
-static int locktype_status_update(appdata_s *ad)
-{
-       int lock_type;
-
-       if (ad->dpm_encryption_layout == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "encrypt layout is null");
-               return -1;
-       }
-
-       vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &lock_type);
-       if (lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD || lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) {
-               /* available */
-               set_icon(ad, ICON_CHECK, "locktype_icon");
-               ad->device_info.locktype_status = 1;
-       } else {
-               /* unavailable */
-               set_icon(ad, ICON_BAR, "locktype_icon");
-               ad->device_info.locktype_status = 0;
-       }
-       update_next_button_status(ad);
-       return 0;
-}
-
-static void battery_charger_changed_cb(runtime_info_key_e key, void *data)
-{
-       appdata_s *ad = (appdata_s *) data;
-       if (key == RUNTIME_INFO_KEY_CHARGER_CONNECTED)
-               battery_status_update(ad);
-}
-
-void battery_changed_cb(device_callback_e type, void *value, void *user_data)
-{
-       appdata_s *ad = (appdata_s *) user_data;
-       if (type == DEVICE_CALLBACK_BATTERY_CAPACITY)
-               battery_status_update(ad);
-}
-
-void sdcard_status_changed_cb(keynode_t *node, void *data)
-{
-       appdata_s *ad = (appdata_s *) data;
-       sdcard_status_update(ad);
-}
-
-void locktype_status_changed_cb(keynode_t *node, void *data)
-{
-       appdata_s *ad = (appdata_s *) data;
-       locktype_status_update(ad);
-}
-
-static int battery_cb_register(appdata_s *ad)
-{
-       int ret;
-
-       /* register runtime callback : connected charger */
-       ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_CHARGER_CONNECTED, battery_charger_changed_cb, ad);
-       if (ret != RUNTIME_INFO_ERROR_NONE) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "runtime_info_set_changed_cb failed: %d", ret);
-               return -1;
-       }
-
-       /* register runtime callback : battery percent */
-       ret = device_add_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, battery_changed_cb, ad);
-       if (ret != DEVICE_ERROR_NONE) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "device_add_callback failed: %d", ret);
-               return -1;
-       }
-
-       return 0;
-}
-
-static int locktype_cb_register(appdata_s *ad)
-{
-       int ret;
-
-       /* register vconf notify for locktype */
-       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, locktype_status_changed_cb, ad);
-       if (ret != 0) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "runtime_info_set_changed_cb failed: %d", ret);
-               return -1;
-       }
-
-       return 0;
-}
-
-void _back_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       ui_app_exit();
-}
-
-static Eina_Bool _pop_cb(void *data, Elm_Object_Item *it)
-{
-       ui_app_exit();
-       return EINA_FALSE;
-}
-
-void sw_back_btn_set(Evas_Object *obj, const char *title_label, Evas_Object *content)
-{
-       Evas_Object *back_btn = NULL;
-
-       back_btn = elm_button_add(obj);
-       elm_object_style_set(back_btn, "naviframe/back_btn/default");
-       evas_object_smart_callback_add(back_btn, "clicked", _back_btn_clicked_cb, obj);
-
-       Elm_Object_Item *nf_it = elm_naviframe_item_push(obj, title_label, back_btn, NULL, content, NULL);
-       elm_naviframe_item_pop_cb_set(nf_it, _pop_cb, NULL);
-}
-
-static Eina_Bool check_view_pop_cb(void *data, Elm_Object_Item *it)
-{
-       int ret;
-
-       appdata_s *ad = (appdata_s *)data;
-       switch (ad->view_type) {
-       case ENCRYPT_DEVICE:
-               ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, locktype_status_changed_cb);
-               if (ret != 0)
-                       dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister lockscreen type callback");
-               /* unregister runtime info callback */
-               ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_CHARGER_CONNECTED);
-               if (ret != 0)
-                       dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister runtime info callback");
-               /* unregister battery percent callback */
-               ret = device_remove_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, battery_changed_cb);
-               if (ret != 0)
-                       dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister battery capacity callback");
-               break;
-       case DECRYPT_DEVICE:
-               /* unregister runtime info callback */
-               ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_CHARGER_CONNECTED);
-               if (ret != 0)
-                       dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister runtime info callback");
-               /* unregister battery percent callback */
-               ret = device_remove_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, battery_changed_cb);
-               if (ret != 0)
-                       dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister battery capacity callback");
-               break;
-       case ENCRYPT_SD_CARD:
-               ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_MMC_STATUS, sdcard_status_changed_cb);
-               if (ret != 0)
-                       dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister sdcard callback");
-               break;
-       }
-
-       return EINA_TRUE;
-}
-
-static void _change_pw_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       dlog_print(DLOG_INFO, LOG_TAG, "change password button click");
-}
-
-static void set_change_pw_layout(Evas_Object *layout, appdata_s *ad, const char *btn_text)
-{
-       Evas_Object *btn_layout;
-
-       btn_layout = ode_create_layout(layout, ad->edj_path, "one_button_layout");
-
-       btn_layout = ode_create_button(btn_layout, btn_text, "default");
-       elm_object_part_content_set(btn_layout, "button_base", btn_layout);
-       evas_object_smart_callback_add(btn_layout, "clicked", _change_pw_btn_clicked_cb, ad);
-
-       elm_object_part_content_set(layout, "change_pw_btn_base", btn_layout);
-       return;
-}
-
-#if 0
-static int sdcard_pw_status_update(appdata_s *ad)
-{
-       dlog_print(DLOG_INFO, LOG_TAG, "sdcard_pw_status_update start ");
-       if (ad->dpm_encryption_layout == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "encrypt layout is null");
-               return -1;
-       }
-
-       if (ad->device_info.sdcard_pw_status == 0) {
-               elm_object_signal_emit(ad->sdcard_pw_layout, "hide,btn,changepw", "sdcard_pw_button_layout");
-               elm_object_signal_emit(ad->sdcard_pw_layout, "hide,btn,deletepw", "sdcard_pw_button_layout");
-               elm_object_signal_emit(ad->sdcard_pw_layout, "show,btn,createpw", "sdcard_pw_button_layout");
-               set_icon(ad, ICON_BAR, "charge_icon");
-       } else if (ad->device_info.sdcard_pw_status == 1) {
-               elm_object_signal_emit(ad->sdcard_pw_layout, "hide,btn,createpw", "sdcard_pw_button_layout");
-               elm_object_signal_emit(ad->sdcard_pw_layout, "show,btn,deletepw", "sdcard_pw_button_layout");
-               elm_object_signal_emit(ad->sdcard_pw_layout, "show,btn,changepw", "sdcard_pw_button_layout");
-               set_icon(ad, ICON_CHECK, "charge_icon");
-       }
-       update_next_button_status(ad);
-       return 0;
-}
-#endif
-
-void ode_encrypt_device_create_view(appdata_s *ad)
-{
-       Evas_Object *navi_bar = ad->navi_bar;
-       Evas_Object *base_layout = NULL;
-       Evas_Object *encrypt_msg = NULL;
-       Evas_Object *encrypt_device_layout = NULL;
-
-       char string[PATH_MAX] = "";
-
-       char *encrypt_text[] = {
-               "IDS_ST_BODY_ENCRYPTING_YOUR_PHONE_WILL_SECURE_THE_APPS_DATA_AND_OTHER_CONTENT_ON_IT_N_NTO_DECRYPT_YOUR_PHONE_ONCE_MSG",
-       };
-
-       if (navi_bar == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "navi_bar is null");
-               return;
-       }
-
-       base_layout = ode_create_layout(navi_bar, ad->edj_path, "base_layout");
-       encrypt_device_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_first_layout");
-       ad->dpm_encryption_layout = encrypt_device_layout;
-
-       snprintf(string, sizeof(string), "%s", __(encrypt_text[0]));
-       encrypt_msg = ode_create_textblock(encrypt_device_layout, string, MSG_TEXT_STYLE);
-       elm_object_part_content_set(encrypt_device_layout, "msg_content", encrypt_msg);
-
-       set_next_btn_layout(base_layout, ad,  __(button_text[0]));
-
-       elm_object_part_content_set(base_layout, "content_layout", encrypt_device_layout);
-
-       snprintf(string, sizeof(string), "%s", __(encrypt_header_text[0]));
-       sw_back_btn_set(navi_bar, string, base_layout);
-}
-
-void ode_check_encrypt_device_create_view(appdata_s *ad)
-{
-       Evas_Object *navi_bar = ad->navi_bar;
-       Evas_Object *base_layout = NULL;
-       Evas_Object *check_msg = NULL;
-       Evas_Object *encryption_check_layout = NULL;
-       Evas_Object *genlist = NULL;
-       Elm_Object_Item *item;
-       Elm_Genlist_Item_Class *itc;
-
-       dlog_print(DLOG_DEBUG, LOG_TAG, "start ode_check_encrypt_device_create_view");
-       char string[PATH_MAX] = "";
-       char *check_text[2][3] = {
-               {
-                       "IDS_ST_BODY_THE_ENCRYPTION_PROCESS_MAY_TAKE_A_LONG_TIME_DEPENDING_ON_THE_AMOUNT_OF_DATA_MSG",
-                       "",
-                       "IDS_ST_BODY_TO_ENCRYPT_YOUR_DEVICE_C_ABB"
-               },
-               {
-                       "IDS_ST_BODY_DECRYPTING_YOUR_DEVICE_WILL_DECRYPT_THE_APPS_DATA_AND_OTHER_CONTENT_ON_YOUR_DEVICE",
-                       "IDS_ST_BODY_THIS_MAY_TAKE_A_LONG_TIME_DEPENDING_ON_THE_AMOUNT_OF_DATA_INTERRUPTING_THIS_PROCESS_MAY_CAUSE_MSG",
-                       "IDS_ST_HEADER_TO_DECRYPT_YOUR_DEVICE_C_ABB"
-               }
-       };
-
-       char *status_text[] = {
-               "IDS_ST_BODY_CHARGE_THE_BATTERY_TO_AT_LEAST_PDP",
-               "IDS_ST_BODY_CONNECT_THE_DEVICE_TO_A_CHARGER",
-               "IDS_ST_BODY_SET_THE_SCREEN_LOCK_TYPE_TO_PASSWORD"
-       };
-
-       int ret;
-       char **text = NULL;
-
-       if (navi_bar == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "navi_bar is null");
-               return;
-       }
-
-       base_layout = ode_create_layout(navi_bar, ad->edj_path, "base_layout");
-       encryption_check_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_check_layout");
-       ad->dpm_encryption_layout = encryption_check_layout;
-
-       switch (ad->view_type) {
-       case ENCRYPT_DEVICE:
-               text = check_text[0];
-               snprintf(string, sizeof(string), "%s", __(text[0]));
-               break;
-       case DECRYPT_DEVICE:
-               text = check_text[1];
-               snprintf(string, sizeof(string), "%s<br><br>%s", __(text[0]), __(text[1]));
-               break;
-       }
-
-       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
-       elm_object_part_content_set(encryption_check_layout, "msg_content", check_msg);
-
-       /* add group index */
-       genlist = elm_genlist_add(encryption_check_layout);
-       elm_object_style_set(genlist, "solid/default");
-       elm_layout_content_set(encryption_check_layout, "genlist_base", genlist);
-       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
-
-       itc =  ode_create_genlist_item_class("group_index", ode_group_text_get, NULL);
-       ode_append_genlist_item(genlist, itc, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, text[2]);
-
-       /* get battery info */
-       ret = battery_status_update(ad);
-       if (ret != 0) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "battery_status_update failed");
-               return;
-       }
-
-       ret = battery_cb_register(ad);
-       if (ret != 0) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "battery_cb_register failed");
-               return;
-       }
-
-       if (ad->view_type == ENCRYPT_DEVICE) {
-               /* get locktype */
-               ret = locktype_status_update(ad);
-               if (ret != 0) {
-                       dlog_print(DLOG_ERROR, LOG_TAG, "locktype_status_update failed");
-                       return;
-               }
-
-               ret = locktype_cb_register(ad);
-               if (ret != 0) {
-                       dlog_print(DLOG_ERROR, LOG_TAG, "locktype_cb_register failed");
-                       return;
-               }
-
-               snprintf(string, sizeof(string), "%s", __(status_text[2]));
-               check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
-               elm_object_part_content_set(encryption_check_layout, "locktype_text", check_msg);
-
-               set_locktype_btn_layout(encryption_check_layout, ad, __(button_text[2]));
-       }
-
-       snprintf(string, sizeof(string), __(status_text[0]), NEEDED_BATTERY_PERCENT);
-       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
-       elm_object_part_content_set(encryption_check_layout, "battery_text", check_msg);
-
-       snprintf(string, sizeof(string), "%s", __(status_text[1]));
-       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
-       elm_object_part_content_set(encryption_check_layout, "charge_text", check_msg);
-
-       elm_object_part_content_set(base_layout, "content_layout", encryption_check_layout);
-
-       /* set bottom button */
-       if (ad->view_type == ENCRYPT_DEVICE) {
-               set_two_btn_layout(base_layout, ad);
-               item = elm_naviframe_item_push(navi_bar, __(encrypt_header_text[ad->view_type]), NULL, NULL, base_layout, NULL);
-               elm_naviframe_item_pop_cb_set(item, check_view_pop_cb, ad);
-       } else {
-               set_next_btn_layout(base_layout, ad, __(button_text[0]));
-               sw_back_btn_set(navi_bar, __(encrypt_header_text[ad->view_type]), base_layout);
-       }
-}
-
-void ode_encrypt_sd_card_create_view(appdata_s *ad)
-{
-       Evas_Object *navi_bar = ad->navi_bar;
-       Evas_Object *base_layout = NULL;
-       Evas_Object *encrypt_msg = NULL;
-       Evas_Object *encrypt_device_layout = NULL;
-
-       char string[PATH_MAX] = "";
-
-       char *encrypt_text[] = {
-               "IDS_ST_BODY_ENCRYPTING_YOUR_SD_CARD_WILL_PROTECT_ITS_DATA_IF_ITS_LOST_OR_STOLEN_ENCRYPTED_SD_CARDS_CAN_ONLY_MSG",
-               "IDS_ST_BODY_ONCE_THE_SD_CARD_IS_ENCRYPTED_A_PASSWORD_IS_REQUIRED_TO_USE_IT_THE_SAME_PASSWORD_MUST_MSG"
-       };
-
-       if (navi_bar == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "navi_bar is null");
-               return;
-       }
-
-       base_layout = ode_create_layout(navi_bar, ad->edj_path, "base_layout");
-       encrypt_device_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_first_layout");
-       ad->dpm_encryption_layout = encrypt_device_layout;
-
-       snprintf(string, sizeof(string), "%s<br><br>%s", __(encrypt_text[0]), __(encrypt_text[1]));
-       encrypt_msg = ode_create_textblock(encrypt_device_layout, string, MSG_TEXT_STYLE);
-       elm_object_part_content_set(encrypt_device_layout, "msg_content", encrypt_msg);
-
-       set_next_btn_layout(base_layout, ad,  __(button_text[0]));
-
-       elm_object_part_content_set(base_layout, "content_layout", encrypt_device_layout);
-
-       snprintf(string, sizeof(string), "%s", __(encrypt_header_text[2]));
-       sw_back_btn_set(navi_bar, string, base_layout);
-}
-
-void ode_decrypt_sd_card_create_view(appdata_s *ad)
-{
-       Evas_Object *navi_bar = ad->navi_bar;
-       Evas_Object *base_layout = NULL;
-       Evas_Object *encrypt_msg = NULL;
-       Evas_Object *decrypt_sd_card_layout = NULL;
-
-       char string[PATH_MAX] = "";
-
-       char *encrypt_text[] = {
-               "IDS_ST_BODY_THE_DECRYPTION_PROCESS_MAY_TAKE_A_LONG_TIME_MSG"
-       };
-
-       if (navi_bar == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "navi_bar is null");
-               return;
-       }
-
-       base_layout = ode_create_layout(navi_bar, ad->edj_path, "base_layout");
-       decrypt_sd_card_layout = ode_create_layout(base_layout, ad->edj_path, "decrypt_sdcard_layout");
-       ad->dpm_encryption_layout = decrypt_sd_card_layout;
-
-       snprintf(string, sizeof(string), "%s", __(encrypt_text[0]));
-       encrypt_msg = ode_create_textblock(decrypt_sd_card_layout, string, MSG_TEXT_STYLE);
-       elm_object_part_content_set(decrypt_sd_card_layout, "msg_content", encrypt_msg);
-
-       set_change_pw_layout(decrypt_sd_card_layout, ad, __(button_text[3]));
-       set_next_btn_layout(base_layout, ad,  __(button_text[0]));
-
-       elm_object_part_content_set(base_layout, "content_layout", decrypt_sd_card_layout);
-
-       snprintf(string, sizeof(string), "%s", __(encrypt_header_text[3]));
-       sw_back_btn_set(navi_bar, string, base_layout);
-}
-
-void ode_check_encrypt_sd_card_create_view(appdata_s *ad)
-{
-       Evas_Object *navi_bar = ad->navi_bar;
-       Evas_Object *base_layout = NULL;
-       Evas_Object *check_msg = NULL;
-       Evas_Object *encryption_check_layout = NULL;
-       Evas_Object *genlist = NULL;
-       Elm_Object_Item *item;
-       Elm_Genlist_Item_Class *itc;
-
-       dlog_print(DLOG_DEBUG, LOG_TAG, "start ode_check_encrypt_sd_card_create_view");
-       char string[PATH_MAX] = "";
-       char *check_text[] = {
-               "IDS_ST_BODY_THE_ENCRYPTION_PROCESS_MAY_TAKE_A_LONG_TIME_DEPENDING_ON_THE_AMOUNT_OF_DATA_MSG",
-               "IDS_ST_BODY_MAKE_SURE_THAT_THE_BATTERY_IS_CHARGED_AND_KEEP_THE_PHONE_PLUGGED_IN_UNTIL_ENCRYPTION_IS_COMPLETE",
-               "IDS_ST_BODY_TO_ENCRYPT_YOUR_SD_CARD_C",
-       };
-
-       char *status_text[] = {
-               "IDS_ST_BODY_INSERT_THE_SD_CARD_ABB",
-               "IDS_ST_BODY_CREATE_AN_SD_CARD_PASSWORD"
-       };
-
-       int ret;
-       if (navi_bar == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "navi_bar is null");
-               return;
-       }
-
-       base_layout = ode_create_layout(navi_bar, ad->edj_path, "base_layout");
-       encryption_check_layout = ode_create_layout(base_layout, ad->edj_path, "encrypt_device_check_layout");
-       ad->dpm_encryption_layout = encryption_check_layout;
-
-       snprintf(string, sizeof(string), "%s</br>%s", __(check_text[0]), __(check_text[1]));
-       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
-       elm_object_part_content_set(encryption_check_layout, "msg_content", check_msg);
-
-       /* add group index */
-       genlist = elm_genlist_add(encryption_check_layout);
-       elm_object_style_set(genlist, "solid/default");
-       elm_layout_content_set(encryption_check_layout, "genlist_base", genlist);
-       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
-
-       itc =  ode_create_genlist_item_class("group_index", ode_group_text_get, NULL);
-       ode_append_genlist_item(genlist, itc, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, check_text[2]);
-
-       /* get sdcard info */
-       ret = sdcard_status_update(ad);
-       if (ret != 0) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "sdcard_status_update failed");
-               return;
-       }
-
-       /* register vconf notify callback : sdcard status */
-       ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_MMC_STATUS, sdcard_status_changed_cb, ad);
-       if (ret != 0) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "runtime_info_set_changed_cb failed: %d", ret);
-               return;
-       }
-
-       snprintf(string, sizeof(string), "%s", __(status_text[0]));
-       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
-       elm_object_part_content_set(encryption_check_layout, "battery_text", check_msg);
-
-#if 0
-       /* using signal */
-       set_sdcard_pw_btn_layout(encryption_check_layout, ad);
-       sdcard_pw_status_update(ad);
-#endif
-
-       /* using layout */
-       update_sdcard_pw_btn_status(ad);
-
-       snprintf(string, sizeof(string), "%s", __(status_text[1]));
-       check_msg = ode_create_textblock(encryption_check_layout, string, MSG_TEXT_STYLE);
-       elm_object_part_content_set(encryption_check_layout, "charge_text", check_msg);
-       elm_object_part_content_set(base_layout, "content_layout", encryption_check_layout);
-
-       /* set bottom button */
-       set_two_btn_layout(base_layout, ad);
-       item = elm_naviframe_item_push(navi_bar, __(encrypt_header_text[ad->view_type]), NULL, NULL, base_layout, NULL);
-       elm_naviframe_item_pop_cb_set(item, check_view_pop_cb, ad);
-}
-
index c82efd2d35a89aac02e3c7d864c7d61bb51e2815..539dff648ea340ae3e3565c7c57985c2c6083f19 100755 (executable)
@@ -38,7 +38,7 @@ struct submain {
        },
 };
 
-static Evas_Object *create_mainview(appdata_s *ad)
+Evas_Object *create_mainview(appdata_s *ad)
 {
        Evas_Object *base_layout = NULL;
        Evas_Object *navi_bar = NULL;
@@ -50,6 +50,10 @@ static Evas_Object *create_mainview(appdata_s *ad)
        }
 
        navi_bar = ode_create_navigation(base_layout);
+       if (navi_bar == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "failed create navigation");
+               return NULL;
+       }
        elm_naviframe_prev_btn_auto_pushed_set(navi_bar, EINA_TRUE);
        ad->navi_bar = navi_bar;
 
@@ -58,7 +62,7 @@ static Evas_Object *create_mainview(appdata_s *ad)
                ode_encrypt_device_create_view(ad);
                break;
        case DECRYPT_DEVICE:
-               ode_check_encrypt_device_create_view(ad);
+               ode_check_decrypt_device_create_view(ad);
                break;
        case ENCRYPT_SD_CARD:
                ode_encrypt_sd_card_create_view(ad);
@@ -70,7 +74,7 @@ static Evas_Object *create_mainview(appdata_s *ad)
        return base_layout;
 }
 
-static int create_base_gui(appdata_s *ad)
+int create_base_gui(appdata_s *ad)
 {
        dlog_print(DLOG_DEBUG, LOG_TAG, "### create base gui start  ###");
        char *res_path = NULL;
@@ -80,7 +84,6 @@ static int create_base_gui(appdata_s *ad)
        res_path = app_get_resource_path();
        if (res_path == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "failed get resource path");
-               ui_app_exit();
                return 1;
        }
        snprintf(edj_path, PATH_MAX, "%s%s", res_path, "org.tizen.ode.edj");
@@ -99,6 +102,10 @@ static int create_base_gui(appdata_s *ad)
        ad->conform = ode_create_conformant(ad->win);
 
        ad->base = create_mainview(ad);
+       if (ad->base == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "failed create mainview");
+               return 1;
+       }
        elm_object_content_set(ad->conform, ad->base);
        evas_object_show(ad->win);
 
@@ -143,7 +150,7 @@ static void app_control(app_control_h app_control, void *data)
 
        if (create_base_gui(ad) != 0) {
                dlog_print(DLOG_ERROR, LOG_TAG, "### create base gui fail ###");
-               return;
+               ui_app_exit();
        }
 }
 
@@ -174,7 +181,7 @@ static void app_terminate(void *data)
                if (ret != 0)
                        dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister runtime info callback");
                /* unregister battery percent callback */
-               ret = device_remove_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, battery_changed_cb);
+               ret = device_remove_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, enc_battery_changed_cb);
                if (ret != 0)
                        dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister battery capacity callback");
                break;
@@ -184,7 +191,7 @@ static void app_terminate(void *data)
                if (ret != 0)
                        dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister runtime info callback");
                /* unregister battery percent callback */
-               ret = device_remove_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, battery_changed_cb);
+               ret = device_remove_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, enc_battery_changed_cb);
                if (ret != 0)
                        dlog_print(DLOG_ERROR, LOG_TAG, "Failed to unregister battery capacity callback");
                break;
index 3ed8537fff1dc0c842fe648c78600e9187ed770e..1f36a67623218f4c76f96b33d2f286ea911d2014 100755 (executable)
@@ -150,8 +150,7 @@ static void confirm_password_popup_confirm_cb(void *data, Evas_Object *obj, void
                evas_object_del(popup_data->popup);
                create_password_message_popup(popup_data);
        } else {
-               if (popup_data->entry_data)
-                       snprintf(popup_data->entry_data, PATH_MAX, "%s", elm_entry_entry_get(confirm_entry));
+               snprintf(popup_data->entry_data, PATH_MAX, "%s", elm_entry_entry_get(confirm_entry));
                evas_object_del(popup_data->popup);
                password_result_callback(popup_data, "success");
        }
index 283018d2bdd25bde1775918e9767b1363a792e20..088126cbdd5f68f8cc084a8da477d348c2ab1a53 100755 (executable)
@@ -81,8 +81,7 @@ static void enter_password_popup_confirm_cb(void *data, Evas_Object *obj, void *
                        return;
                }
 
-               if (popup_data->entry_data)
-                       snprintf(popup_data->entry_data, PATH_MAX, "%s", elm_entry_entry_get(entry));
+               snprintf(popup_data->entry_data, PATH_MAX, "%s", elm_entry_entry_get(entry));
 
                enter_password_mode = 0;
                evas_object_del(popup_data->popup);
index 4ab13cb5fea7ea5d4147f70aff76bfc2099d0751..9d124c95d5ea543e97c32b77829cd923e043dc6e 100755 (executable)
@@ -80,8 +80,10 @@ void password_result_callback(popup_data_s *data, const char *result)
                        dlog_print(DLOG_ERROR, LOG_TAG, "failed to create external data");
                        return;
                }
-               ad->entry_data = data->entry_data;
-               ad->device_info.sdcard_pw_status = 1;
+               if (ad) {
+                       ad->entry_data = data->entry_data;
+                       ad->device_info.sdcard_pw_status = 1;
+               }
                break;
        case CHANGE_PASSWORD:
                ret = ode_external_encryption_change_password(data->entry_data_old, data->entry_data);
@@ -89,8 +91,10 @@ void password_result_callback(popup_data_s *data, const char *result)
                        dlog_print(DLOG_ERROR, LOG_TAG, "failed to change external data");
                        return;
                }
-               ad->entry_data = data->entry_data;
-               ad->device_info.sdcard_pw_status = 1;
+               if (ad) {
+                       ad->entry_data = data->entry_data;
+                       ad->device_info.sdcard_pw_status = 1;
+               }
                break;
        case DELETE_PASSWORD:
                ret = ode_external_encryption_clean_password(data->entry_data);
@@ -98,8 +102,10 @@ void password_result_callback(popup_data_s *data, const char *result)
                        dlog_print(DLOG_ERROR, LOG_TAG, "failed to delete external data");
                        return;
                }
-               ad->entry_data = NULL;
-               ad->device_info.sdcard_pw_status = 0;
+               if (ad) {
+                       ad->entry_data = NULL;
+                       ad->device_info.sdcard_pw_status = 0;
+               }
                break;
        case INSERT_SD_CARD:
                ret = ode_external_encryption_mount(data->entry_data);
@@ -115,8 +121,12 @@ void password_result_callback(popup_data_s *data, const char *result)
                        dlog_print(DLOG_ERROR, LOG_TAG, "failed to create internal data");
                        return;
                }
+               if (ad == NULL) {
+                       dlog_print(DLOG_ERROR, LOG_TAG, "failed to get encryption option");
+                       return;
+               }
                ret = ode_internal_encryption_encrypt(data->entry_data, ad->device_info.device_option);
-               if (ret != 0) {
+               if (ret != ODE_ERROR_NONE) {
                        dlog_print(DLOG_DEBUG, LOG_TAG, "failed to encrypt internal storage");
                        return;
                }
diff --git a/tools/apps/ode/src/sdcard.c b/tools/apps/ode/src/sdcard.c
new file mode 100755 (executable)
index 0000000..4ee255f
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Tizen ODE application
+ *
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *
+ * 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://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,
+ * 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.
+ *
+ */
+
+#include "ode-app.h"
+
+int sdcard_icon_status_update(appdata_s *ad)
+{
+       int sdcard_status;
+
+       if (ad->encryption_layout == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "encrypt layout is null");
+               return -1;
+       }
+
+       vconf_get_int(VCONFKEY_SYSMAN_MMC_STATUS, &sdcard_status);
+       if (sdcard_status != VCONFKEY_SYSMAN_MMC_MOUNTED) {
+               set_icon(ad, ICON_BAR, "battery_icon");
+               ad->device_info.sdcard_status = 0;
+       } else {
+               /* available */
+               set_icon(ad, ICON_CHECK, "battery_icon");
+               ad->device_info.sdcard_status = 1;
+       }
+       return 0;
+}
+
+int sdcard_cb_register(vconf_callback_fn callback, void* user_data)
+{
+       int ret;
+
+       /* register vconf notify callback : sdcard status */
+       ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_MMC_STATUS, callback, user_data);
+       if (ret != 0) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "runtime_info_set_changed_cb failed: %d", ret);
+               return -1;
+       }
+       return 0;
+}