feedback : add feedback by sound or vibration when popup is acvtivated 36/100536/8 accepted/tizen/3.0/common/20161130.065032 accepted/tizen/3.0/mobile/20161130.011923 accepted/tizen/3.0/tv/20161130.011927 accepted/tizen/3.0/wearable/20161130.011930 submit/tizen_3.0/20161129.063816
authorlokilee73 <changjoo.lee@samsung.com>
Mon, 28 Nov 2016 10:32:45 +0000 (19:32 +0900)
committerlokilee73 <changjoo.lee@samsung.com>
Tue, 29 Nov 2016 02:47:34 +0000 (11:47 +0900)
Change-Id: I3c9576208f9924ec97cbd35838dabba09f2e3ca4
Signed-off-by: lokilee73 <changjoo.lee@samsung.com>
22 files changed:
src/battery/battery-mobile.c
src/battery/battery-wearable.c
src/common/core.c [changed mode: 0644->0755]
src/common/popup-common.c
src/common/popup-common.h [changed mode: 0644->0755]
src/cooldown/cooldown-mobile.c
src/cooldown/cooldown-wearable.c
src/crash/crash.c
src/crash/org.tizen.crash-syspopup.xml
src/launcher/CMakeLists.txt
src/mmc/mmc-mobile.c
src/org.tizen.system-syspopup.xml
src/overheat/overheat.c
src/power/power.c
src/powerkey/powerkey-mobile.c
src/powerkey/powerkey-wearable.c
src/storage/lowstorage-mobile.c
src/storage/lowstorage-wearable.c
src/usb/usb-device.c
src/usb/usb-mobile.c
src/usb/usbotg-mobile.c
src/watchdog/watchdog.c

