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")
#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;
char* sdcard_pw;
Evas_Object *next_button;
-} dpm_encryption_info_s;
+} ode_encryption_info_s;
typedef enum {
ENCRYPT_DEVICE,
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;
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;
#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);
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__ */
--- /dev/null
+/*
+ * 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;
+}
+
--- /dev/null
+/*
+ *
+ * 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);
+}
--- /dev/null
+/*
+ *
+ * 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);
+}
--- /dev/null
+/*
+ *
+ * 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);
+}
+
--- /dev/null
+/*
+ *
+ * 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);
+}
--- /dev/null
+/*
+ *
+ * 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);
+}
--- /dev/null
+/*
+ *
+ * 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);
+}
--- /dev/null
+/*
+ *
+ * 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);
+}
--- /dev/null
+/*
+ *
+ * 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);
+}
--- /dev/null
+/*
+ *
+ * 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);
+}
--- /dev/null
+/*
+ *
+ * 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);
+}
--- /dev/null
+/*
+ * 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", ¤t);
+ 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);
+ }
+}
--- /dev/null
+/*
+ *
+ * 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;
+}
+++ /dev/null
-/*
- *
- * 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);
-}
+++ /dev/null
-/*
- *
- * 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", ¤t);
- 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);
-}
-
},
};
-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;
}
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;
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);
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;
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");
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);
if (create_base_gui(ad) != 0) {
dlog_print(DLOG_ERROR, LOG_TAG, "### create base gui fail ###");
- return;
+ ui_app_exit();
}
}
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;
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;
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");
}
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);
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);
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);
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);
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;
}
--- /dev/null
+/*
+ * 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;
+}