From: seolhee, kim Date: Thu, 12 May 2016 07:35:59 +0000 (+0900) Subject: Add toast syspopup and modify popup text X-Git-Tag: accepted/tizen/common/20160524.150236~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=037e06c3eaed44ba8811b613aed05b36106fabfa;p=platform%2Fcore%2Fsecurity%2Fdevice-policy-manager.git Add toast syspopup and modify popup text Change-Id: Ic2d5dd76b6d44ba833a817dfcb021ea1cd1ae919 Signed-off-by: seolhee, kim --- diff --git a/tools/syspopup/include/dpm-syspopup.h b/tools/syspopup/include/dpm-syspopup.h index 40fa8d1..9819caa 100644 --- a/tools/syspopup/include/dpm-syspopup.h +++ b/tools/syspopup/include/dpm-syspopup.h @@ -36,15 +36,24 @@ #endif #define LOG_TAG "org.tizen.dpm-syspopup" -#define DPM_SYSPOPUP_MAX 100 +#define __(str) dgettext("dpm-syspopup", str) + +#define DPM_SYSPOPUP_DEFAULT_STATUS "stop" typedef struct { - const char *name; - const char *title; - const char *content; + const char *id; + char *title; + char *content; + char *style; + char *left_btn; + char *right_btn; + void (*left_btn_cb)(void *data, Evas_Object *obj, void *event_info); + void (*right_btn_cb)(void *data, Evas_Object *obj, void *event_info); } popup_info_s; -void _create_syspopup(const char *popup_name); -popup_info_s *_get_dpm_popup_info(const char *popup_name); +popup_info_s *_get_popup_info(const char *id); +int _get_popup_text(const char *id, const char *status, char *header, char *body); + +void _create_syspopup(const char *id, char *style, const char *status, const char *user_data); #endif /* __DPM_SYSPOPUP_H__ */ diff --git a/tools/syspopup/po/en_US.po b/tools/syspopup/po/en_US.po index ffb0222..b6dfca7 100644 --- a/tools/syspopup/po/en_US.po +++ b/tools/syspopup/po/en_US.po @@ -1,89 +1,83 @@ -msgid "IDS_DPM_BODY_PREVENT_USB_DEBUGGING" -msgstr "Security policy prevents use of usb debugging." +msgid "IDS_DPM_CANCEL" +msgstr "Cancel" -msgid "IDS_DPM_HEADER_DEBUGGING_POLICY" -msgstr "Debugging Policy" +msgid "IDS_DPM_OK" +msgstr "OK" -msgid "IDS_DPM_BODY_PREVENT_CLIPBOARD" -msgstr "Security policy prevents use of clipboard." +msgid "IDS_DPM_BODY_WIPE_DATA" +msgstr "Security policy wipe the data on device." -msgid "IDS_DPM_HEADER_CLIPBOARD_POLICY" -msgstr "Clipboard Policy" - -msgid "IDS_DPM_BODY_PREVENT_BLUETOOTH" -msgstr "Security policy prevents use of bluetooth." - -msgid "IDS_DPM_HEADER_BLUETOOTH_POLICY" -msgstr "Bluetooth Policy" +msgid "IDS_DPM_BODY_PASSWORD_EXPIRES" +msgstr "Password expired." -msgid "IDS_DPM_BODY_WIPE_STORAGE_DATA" -msgstr "Wipe data on device." +msgid "IDS_DPM_BODY_PASSWORD_RESET" +msgstr "Security policy set a new password." -msgid "IDS_DPM_BODY_PREVENT_STORAGE_DECRYPTION" -msgstr "Security policy prevents storage decryption." +msgid "IDS_DPM_BODY_PASSWORD_ENFORCE_CHANGE" +msgstr "Security policy enforce the password change." -msgid "IDS_DPM_BODY_PREVENT_EXTERNAL_STORAGE" -msgstr "Security policy prevents use of external storage." +msgid "IDS_DPM_PASSWORD" +msgstr "Password" -msgid "IDS_DPM_HEADER_STORAGE_POLICY" -msgstr "Storage Policy" +msgid "IDS_DPM_SCREEN_CAPTURE" +msgstr "Screen capture" -msgid "IDS_DPM_BODY_PREVENT_SETTINGS_CHANGES" -msgstr "Security policy prevents use of settings changes." +msgid "IDS_DPM_BROWSER" +msgstr "Browser" -msgid "IDS_DPM_HEADER_SETTING_POLICY" -msgstr "Setting Policy" +msgid "IDS_DPM_MESSAGE_RECEIVING" +msgstr "Receiving SMS/MMS" -msgid "IDS_DPM_BODY_PREVENT_LOCATION" -msgstr "Security policy prevents use of location data." +msgid "IDS_DPM_MESSAGE_SENDING" +msgstr "Sending SMS/MMS" -msgid "IDS_DPM_HEADER_LOCATION_POLICY" -msgstr "Location Policy" +msgid "IDS_DPM_USB_DEBUGGING" +msgstr "USB debugging" -msgid "IDS_DPM_BODY_PREVENT_MICROPHONE" -msgstr "Security policy prevents use of microphone." +msgid "IDS_DPM_SETTINGS_CHANGES" +msgstr "Settings changes" -msgid "IDS_DPM_HEADER_RECORD_POLICY" -msgstr "Record Policy" +msgid "IDS_DPM_CLIPBOARD" +msgstr "Clipboard" -msgid "IDS_DPM_BODY_PREVENT_CAMERA" -msgstr "Security policy prevents use of camera." +msgid "IDS_DPM_STORAGE_DECRYPTION" +msgstr "Storage decryption" -msgid "IDS_DPM_HEADER_CAMERA_POLICY" -msgstr "Camera Policy" +msgid "IDS_DPM_EXTERNAL_STORAGE" +msgstr "External storage" -msgid "IDS_DPM_BODY_PREVENT_HOTSPOT" -msgstr "Security policy prevents use of Hotspot." +msgid "IDS_DPM_BLUETOOTH" +msgstr "Bluetooth" -msgid "IDS_DPM_BODY_PREVENT_WIFI" -msgstr "Security policy prevents use of Wi-Fi." +msgid "IDS_DPM_NFC" +msgstr "NFC" -msgid "IDS_DPM_HEADER_WIFI_POLICY" -msgstr "Wi-Fi Policy" +msgid "IDS_DPM_WIFI_HOTSPOT" +msgstr "Hotspot" -msgid "IDS_DPM_BODY_PASSWORD_SET_PATTERN" -msgstr "Security policy set the password pattern." +msgid "IDS_DPM_WIFI" +msgstr "Wi-Fi" -msgid "IDS_DPM_BODY_PASSWORD_DELETE_PATTERN" -msgstr "Security policy deletes the password pattern." +msgid "IDS_DPM_MICROPHONE" +msgstr "Recording" -msgid "IDS_DPM_BODY_PASSWORD_ENFORCE_CHANGE" -msgstr "Security policy enforce password change." +msgid "IDS_DPM_LOCATION" +msgstr "Location" -msgid "IDS_DPM_BODY_PASSWORD_RESET" -msgstr "Set a new password." +msgid "IDS_DPM_CAMERA" +msgstr "Camera" -msgid "IDS_DPM_BODY_PASSWORD_EXPIRES" -msgstr "Password expired." +msgid "IDS_DPM_PACKAGE_UNINSTALLATION" +msgstr "Uninstallation of Application" -msgid "IDS_DPM_HEADER_PASSWORD_POLICY" -msgstr "Password Policy" +msgid "IDS_DPM_PACKAGE_INSTALLATION" +msgstr "Installation of Application" -msgid "IDS_DPM_BODY_PREVENT_APPLICATION_UNINSTALLATION_MODE" -msgstr "Security policy prevents uninstallation of applications." +msgid "IDS_DPM_HEADER_PREVENT_TEXT" +msgstr "%s unavailable" -msgid "IDS_DPM_BODY_PREVENT_APPLICATION_INSTALLATION_MODE" -msgstr "Security policy prevents installation of applications." +msgid "IDS_DPM_BODY_PREVENT_TEXT" +msgstr "Security policy prevents use of %s." -msgid "IDS_DPM_HEADER_APPLICATION_POLICY" -msgstr "Application Policy" +msgid "IDS_DPM_BODY_ONGOING_PREVENT_TEXT" +msgstr "Security policy prevents use of %s. All process will be terminated." diff --git a/tools/syspopup/po/ko_KR.po b/tools/syspopup/po/ko_KR.po index cac8906..e35b7a7 100644 --- a/tools/syspopup/po/ko_KR.po +++ b/tools/syspopup/po/ko_KR.po @@ -1,89 +1,83 @@ -msgid "IDS_DPM_BODY_PREVENT_USB_DEBUGGING" -msgstr "보안정책에 따라 USB 디버깅을 사용할 수 없습니다." +msgid "IDS_DPM_CANCEL" +msgstr "취소" -msgid "IDS_DPM_HEADER_DEBUGGING_POLICY" -msgstr "디버깅 정책" +msgid "IDS_DPM_OK" +msgstr "확인" -msgid "IDS_DPM_BODY_PREVENT_CLIPBOARD" -msgstr "보안정책에 따라 클립보드를 사용할 수 없습니다." +msgid "IDS_DPM_BODY_WIPE_DATA" +msgstr "보안정책에 따라 기기 저장공간의 데이터를 삭제합니다." -msgid "IDS_DPM_HEADER_CLIPBOARD_POLICY" -msgstr "클립보드 정책" - -msgid "IDS_DPM_BODY_PREVENT_BLUETOOTH" -msgstr "보안정책에 따라 블루투스를 사용할 수 없습니다." - -msgid "IDS_DPM_HEADER_BLUETOOTH_POLICY" -msgstr "블루투스 정책" +msgid "IDS_DPM_BODY_PASSWORD_EXPIRES" +msgstr "만료된 비밀번호입니다." -msgid "IDS_DPM_BODY_WIPE_STORAGE_DATA" -msgstr "기기 저장공간의 데이터를 삭제합니다." +msgid "IDS_DPM_BODY_PASSWORD_RESET" +msgstr "보안정책에 따라 새로운 비밀번호를 설정합니다." -msgid "IDS_DPM_BODY_PREVENT_STORAGE_DECRYPTION" -msgstr "보안정책에 따라 저장공간 암호화를 해제할 수 없습니다." +msgid "IDS_DPM_BODY_PASSWORD_ENFORCE_CHANGE" +msgstr "보안정책에 따라 비밀 번호를 변경합니다." -msgid "IDS_DPM_BODY_PREVENT_EXTERNAL_STORAGE" -msgstr "보안정책에 따라 외부 저장공간을 사용할 수 없습니다." +msgid "IDS_DPM_PASSWORD" +msgstr "비밀번호" -msgid "IDS_DPM_HEADER_STORAGE_POLICY" -msgstr "저장공간 정책" +msgid "IDS_DPM_SCREEN_CAPTURE" +msgstr "화면 캡처" -msgid "IDS_DPM_BODY_PREVENT_SETTINGS_CHANGES" -msgstr "보안 정책에 따라 설정 변경을 사용할 수 없습니다." +msgid "IDS_DPM_BROWSER" +msgstr "브라우저" -msgid "IDS_DPM_HEADER_SETTING_POLICY" -msgstr "설정 정책" +msgid "IDS_DPM_MESSAGE_RECEIVING" +msgstr "문자 메시지 및 MMS 수신" -msgid "IDS_DPM_BODY_PREVENT_LOCATION" -msgstr "보안정책에 따라 위치정보를 사용할 수 없습니다." +msgid "IDS_DPM_MESSAGE_SENDING" +msgstr "문자 메시지 및 MMS 전송" -msgid "IDS_DPM_HEADER_LOCATION_POLICY" -msgstr "위치 정책" +msgid "IDS_DPM_USB_DEBUGGING" +msgstr "USB 디버깅" -msgid "IDS_DPM_BODY_PREVENT_MICROPHONE" -msgstr "보안정책에 따라 Microphone을 사용할 수 없습니다." +msgid "IDS_DPM_SETTINGS_CHANGES" +msgstr "셋팅 변경" -msgid "IDS_DPM_HEADER_RECORD_POLICY" -msgstr "기록 정책" +msgid "IDS_DPM_CLIPBOARD" +msgstr "클립보드" -msgid "IDS_DPM_BODY_PREVENT_CAMERA" -msgstr "보안정책에 따라 카메라를 사용할 수 없습니다." +msgid "IDS_DPM_STORAGE_DECRYPTION" +msgstr "저장공간 암호화 해제" -msgid "IDS_DPM_HEADER_CAMERA_POLICY" -msgstr "카메라 정책" +msgid "IDS_DPM_EXTERNAL_STORAGE" +msgstr "외부 저장공간" -msgid "IDS_DPM_BODY_PREVENT_HOTSPOT" -msgstr "보안정책에 따라 Hotspot을 사용할 수 없습니다." +msgid "IDS_DPM_BLUETOOTH" +msgstr "블루투스" -msgid "IDS_DPM_BODY_PREVENT_WIFI" -msgstr "보안정책에 따라 Wi-Fi를 사용할 수 없습니다." +msgid "IDS_DPM_NFC" +msgstr "NFC" -msgid "IDS_DPM_HEADER_WIFI_POLICY" -msgstr "와이파이 정책" +msgid "IDS_DPM_WIFI_HOTSPOT" +msgstr "핫스팟" -msgid "IDS_DPM_BODY_PASSWORD_SET_PATTERN" -msgstr "보안정책에 따라 비밀번호 패턴을 설정합니다." +msgid "IDS_DPM_WIFI" +msgstr "와이파이" -msgid "IDS_DPM_BODY_PASSWORD_DELETE_PATTERN" -msgstr "보안정책에 따라 비밀번호 패턴을 제거합니다." +msgid "IDS_DPM_MICROPHONE" +msgstr "녹음" -msgid "IDS_DPM_BODY_PASSWORD_ENFORCE_CHANGE" -msgstr "보안정책에 따라 비밀번호를 변경합니다." +msgid "IDS_DPM_LOCATION" +msgstr "위치" -msgid "IDS_DPM_BODY_PASSWORD_RESET" -msgstr "새 비밀번호를 설정하세요." +msgid "IDS_DPM_CAMERA" +msgstr "카메라" -msgid "IDS_DPM_BODY_PASSWORD_EXPIRES" -msgstr "만료된 비밀번호입니다." +msgid "IDS_DPM_PACKAGE_UNINSTALLATION" +msgstr "어플리케이션 삭제" -msgid "IDS_DPM_HEADER_PASSWORD_POLICY" -msgstr "비밀번호 정책" +msgid "IDS_DPM_PACKAGE_INSTALLATION" +msgstr "어플리케이션 설치" -msgid "IDS_DPM_BODY_PREVENT_APPLICATION_UNINSTALLATION_MODE" -msgstr "보안정책에 따라 어플리케이션 삭제를 할 수 없습니다." +msgid "IDS_DPM_HEADER_PREVENT_TEXT" +msgstr "%s 제한" -msgid "IDS_DPM_BODY_PREVENT_APPLICATION_INSTALLATION_MODE" -msgstr "보안정책에 따라 어플리케이션 설치를 할 수 없습니다." +msgid "IDS_DPM_BODY_PREVENT_TEXT" +msgstr "보안 정책에 따라 %s 기능 사용을 제한합니다." -msgid "IDS_DPM_HEADER_APPLICATION_POLICY" -msgstr "어플리케이션 정책" +msgid "IDS_DPM_BODY_ONGOING_PREVENT_TEXT" +msgstr "보안 정책에 따라 %s 기능 사용을 제한합니다. 모든 프로세스가 종료됩니다." diff --git a/tools/syspopup/src/main.c b/tools/syspopup/src/main.c index 6921359..0ad58d3 100644 --- a/tools/syspopup/src/main.c +++ b/tools/syspopup/src/main.c @@ -27,16 +27,53 @@ static bool __app_create(void *data) static void __app_control(app_control_h app_control, void *data) { int ret = 0; - char *popup_name = NULL; + char *id = NULL; + char *style = NULL; + char *status = NULL; + char *user_data = NULL; - ret = app_control_get_extra_data(app_control, "dpm-syspopup", &popup_name); + ret = app_control_get_extra_data(app_control, "id", &id); if (ret != APP_CONTROL_ERROR_NONE) { - dlog_print(DLOG_ERROR, LOG_TAG, "failed to get bundle data"); + dlog_print(DLOG_ERROR, LOG_TAG, "failed to get popup id"); return; } - _create_syspopup(popup_name); + ret = app_control_get_extra_data(app_control, "viewtype", &style); + if (ret == APP_CONTROL_ERROR_KEY_NOT_FOUND) { + style = NULL; + } else if (ret != APP_CONTROL_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "failed to get popup style"); + free(id); + return; + } + + ret = app_control_get_extra_data(app_control, "status", &status); + if (ret == APP_CONTROL_ERROR_KEY_NOT_FOUND) { + status = strdup(DPM_SYSPOPUP_DEFAULT_STATUS); + } else if (ret != APP_CONTROL_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "failed to get popup status"); + free(id); + free(style); + return; + } + + ret = app_control_get_extra_data(app_control, "user-data", &user_data); + if (ret == APP_CONTROL_ERROR_KEY_NOT_FOUND) { + user_data = NULL; + } else if (ret != APP_CONTROL_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "failed to get popup user data"); + free(id); + free(style); + free(status); + return; + } + + _create_syspopup(id, style, status, user_data); + free(id); + free(style); + free(status); + free(user_data); return; } diff --git a/tools/syspopup/src/popup-list.c b/tools/syspopup/src/popup-list.c index 304bab8..f57efa0 100644 --- a/tools/syspopup/src/popup-list.c +++ b/tools/syspopup/src/popup-list.c @@ -23,48 +23,85 @@ (sizeof(_array_) / sizeof(_array_[0])) popup_info_s popup_list[] = { + + /* ID | TITLE_TEXT | CONTENT_TEXT | POPUP_STYLE | LEFT_BUTTON | RIGHT_BUTTON | LEFT_BTN_CB | RIGHT_BTN_CB */ + /* Application Policy */ - {"package-installation-mode", "IDS_DPM_HEADER_APPLICATION_POLICY", "IDS_DPM_BODY_PREVENT_APPLICATION_INSTALLATION_MODE"}, - {"package-uninstallation-mode", "IDS_DPM_HEADER_APPLICATION_POLICY", "IDS_DPM_BODY_PREVENT_APPLICATION_UNINSTALLATION_MODE"}, + {"package-installation-mode", "IDS_DPM_PACKAGE_INSTALLATION", NULL, "toast", NULL, NULL, NULL, NULL}, + {"package-uninstallation-mode", "IDS_DPM_PACKAGE_UNINSTALLATION", NULL, "toast", NULL, NULL, NULL, NULL }, /* Password Policy */ - {"password-expires", "IDS_DPM_HEADER_PASSWORD_POLICY", "IDS_DPM_BODY_PASSWORD_EXPIRES"}, - {"password-reset", "IDS_DPM_HEADER_PASSWORD_POLICY", "IDS_DPM_BODY_PASSWORD_RESET"}, - {"password-enforce-change", "IDS_DPM_HEADER_PASSWORD_POLICY", "IDS_DPM_BODY_PASSWORD_ENFORCE_CHANGE"}, - {"password-delete-pattern", "IDS_DPM_HEADER_PASSWORD_POLICY", "IDS_DPM_BODY_PASSWORD_DELETE_PATTERN"}, - {"password-set-pattern", "IDS_DPM_HEADER_PASSWORD_POLICY", "IDS_DPM_BODY_PASSWORD_SET_PATTERN"}, + {"password-expires", "IDS_DPM_PASSWORD", "IDS_DPM_BODY_PASSWORD_EXPIRES", "toast", NULL, NULL, NULL, NULL}, + {"password-reset", "IDS_DPM_PASSWORD", "IDS_DPM_BODY_PASSWORD_RESET", "toast", NULL, NULL, NULL, NULL}, + {"password-enforce-change", "IDS_DPM_PASSWORD", "IDS_DPM_BODY_PASSWORD_ENFORCE_CHANGE", "default", "IDS_DPM_CANCEL", "IDS_DPM_OK", NULL, NULL}, /* Restriction Policy */ - {"wifi", "IDS_DPM_HEADER_WIFI_POLICY", "IDS_DPM_BODY_PREVENT_WIFI"}, - {"wifi-hotspot", "IDS_DPM_HEADER_WIFI_POLICY", "IDS_DPM_BODY_PREVENT_HOTSPOT"}, - {"camera", "IDS_DPM_HEADER_CAMERA_POLICY", "IDS_DPM_BODY_PREVENT_CAMERA"}, - {"microphone", "IDS_DPM_HEADER_RECORD_POLICY", "IDS_DPM_BODY_PREVENT_MICROPHONE"}, - {"location", "IDS_DPM_HEADER_LOCATION_POLICY", "IDS_DPM_BODY_PREVENT_LOCATION"}, - {"settings-changes", "IDS_DPM_HEADER_SETTING_POLICY", "IDS_DPM_BODY_PREVENT_SETTINGS_CHANGES"}, - {"bluetooth", "IDS_DPM_HEADER_BLUETOOTH_POLICY", "IDS_DPM_BODY_PREVENT_BLUETOOTH"}, - {"clipboard", "IDS_DPM_HEADER_CLIPBOARD_POLICY", "IDS_DPM_BODY_PREVENT_CLIPBOARD"}, - {"usb-debugging", "IDS_DPM_HEADER_DEBUGGING_POLICY", "IDS_DPM_BODY_PREVENT_USB_DEBUGGING"}, + {"wifi", "IDS_DPM_WIFI", NULL, "toast", NULL, NULL, NULL, NULL}, + {"wifi-hotspot", "IDS_DPM_WIFI_HOTSPOT", NULL, "toast", NULL, NULL, NULL, NULL}, + {"camera", "IDS_DPM_CAMERA", NULL, "toast", NULL, NULL, NULL, NULL}, + {"microphone", "IDS_DPM_MICROPHONE", NULL, "toast", NULL, NULL, NULL, NULL}, + {"location", "IDS_DPM_LOCATION", NULL, "toast", NULL, NULL, NULL, NULL}, + {"settings-changes", "IDS_DPM_SETTINGS_CHANGES", NULL, "toast", NULL, NULL, NULL, NULL}, + {"bluetooth", "IDS_DPM_BLUETOOTH", NULL, "toast", NULL, NULL, NULL, NULL}, + {"clipboard", "IDS_DPM_CLIPBOARD", NULL, "toast", NULL, NULL, NULL, NULL}, + {"usb-debugging", "IDS_DPM_USB_DEBUGGING", NULL, "toast", NULL, NULL, NULL, NULL}, + {"nfc", "IDS_DPM_NFC", NULL, "toast", NULL, NULL, NULL, NULL}, + {"message-sending", "IDS_DPM_MESSAGE_SENDING", NULL, "toast", NULL, NULL, NULL, NULL}, + {"message-receiving", "IDS_DPM_MESSAGE_RECEIVING", NULL, "toast", NULL, NULL, NULL, NULL}, + {"browser", "IDS_DPM_BROWSER", NULL, "toast", NULL, NULL, NULL, NULL}, + {"screen-capture", "IDS_DPM_SCREEN_CAPTURE", NULL, "toast", NULL, NULL, NULL, NULL}, /* Storage Policy */ - {"external-storage", "IDS_DPM_HEADER_STORAGE_POLICY", "IDS_DPM_BODY_PREVENT_EXTERNAL_STORAGE"}, - {"storage-decryption", "IDS_DPM_HEADER_STORAGE_POLICY", "IDS_DPM_BODY_PREVENT_STORAGE_DECRYPTION"}, - {"wipe-data", "IDS_DPM_HEADER_STORAGE_POLICY", "IDS_DPM_BODY_WIPE_STORAGE_DATA"}, + {"external-storage", "IDS_DPM_EXTERNAL_STORAGE", NULL, "toast", NULL, NULL, NULL, NULL}, + {"storage-decryption", "IDS_DPM_STORAGE_DECRYPTION", NULL, "toast", NULL, NULL, NULL, NULL}, + {"wipe-data", "IDS_DPM_WIPE_DATA", NULL, "default", "IDS_DPM_CANCEL", "IDS_DPM_OK", NULL, NULL}, }; -popup_info_s *_get_dpm_popup_info(const char *popup_name) +popup_info_s *_get_popup_info(const char *id) { int i = 0; - if (popup_name == NULL) { + if (id == NULL) { dlog_print(DLOG_ERROR, LOG_TAG, "popup_name is NULL"); return NULL; } for (i = 0; i < ARRAY_SIZE(popup_list); i++) { - if (!strcmp(popup_name, popup_list[i].name)) + if (!strcmp(id, popup_list[i].id)) return &popup_list[i]; } - dlog_print(DLOG_ERROR, LOG_TAG, "[%s] popup is not exist", popup_name); + dlog_print(DLOG_ERROR, LOG_TAG, "[%s] popup is not exist", id); return NULL; } + +int _get_popup_text(const char *id, const char *status, char *header, char *body) +{ + popup_info_s *info = NULL; + char *lp_policy = NULL; + char *lp_header = NULL; + char *lp_body = NULL; + + info = _get_popup_info(id); + if (info == NULL) + return -1; + + lp_policy = __(info->title); + + if (info->content == NULL) { + if (!strcmp(status, "ongoing")) + lp_body = __("IDS_DPM_BODY_ONGOING_PREVENT_TEXT"); + else + lp_body = __("IDS_DPM_BODY_PREVENT_TEXT"); + + snprintf(body, PATH_MAX, lp_body, lp_policy); + } else { + lp_body = __(info->content); + snprintf(body, PATH_MAX, "%s", lp_body); + } + + lp_header = __("IDS_DPM_HEADER_PREVENT_TEXT"); + snprintf(header, PATH_MAX, lp_header, lp_policy); + + return 0; +} diff --git a/tools/syspopup/src/ui.c b/tools/syspopup/src/ui.c index 4a3e3e7..20e06c3 100644 --- a/tools/syspopup/src/ui.c +++ b/tools/syspopup/src/ui.c @@ -57,39 +57,72 @@ static void __block_clicked_cb(void *data, Evas_Object *obj, void *event_info) return; } -void _create_syspopup(const char *popup_name) +void _create_syspopup(const char *id, char *style, const char *status, const char *user_data) { Evas_Object *win = NULL; Evas_Object *popup = NULL; + Evas_Object *left_btn = NULL, *right_btn = NULL; popup_info_s *info = NULL; - char *lp_title = NULL; - char *lp_content = NULL; + int ret = 0; + char header[PATH_MAX] = "\0"; + char body[PATH_MAX] = "\0"; - info = _get_dpm_popup_info(popup_name); - if (info == NULL) { - dlog_print(DLOG_ERROR, LOG_TAG, "failed to get popup info"); + info = _get_popup_info(id); + if (info == NULL) return; - } - lp_title = dgettext("dpm-syspopup", info->title); - lp_content = dgettext("dpm-syspopup", info->content); + ret = _get_popup_text(id, status, header, body); + if (ret != 0) { + dlog_print(DLOG_ERROR, LOG_TAG, "failed to get popup text"); + return; + } win = __create_win("dpm-syspopup"); - popup = elm_popup_add(win); - elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0); evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_object_part_text_set(popup, "title,text", lp_title); - elm_object_item_part_text_translatable_set(popup, "title,text", EINA_TRUE); - elm_object_text_set(popup, lp_content); - - elm_popup_timeout_set(popup, 3.0); - evas_object_smart_callback_add(popup, "block,clicked", __block_clicked_cb, NULL); - evas_object_smart_callback_add(popup, "timeout", __popup_timeout_cb, NULL); + if (style != NULL) + info->style = style; + + elm_object_style_set(popup, info->style); + + if (!strcmp(info->style, "default")) { + elm_object_part_text_set(popup, "title,text", header); + elm_object_item_part_text_translatable_set(popup, "title,text", EINA_TRUE); + + elm_object_text_set(popup, body); + elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0); + + if (info->left_btn != NULL) { + left_btn = elm_button_add(popup); + elm_object_style_set(left_btn, "popup"); + elm_object_text_set(left_btn, __(info->left_btn)); + elm_object_part_content_set(popup, "button1", left_btn); + evas_object_data_set(left_btn, "target", popup); + evas_object_data_set(popup, "target", popup); + evas_object_smart_callback_add(left_btn, "clicked", info->left_btn_cb, user_data); + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, info->left_btn_cb, (void *)user_data); + } else { + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, win); + } + + if (info->right_btn != NULL) { + right_btn = elm_button_add(popup); + elm_object_style_set(right_btn, "popup"); + elm_object_text_set(right_btn, __(info->right_btn)); + elm_object_part_content_set(popup, "button2", right_btn); + evas_object_data_set(right_btn, "target", popup); + evas_object_smart_callback_add(right_btn, "clicked", info->right_btn_cb, user_data); + } + } else { + elm_object_text_set(popup, body); + elm_popup_timeout_set(popup, 3.0); + evas_object_smart_callback_add(popup, "timeout", __popup_timeout_cb, NULL); + evas_object_smart_callback_add(popup, "block,clicked", __block_clicked_cb, NULL); + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, win); + } - eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, win); evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __popup_del_cb, win); evas_object_show(popup);