Add toast syspopup and modify popup text 18/69218/21
authorseolhee, kim <s414.kim@samsung.com>
Thu, 12 May 2016 07:35:59 +0000 (16:35 +0900)
committerseolhee, kim <s414.kim@samsung.com>
Thu, 19 May 2016 04:45:00 +0000 (13:45 +0900)
Change-Id: Ic2d5dd76b6d44ba833a817dfcb021ea1cd1ae919
Signed-off-by: seolhee, kim <s414.kim@samsung.com>
tools/syspopup/include/dpm-syspopup.h
tools/syspopup/po/en_US.po
tools/syspopup/po/ko_KR.po
tools/syspopup/src/main.c
tools/syspopup/src/popup-list.c
tools/syspopup/src/ui.c

index 40fa8d1..9819caa 100644 (file)
 #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__ */
index ffb0222..b6dfca7 100644 (file)
@@ -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."
index cac8906..e35b7a7 100644 (file)
@@ -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 "ë³´ì\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 기능 사용을 제한합니다. 모든 프로세스가 종료됩니다."
index 6921359..0ad58d3 100644 (file)
@@ -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;
 }
 
index 304bab8..f57efa0 100644 (file)
        (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;
+}
index 4a3e3e7..20e06c3 100644 (file)
@@ -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);