#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__ */
-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."
-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 "ë³´ì\95\88ì \95ì±\85ì\97\90 ë\94°ë\9d¼ ì\99¸ë¶\80 ì \80ì\9e¥ê³µê°\84ì\9d\84 ì\82¬ì\9a©í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤."
+msgid "IDS_DPM_PASSWORD"
+msgstr "ë¹\84ë°\80ë²\88í\98¸"
-msgid "IDS_DPM_HEADER_STORAGE_POLICY"
-msgstr "저장공간 정책"
+msgid "IDS_DPM_SCREEN_CAPTURE"
+msgstr "화면 캡처"
-msgid "IDS_DPM_BODY_PREVENT_SETTINGS_CHANGES"
-msgstr "ë³´ì\95\88 ì \95ì±\85ì\97\90 ë\94°ë\9d¼ ì\84¤ì \95 ë³\80ê²½ì\9d\84 ì\82¬ì\9a©í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤."
+msgid "IDS_DPM_BROWSER"
+msgstr "ë¸\8cë\9d¼ì\9a°ì \80"
-msgid "IDS_DPM_HEADER_SETTING_POLICY"
-msgstr "설정 정책"
+msgid "IDS_DPM_MESSAGE_RECEIVING"
+msgstr "문자 메시지 및 MMS 수신"
-msgid "IDS_DPM_BODY_PREVENT_LOCATION"
-msgstr "ë³´ì\95\88ì \95ì±\85ì\97\90 ë\94°ë\9d¼ ì\9c\84ì¹\98ì \95보를 ì\82¬ì\9a©í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤."
+msgid "IDS_DPM_MESSAGE_SENDING"
+msgstr "문ì\9e\90 ë©\94ì\8b\9cì§\80 ë°\8f MMS ì \84ì\86¡"
-msgid "IDS_DPM_HEADER_LOCATION_POLICY"
-msgstr "ì\9c\84ì¹\98 ì \95ì±\85"
+msgid "IDS_DPM_USB_DEBUGGING"
+msgstr "USB ë\94\94ë²\84ê¹\85"
-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 "ì¹´ë©\94ë\9d¼ ì \95ì±\85"
+msgid "IDS_DPM_EXTERNAL_STORAGE"
+msgstr "ì\99¸ë¶\80 ì \80ì\9e¥ê³µê°\84"
-msgid "IDS_DPM_BODY_PREVENT_HOTSPOT"
-msgstr "ë³´ì\95\88ì \95ì±\85ì\97\90 ë\94°ë\9d¼ Hotspotì\9d\84 ì\82¬ì\9a©í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤."
+msgid "IDS_DPM_BLUETOOTH"
+msgstr "ë¸\94루í\88¬ì\8a¤"
-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 "ë³´ì\95\88ì \95ì±\85ì\97\90 ë\94°ë\9d¼ ë¹\84ë°\80ë²\88í\98¸ í\8c¨í\84´ì\9d\84 ì \9cê±°í\95©ë\8b\88ë\8b¤."
+msgid "IDS_DPM_MICROPHONE"
+msgstr "ë\85¹ì\9d\8c"
-msgid "IDS_DPM_BODY_PASSWORD_ENFORCE_CHANGE"
-msgstr "보안정책에 따라 비밀번호를 변경합니다."
+msgid "IDS_DPM_LOCATION"
+msgstr "위치"
-msgid "IDS_DPM_BODY_PASSWORD_RESET"
-msgstr "ì\83\88 ë¹\84ë°\80ë²\88í\98¸ë¥¼ ì\84¤ì \95í\95\98ì\84¸ì\9a\94."
+msgid "IDS_DPM_CAMERA"
+msgstr "ì¹´ë©\94ë\9d¼"
-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 기능 사용을 제한합니다. 모든 프로세스가 종료됩니다."
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;
}
(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;
+}
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);