index 91635d6..ba1630f 100755 (executable)
@@ -221,6 +221,7 @@ static int remove_battery_popups(bundle *b, const struct popup_ops *ops)
 
 static const struct popup_ops lowbattery_warning_ops = {
        .name           = "lowbattery_warning",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show   = load_simple_popup,
        .content        = "IDS_COM_POP_BATTERYLOW",
        .left_text      = "IDS_COM_SK_OK",
@@ -230,6 +231,7 @@ static const struct popup_ops lowbattery_warning_ops = {
 
 static const struct popup_ops lowbattery_critical_ops = {
        .name           = "lowbattery_critical",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show   = load_simple_popup,
        .content        = "IDS_COM_POP_BATTERYLOW",
        .left_text      = "IDS_COM_SK_OK",
@@ -239,6 +241,7 @@ static const struct popup_ops lowbattery_critical_ops = {
 
 static const struct popup_ops lowbattery_poweroff_ops = {
        .name           = "lowbattery_poweroff",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show   = load_simple_popup,
        .content        = "IDS_COM_POP_LOW_BATTERY_PHONE_WILL_SHUT_DOWN",
        .left_text      = "IDS_COM_SK_OK",
@@ -254,6 +257,7 @@ static const struct popup_ops battery_remove_ops = {
 
 static const struct popup_ops charge_error_low_ops = {
        .name           = "chargeerrlow",//"charge_error_low",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show   = load_simple_popup,
        .content        = "IDS_QP_BODY_CHARGING_PAUSED_BATTERY_TEMPERATURE_TOO_LOW",
        .left_text      = "IDS_COM_SK_OK",
@@ -263,6 +267,7 @@ static const struct popup_ops charge_error_low_ops = {
 
 static const struct popup_ops charge_error_high_ops = {
        .name           = "chargeerrhigh",//"charge_error_high",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show   = load_simple_popup,
        .content        = "IDS_QP_BODY_CHARGING_PAUSED_BATTERY_TEMPERATURE_TOO_HIGH",
        .left_text      = "IDS_COM_SK_OK",
@@ -272,6 +277,7 @@ static const struct popup_ops charge_error_high_ops = {
 
 static const struct popup_ops battery_disconnected_ops = {
        .name           = "battdisconnect",//"battery_disconnected",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show   = load_simple_popup,
        .content        = "IDS_COM_POP_BATTERY_DISCONNECTED_ABB",
        .left_text      = "IDS_COM_SK_OK",
index 6a76f42..0897d1e 100755 (executable)
@@ -180,6 +180,7 @@ static int remove_battery_popups(bundle *b, const struct popup_ops *ops)
 
 static const struct popup_ops lowbattery_warning_ops = {
        .name           = "lowbattery_warning",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show   = load_simple_popup,
        .content        = "IDS_COM_POP_BATTERYLOW",
        .left_text      = "IDS_COM_SK_OK",
@@ -189,6 +190,7 @@ static const struct popup_ops lowbattery_warning_ops = {
 
 static const struct popup_ops lowbattery_critical_ops = {
        .name           = "lowbattery_critical",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show   = load_simple_popup,
        .content        = "IDS_COM_POP_BATTERYLOW",
        .left_text      = "IDS_COM_SK_OK",
@@ -198,6 +200,7 @@ static const struct popup_ops lowbattery_critical_ops = {
 
 static const struct popup_ops lowbattery_poweroff_ops = {
        .name           = "lowbattery_poweroff",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show   = load_simple_popup,
        .content        = "IDS_COM_POP_LOW_BATTERY_PHONE_WILL_SHUT_DOWN",
        .left_text      = "IDS_COM_SK_OK",
@@ -213,6 +216,7 @@ static const struct popup_ops battery_remove_ops = {
 
 static const struct popup_ops charge_error_low_ops = {
        .name           = "chargeerrlow",//"charge_error_low",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show   = load_simple_popup,
        .content        = "IDS_QP_BODY_CHARGING_PAUSED_BATTERY_TEMPERATURE_TOO_LOW",
        .left_text      = "IDS_COM_SK_OK",
@@ -222,6 +226,7 @@ static const struct popup_ops charge_error_low_ops = {
 
 static const struct popup_ops charge_error_high_ops = {
        .name           = "chargeerrhigh",//"charge_error_high",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show   = load_simple_popup,
        .content        = "IDS_QP_BODY_CHARGING_PAUSED_BATTERY_TEMPERATURE_TOO_HIGH",
        .left_text      = "IDS_COM_SK_OK",
@@ -231,6 +236,7 @@ static const struct popup_ops charge_error_high_ops = {
 
 static const struct popup_ops battery_disconnected_ops = {
        .name           = "battdisconnect",//"battery_disconnected",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show   = load_simple_popup,
        .content        = "IDS_COM_POP_BATTERY_DISCONNECTED_ABB",
        .left_text      = "IDS_COM_SK_OK",
old mode 100644 (file)
new mode 100755 (executable)
index a523b68..09c32b9
@@ -21,7 +21,7 @@
 
 static syspopup_handler handler;
 static GList *popup_list = NULL;
-
+static int feedback_init_processed;
 appdata_s *app_info;
 extern int reset_window_priority(int priority);
 
@@ -107,6 +107,9 @@ static int load_popup_by_type(bundle *b)
                        return 0;
                }
 
+               if (obj->ops->pattern)
+                       play_multi_feedback(obj->ops->pattern);
+
                if (obj->ops->change)
                        obj->ops->change(b, obj->ops);
 
@@ -174,11 +177,18 @@ static int app_create(void *data)
        if (ret < 0)
                _E("Failed to set dbus connection (%d)", ret);
 
+       if (!feedback_init_processed) {
+               init_multi_feedback();
+               feedback_init_processed = 1;
+       }
+
        return 0;
 }
 
 static int app_terminate(void *data)
 {
+       stop_multi_feedback();
+       feedback_init_processed = 0;
        return release_all_handlers(data);
 }
 
index 31f6d8b..3d38111 100755 (executable)
@@ -72,6 +72,33 @@ void play_feedback(int type, int pattern)
                _E("Cannot deinitialize feedback");
 }
 
+void init_multi_feedback(void)
+{
+       int ret;
+
+       ret = feedback_initialize();
+       if (ret != FEEDBACK_ERROR_NONE)
+               _E("Cannot initialize feedback");
+}
+
+void play_multi_feedback(int pattern)
+{
+       int ret;
+
+       ret = feedback_play(pattern);
+       if (ret != FEEDBACK_ERROR_NONE)
+               _E("Cannot play feedback: %d", pattern);
+}
+
+void stop_multi_feedback(void)
+{
+       int ret;
+
+       ret = feedback_deinitialize();
+       if (ret != FEEDBACK_ERROR_NONE)
+               _E("Cannot deinitialize feedback");
+}
+
 static void *thread_feedback(void* data)
 {
        long type = (long)data;
old mode 100644 (file)
new mode 100755 (executable)
index 76634cf..7e7f757
@@ -40,6 +40,9 @@ struct popup_ops {
        char *right_text;
        void (*right)(const struct popup_ops *ops);
 
+       /* Feedback */
+       int pattern;
+
        /* Show popup */
        bool (*skip)(bundle *b, const struct popup_ops *ops);
        int  (*change) (bundle *b, const struct popup_ops *ops);
@@ -107,6 +110,9 @@ void unregister_dbus_signal_handler(E_DBus_Signal_Handler *handler);
 
 /* feedback */
 void play_feedback(int type, int pattern);
+void init_multi_feedback(void);
+void play_multi_feedback(int pattern);
+void stop_multi_feedback(void);
 void notify_feedback(long pattern); /* using thread */
 
 void change_display_state(void); /* using thread */
index 3af8cc8..53c6290 100755 (executable)
@@ -21,6 +21,7 @@
 
 static const struct popup_ops cooldown_poweroff_ops = {
        .name           = "cooldown_poweroff",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .title          = "IDS_ST_HEADER_POWER_OFF_ABB",
        .content        = "IDS_QP_POP_YOUR_DEVICE_IS_OVERHEATING_IT_WILL_NOW_POWER_OFF_TO_COOL_DOWN",
@@ -29,6 +30,7 @@ static const struct popup_ops cooldown_poweroff_ops = {
 
 static const struct popup_ops cooldown_ops = {
        .name           = "cooldown",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .title          = "IDS_IDLE_HEADER_PHONE_COOLING_DOWN_ABB",
        .content        = "IDS_IDLE_POP_YOUR_PHONE_IS_OVERHEATING_STEPS_WILL_BE_TAKEN_TO_COOL_IT_DOWN_N_NYOU_CAN_STILL_USE_YOUR_PHONE_MSG",
index 22efa3d..02236e0 100755 (executable)
@@ -272,6 +272,7 @@ static int cooldown_warning_content(const struct popup_ops *ops, char *content,
 
 static const struct popup_ops cooldown_poweroff_ops = {
        .name           = "cooldown_poweroff",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .get_content = cooldown_poweroff_content,
        .left_text      = "IDS_COM_SK_OK",
@@ -282,6 +283,7 @@ static const struct popup_ops cooldown_poweroff_ops = {
 
 static const struct popup_ops cooldown_poweron_ops = {
        .name           = "cooldown_poweron",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .content        = "Your device overheated. It powered off to prevent damage.",
        .left_text      = "IDS_COM_SK_OK",
@@ -289,6 +291,7 @@ static const struct popup_ops cooldown_poweron_ops = {
 
 static const struct popup_ops cooldown_warning_ops = {
        .name           = "cooldown_warning",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .get_content = cooldown_warning_content,
        .left_text      = "IDS_COM_SK_OK",
index 61b279e..e9d41f0 100755 (executable)
@@ -102,7 +102,6 @@ static int crash_get_content(const struct popup_ops *ops, char *content, unsigne
        if (!ops || !content)
                return -EINVAL;
 
-       _D("crash_get_content() is entered");
        ret = get_object_by_ops(ops, &obj);
        if (ret < 0) {
                _E("Failed to get object (%d)", ret);
@@ -131,12 +130,12 @@ static int crash_get_content(const struct popup_ops *ops, char *content, unsigne
        text = _("IDS_IDLE_POP_PS_HAS_STOPPED_UNEXPECTEDLY");
        snprintf(content, len, text, tname);
 
-       _D("crash_get_content() is finished");
        return 0;
 }
 
 static const struct popup_ops crash_ops = {
        .name                   = "crash",
+       .pattern                = FEEDBACK_PATTERN_LOWBATT,
        .show                   = load_simple_popup,
        .title                  = "IDS_IDLE_HEADER_ERROR_OCCURRED",
        .get_content    = crash_get_content,
index 7325449..34d08b5 100755 (executable)
@@ -9,5 +9,6 @@ api-version="3.0" version="0.1.7" install-location="internal-only" support-mode=
        </ui-application>
        <privileges>
                <privilege>http://tizen.org/privilege/window.priority.set</privilege>
+               <privilege>http://tizen.org/privilege/haptic</privilege>
        </privileges>
 </manifest>
index c0e7f2c..84273ff 100755 (executable)
@@ -24,6 +24,7 @@ SET(PKG_MODULES
                appcore-common
                appsvc
                notification
+               feedback
 )
 
 INCLUDE(FindPkgConfig)
index 6154f4f..579c04e 100755 (executable)
@@ -267,6 +267,7 @@ static void terminate_mmc_popup(const struct popup_ops *ops)
 
 static const struct popup_ops mount_error_ops = {
        .name           = "mounterr",//"mmc_mount_error",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .title          = "IDS_IDLE_HEADER_COULDNT_MOUNT_SD_CARD_ABB",
        .content        = "IDS_IDLE_POP_REMOVE_AND_REINSERT_OR_FORMAT_YOUR_SD_CARD_THEN_TRY_AGAIN",
@@ -277,6 +278,7 @@ static const struct popup_ops mount_error_ops = {
 
 static const struct popup_ops unmount_error_ops = {
        .name           = "unmounterr",//"mmc_unmount_error",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .title          = "IDS_IDLE_HEADER_COULDNT_UNMOUNT_SD_CARD_ABB",
        .content        = "IDS_IDLE_POP_THE_SD_CARD_MAY_BE_IN_USE_TRY_AGAIN_LATER",
@@ -287,6 +289,7 @@ static const struct popup_ops unmount_error_ops = {
 
 static const struct popup_ops mount_read_only_ops = {
        .name           = "mountrdonly",//"mmc_mount_read_only",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .content        = "IDS_ST_BODY_SD_CARD_MOUNTED_READ_ONLY",
        .left_text      = "IDS_COM_SK_OK",
@@ -295,6 +298,7 @@ static const struct popup_ops mount_read_only_ops = {
 
 static const struct popup_ops check_smack_ops = {
        .name           = "checksmack",//"mmc_check_smack",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .content        = "IDS_MF_BODY_MMC_DATA_IS_INITIALIZING_ING",
        .left_text      = "IDS_COM_SK_OK",
@@ -303,6 +307,7 @@ static const struct popup_ops check_smack_ops = {
 
 static const struct popup_ops ode_encrypt_ops = {
        .name           = "odeencrypt",//"mmc_ode_encrypt",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .title          = "IDS_DN_BODY_ENCRYPT_SD_CARD",
        .content        = "IDS_ST_POP_TO_USE_YOUR_SD_CARD_IT_MUST_BE_ENCRYPTED_ENCRYPT_SD_CARD_OR_DISABLE_DEVICE_ENCRYPTION_Q",
@@ -317,6 +322,7 @@ static const struct popup_ops ode_encrypt_ops = {
 
 static const struct popup_ops ode_decrypt_ops = {
        .name           = "odedecrypt",//"mmc_ode_decrypt",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .title          = "IDS_DN_BODY_DECRYPT_SD_CARD",
        .content        = "IDS_ST_POP_TO_USE_YOUR_SD_CARD_IT_MUST_BE_DECRYPTED_DECRYPT_SD_CARD_OR_ENABLE_DEVICE_ENCRYPTION_Q",
index 8a3da04..caccf91 100755 (executable)
@@ -11,5 +11,6 @@
                <privilege>http://tizen.org/privilege/display</privilege>
                <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
                <privilege>http://tizen.org/privilege/window.priority.set</privilege>
+               <privilege>http://tizen.org/privilege/haptic</privilege>
        </privileges>
 </manifest>
index 80f8352..142a057 100755 (executable)
@@ -297,6 +297,7 @@ int overheat_popup(bundle *b, const struct popup_ops *ops)
 
 static const struct popup_ops overheat_ops = {
        .name           = "overheat", //overheat first popup
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = overheat_popup,
        .skip           = overheat_skip,
        .pre            = overheat_launch,
index 7bdd2ac..8c39e60 100755 (executable)
@@ -139,6 +139,7 @@ static void power_lock_expired_terminate(const struct popup_ops *ops)
 
 static const struct popup_ops power_lock_expired_ops = {
        .name                   = "power_lock_expired",
+       .pattern                = FEEDBACK_PATTERN_LOWBATT,
        .show                   = load_simple_popup,
        .get_content    = power_lock_expired_get_content,
        .left_text              = "IDS_COM_SK_CANCEL",
index 0feb0a6..3e994c7 100755 (executable)
@@ -390,6 +390,7 @@ static const struct popup_ops poweroff_ops = {
 
 static const struct popup_ops powerkey_ops = {
        .name           = "powerkey",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = powerkey_list,
        .pre            = powerkey_list_launch,
        .terminate      = powerkey_terminate,
index f92c6f1..7e01976 100755 (executable)
@@ -460,6 +460,7 @@ static void flight_mode_terminate(const struct popup_ops *ops)
 
 static const struct popup_ops powerkey_ops = {
        .name           = "powerkey",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = powerkey_list,
        .pre            = powerkey_launch,
        .terminate      = powerkey_terminate,
index da81269..c7e542e 100755 (executable)
@@ -24,20 +24,18 @@ static const struct popup_ops lowstorage_critical_ops;
 
 static int remove_other_lowstorage_popups(bundle *b, const struct popup_ops *ops)
 {
-       _D("remove_other_lowstorage_popups() is entered");
-
        if (ops != &lowstorage_warning_ops)
                unload_simple_popup(&lowstorage_warning_ops);
 
        if (ops != &lowstorage_critical_ops)
                unload_simple_popup(&lowstorage_critical_ops);
-       
-       _D("remove_other_lowstorage_popups() is finished");
+
        return 0;
 }
 
 static const struct popup_ops lowstorage_warning_ops = {
        .name           = "lowstorage_warning",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .content        = "IDS_IDLE_BODY_LOW_MEMORY",
        .left_text      = "IDS_COM_SK_OK",
@@ -46,6 +44,7 @@ static const struct popup_ops lowstorage_warning_ops = {
 
 static const struct popup_ops lowstorage_critical_ops = {
        .name           = "lowstorage_critical",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .content        = "IDS_IDLE_BODY_LOW_MEMORY",
        .left_text      = "IDS_COM_SK_OK",
index 8656d98..fffa619 100755 (executable)
@@ -39,6 +39,7 @@ static int remove_other_lowstorage_popups(bundle *b, const struct popup_ops *ops
 
 static const struct popup_ops lowstorage_warning_ops = {
        .name           = "lowstorage_warning",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .content        = "IDS_IDLE_BODY_LOW_MEMORY",
        .left_text      = "IDS_COM_SK_OK",
@@ -47,6 +48,7 @@ static const struct popup_ops lowstorage_warning_ops = {
 
 static const struct popup_ops lowstorage_critical_ops = {
        .name           = "lowstorage_critical",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .content        = "IDS_IDLE_BODY_LOW_MEMORY",
        .left_text      = "IDS_COM_SK_OK",
@@ -55,6 +57,7 @@ static const struct popup_ops lowstorage_critical_ops = {
 
 static const struct popup_ops lowstorage_full_ops = {
        .name           = "lowstorage_full",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = load_simple_popup,
        .content        = "IDS_ST_POP_UNABLE_TO_RECORD_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_GEAR_STORAGE",
        .left_text      = "IDS_COM_SK_OK",
index f8aa133..6745407 100755 (executable)
@@ -282,6 +282,7 @@ static const struct popup_ops usb_device_confirm_ops = {
 
 static const struct popup_ops usbhost_confirm_ops = {
        .name           = "usbhost",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show           = usbhost_show,
        .terminate      = usbhost_confirm_terminate,
 };
index 6f949a3..f4e18b7 100755 (executable)
@@ -90,6 +90,7 @@ static void usb_terminate(const struct popup_ops *ops)
 
 static const struct popup_ops usb_error_ops = {
        .name                   = "usb_error",
+       .pattern                = FEEDBACK_PATTERN_LOWBATT,
        .show                   = load_simple_popup,
        .content                = "IDS_USB_POP_USB_CONNECTION_FAILED",
        .left_text              = "IDS_COM_SK_OK",
@@ -99,6 +100,7 @@ static const struct popup_ops usb_error_ops = {
 
 static const struct popup_ops usb_restrict_ops = {
        .name                   = "usb_restrict",
+       .pattern        = FEEDBACK_PATTERN_LOWBATT,
        .show                   = load_simple_popup,
        .content                = "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC",
        .left_text              = "IDS_COM_SK_OK",
index d6224e5..b68ce05 100755 (executable)
@@ -261,6 +261,7 @@ static int camera_removed(bundle *b, const struct popup_ops *ops)
 
 static const struct popup_ops storage_mounted_ops = {
        .name                   = "usbotg_storage_mounted",
+       .pattern                = FEEDBACK_PATTERN_LOWBATT,
        .show                   = load_simple_popup,
        .title                  = "IDS_ST_BODY_USB_STORAGE_ABB",
        .content                = "IDS_USB_BODY_BROWSE_STORAGE_CONNECTED_VIA_USB_Q",
@@ -288,6 +289,7 @@ static const struct popup_ops unmount_storage_ops = {
 
 static const struct popup_ops camera_added_ops = {
        .name                   = "usbotg_camera_added",
+       .pattern                = FEEDBACK_PATTERN_LOWBATT,
        .show                   = load_simple_popup,
        .title                  = "IDS_CAM_HEADER_CAMERA_M_APPLICATION",
        .content                = "IDS_USB_BODY_BROWSE_CAMERA_CONNECTED_VIA_USB_Q",
@@ -303,6 +305,7 @@ static const struct popup_ops camera_removed_ops = {
 
 static const struct popup_ops storage_mount_failed_ops = {
        .name                   = "usbotg_storage_mount_failed",
+       .pattern                = FEEDBACK_PATTERN_LOWBATT,
        .show                   = load_simple_popup,
        .title                  = "IDS_COM_HEADER_ATTENTION",
        .content                = "IDS_COM_BODY_USB_STORAGE_BLANK_OR_HAS_UNSUPPORTED_FILE_SYSTEM",
index d5986da..2b095d1 100755 (executable)
@@ -98,6 +98,7 @@ static void watchdog_ok(const struct popup_ops *ops)
 
 static const struct popup_ops watchdog_ops = {
        .name                   = "watchdog",
+       .pattern                = FEEDBACK_PATTERN_LOWBATT,
        .show                   = load_simple_popup,
        .title                  = "IDS_CLD_HEADER_NO_RESPONSE",
        .get_content    = watchdog_get_content,