TizenRefApp-9494 [App Shortcut Widget] Refactor data types and functions names in... 63/153963/3
authorIgor Olshevskyi <i.olshevskyi@samsung.com>
Thu, 28 Sep 2017 11:16:43 +0000 (14:16 +0300)
committerIgor Olshevskyi <i.olshevskyi@samsung.com>
Wed, 4 Oct 2017 08:31:02 +0000 (11:31 +0300)
Change-Id: I9cf7b6abf1f08a597ea0a2afad1470b53eb9dab7

apptray-widget-app/inc/apptray_wgt_app_accessibility_utils.h
apptray-widget-app/inc/apptray_wgt_app_common_def.h
apptray-widget-app/inc/apptray_wgt_app_item_info.h
apptray-widget-app/inc/apptray_wgt_app_key.h [deleted file]
apptray-widget-app/inc/apptray_wgt_app_key_event_provider.h [new file with mode: 0755]
apptray-widget-app/src/apptray_wgt_app.c
apptray-widget-app/src/apptray_wgt_app_accessibility_utils.c
apptray-widget-app/src/apptray_wgt_app_item_info.c
apptray-widget-app/src/apptray_wgt_app_key.c [deleted file]
apptray-widget-app/src/apptray_wgt_app_key_event_provider.c [new file with mode: 0755]
apptray-widget/src/apptray_widget_accessibility_utils.c

index 2183249a57515e440a0d05ad319aee933c20cc76..8404d4143913df0cea4e742802c662ab7b7eac0f 100644 (file)
  * limitations under the License.
  */
 
-#ifndef __APPTRAY_WIDGET_ACCESSIBILITY_UTILS_H__
-#define __APPTRAY_WIDGET_ACCESSIBILITY_UTILS_H__
+#ifndef __APPTRAY_WIDGET_APP_ACCESSIBILITY_UTILS_H__
+#define __APPTRAY_WIDGET_APP_ACCESSIBILITY_UTILS_H__
 
 #include <Elementary.h>
 #include <stdbool.h>
 
 /**
  * @brief Registers accessible object
- *
- * @param[in]  parent                  Accessible object parent
- * @param[in]  ly                              Layout from which part for creation accessible object is taken
- * @param[in]  ly_part                 Part of layout for creation accessible object
- *
+ * @param[in] parent Accessible object parent
+ * @param[in] ly Layout from which part for creation accessible object is taken
+ * @param[in] ly_part Part of layout for creation accessible object
  * @return Accessible object on success or NULL otherwise
  */
-Evas_Object *apptray_wgt_app_au_register_access_object(Evas_Object *parent, Evas_Object *ly, const char *ly_part);
+Evas_Object *apptray_wgt_app_au_register_access_object(Evas_Object *parent,
+               Evas_Object *ly, const char *ly_part);
 
 /**
  * @brief Unregisters accessible object
- *
- * @param[in]  obj                     Accessible object to unregister
- *
+ * @param[in] obj Accessible object to unregister
  */
 void apptray_wgt_app_au_unregister_access_object(Evas_Object *obj);
 
 /**
  * @brief Registers fake first accessible object
- *
- * @param[in]  parent                  Accessible object parent
- * @param[in]  ly                              Layout from which part for creation accessible object is taken
- * @param[in]  ly_part                 Part of layout for creation accessible object
- *
+ * @param[in] parent Accessible object parent
+ * @param[in] ly Layout from which part for creation accessible object is taken
+ * @param[in] ly_part Part of layout for creation accessible object
  * @return Accessible object on success or NULL otherwise
  */
-Evas_Object *apptray_wgt_app_au_register_fake_access_object(Evas_Object *parent, Evas_Object *ly, const char *ly_part);
+Evas_Object *apptray_wgt_app_au_register_fake_access_object(Evas_Object *parent,
+               Evas_Object *ly, const char *ly_part);
 
 /**
  * @brief Symmetrically appends custom relationship between objects
- *
- * @param[in]  from                    Highlight from object
- * @param[in]  to                              Highlight to object
- *
+ * @param[in] from Highlight from object
+ * @param[in] to Highlight to object
  * @return true on success or false otherwise
  */
-bool apptray_wgt_app_au_append_symmetric_relationship(Evas_Object *from, Evas_Object *to);
+bool apptray_wgt_app_au_append_symmetric_relationship(Evas_Object *from,
+               Evas_Object *to);
 
 /**
  * @brief Symmetrically removes custom relationship between objects
- *
- * @param[in]  from                    Highlight from object
- * @param[in]  to                              Highlight to object
+ * @param[in] from Highlight from object
+ * @param[in] to Highlight to object
  */
-void apptray_wgt_app_au_remove_symmetric_relationship(Evas_Object *from, Evas_Object *to);
+void apptray_wgt_app_au_remove_symmetric_relationship(Evas_Object *from,
+               Evas_Object *to);
 
 /**
  * @brief Appends end point to custom relationship
- *
- * @param[in]  obj                     Evas object
- *
+ * @param[in] obj Evas object
  * @return true on success or false otherwise
  */
 bool apptray_wgt_app_au_append_relationship_end_point(Evas_Object *obj);
 
 /**
  * @brief Removes end point from custom relationship
- *
- * @param[in]  obj                     Evas object
+ * @param[in] obj Evas object
  */
 void apptray_wgt_app_au_remove_relationship_end_point(Evas_Object *obj);
 
 /**
  * @brief Appends start point to custom relationship
- *
- * @param[in]  obj                     Evas object
- *
+ * @param[in] obj Evas object
  * @return true on success or false otherwise
  */
 bool apptray_wgt_app_au_append_relationship_start_point(Evas_Object *obj);
 
 /**
  * @brief Removes start point from custom relationship
- *
- * @param[in]  obj                     Evas object
+ * @param[in] obj Evas object
  */
 void apptray_wgt_app_au_remove_relationship_start_point(Evas_Object *obj);
 
-#endif /* __APPTRAY_WIDGET_ACCESSIBILITY_UTILS_H__ */
+#endif /* __APPTRAY_WIDGET_APP_ACCESSIBILITY_UTILS_H__ */
index 2e2939c7ff42e9fd917242e29f3e965c3d6b66ae..93e32091a790145db1efaa539eee2de9f261d9ab 100644 (file)
@@ -17,8 +17,6 @@
 #ifndef __APPTRAY_WGT_APP_COMMON_DEF_H__
 #define __APPTRAY_WGT_APP_COMMON_DEF_H__
 
-#include "apptray_wgt_app_common_def.h"
-
 #define ATW_BUF_SIZE_SMALL  32
 #define ATW_BUF_SIZE_NORMAL 128
 #define ATW_BUF_SIZE_LARGE  512
index 578a0feedd80c5e4bd8838724acba94541a484cb..9ac91b02af98924b8d8227d0ed7b0d0a47b46f44 100755 (executable)
 #define __APPTRAY_WGT_APP_ITEM_INFO_H__
 
 #include <Elementary.h>
-#include <Evas.h>
-
-#include "apptray_wgt_app_common_def.h"
-#include "apptray_wgt_app_utils.h"
 
 typedef struct {
        char *pkgid;
        char *appid;
        char *name;
        char *icon;
-       int open_app;
-       int removable;
        Eina_Bool is_selected;
        Elm_Object_Item *gl_item;
 } apptray_wgt_app_item_info_s;
 
-apptray_wgt_app_item_info_s *apptray_wgt_app_item_info_create(const char *appid);
+apptray_wgt_app_item_info_s *apptray_wgt_app_item_info_create(
+               const char *appid);
 
 void apptray_wgt_app_item_info_destroy(apptray_wgt_app_item_info_s *item_info);
 
diff --git a/apptray-widget-app/inc/apptray_wgt_app_key.h b/apptray-widget-app/inc/apptray_wgt_app_key.h
deleted file mode 100755 (executable)
index eb9aba4..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * 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.
- */
-
-#ifndef __APPTRAY_WGT_APP_KEY_H__
-#define __APPTRAY_WGT_APP_KEY_H__
-
-#include <stdbool.h>
-
-typedef enum {
-       APPTRAY_WGT_APP_KEY_CB_RET_CONTINUE = 0,
-       APPTRAY_WGT_APP_KEY_CB_RET_STOP,
-} apptray_wgt_app_key_cb_ret_e;
-
-typedef enum {
-       APPTRAY_WGT_APP_KEY_TYPE_BACK = 0,
-       APPTRAY_WGT_APP_KEY_TYPE_POWER,
-       APPTRAY_WGT_APP_KEY_TYPE_MAX,
-} apptray_wgt_app_key_type_e;
-
-typedef apptray_wgt_app_key_cb_ret_e (*apptray_wgt_app_key_result_cb)(void *);
-
-void apptray_wgt_app_key_register(void);
-void apptray_wgt_app_key_unregister(void);
-bool apptray_wgt_app_key_register_cb(apptray_wgt_app_key_type_e type,
-               apptray_wgt_app_key_result_cb result_cb, void *result_data);
-void apptray_wgt_app_key_unregister_cb(apptray_wgt_app_key_type_e type,
-               apptray_wgt_app_key_result_cb result_cb);
-void apptray_wgt_app_key_cb_execute(int type);
-
-#endif /* __APPTRAY_WGT_APP_KEY_H__ */
diff --git a/apptray-widget-app/inc/apptray_wgt_app_key_event_provider.h b/apptray-widget-app/inc/apptray_wgt_app_key_event_provider.h
new file mode 100755 (executable)
index 0000000..6d12807
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * 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.
+ */
+
+#ifndef __APPTRAY_WGT_APP_KEY_EVENT_PROVIDER_H__
+#define __APPTRAY_WGT_APP_KEY_EVENT_PROVIDER_H__
+
+#include <stdbool.h>
+
+typedef enum {
+       APPTRAY_WGT_APP_KEY_TYPE_BACK = 0,
+       APPTRAY_WGT_APP_KEY_TYPE_POWER,
+       APPTRAY_WGT_APP_KEY_TYPE_MAX
+} apptray_wgt_app_key_type_e;
+
+typedef bool (*apptray_wgt_app_key_event_cb)(void *);
+
+void apptray_wgt_app_key_event_provider_init(void);
+
+void apptray_wgt_app_key_event_provider_deinit(void);
+
+bool apptray_wgt_app_key_event_provider_add_handler(
+               apptray_wgt_app_key_type_e type,
+               apptray_wgt_app_key_event_cb result_cb,
+               void *result_data);
+
+void apptray_wgt_app_key_event_provider_del_handler(
+               apptray_wgt_app_key_type_e type,
+               apptray_wgt_app_key_event_cb result_cb);
+
+#endif /* __APPTRAY_WGT_APP_KEY_EVENT_PROVIDER_H__ */
index 294564de29abb46473a3850f0e256056c21442c7..e194740e21ec817536a75238e2f7c61d3e51bc36 100755 (executable)
 #include <app_manager.h>
 
 #include "apptray_wgt_app_item_info.h"
-#include "apptray_wgt_app_key.h"
-#include "apptray_wgt_app_log.h"
 #include "apptray_wgt_app_utils.h"
 #include "apptray_wgt_app_common_def.h"
 #include "apptray_wgt_app_accessibility_utils.h"
+#include "apptray_wgt_app_key_event_provider.h"
+#include "apptray_wgt_app_log.h"
 
 #define ATW_DEFAULT_APP_ORDER              "org.tizen.apptray-widget-app org.tizen.alarm org.tizen.w-phone org.tizen.watch-setting"
 
@@ -85,30 +85,30 @@ typedef struct {
 } _apptray_wgt_app_slot_convertor;
 
 static _apptray_wgt_app_slot_convertor _output_slot_conv[16] = {
-               {{ 0, 1, 2, 3 }},
-               {{ 0, 1, 2, 3 }},
-               {{ 1, 0, 2, 3 }},
-               {{ 1, 0, 2, 3 }},
-               {{ 2, 0, 1, 3 }},
-               {{ 0, 2, 1, 3 }},
-               {{ 1, 2, 0, 3 }},
-               {{ 0, 1, 2, 3 }},
-               {{ 3, 0, 1, 2 }},
-               {{ 0, 3, 1, 2 }},
-               {{ 1, 3, 0, 2 }},
-               {{ 0, 1, 3, 2 }},
-               {{ 3, 2, 0, 1 }},
-               {{ 0, 3, 2, 1 }},
-               {{ 1, 3, 2, 0 }},
-               {{ 0, 1, 2, 3 }}
+               { { 0, 1, 2, 3 } },
+               { { 0, 1, 2, 3 } },
+               { { 1, 0, 2, 3 } },
+               { { 1, 0, 2, 3 } },
+               { { 2, 0, 1, 3 } },
+               { { 0, 2, 1, 3 } },
+               { { 1, 2, 0, 3 } },
+               { { 0, 1, 2, 3 } },
+               { { 3, 0, 1, 2 } },
+               { { 0, 3, 1, 2 } },
+               { { 1, 3, 0, 2 } },
+               { { 0, 1, 3, 2 } },
+               { { 3, 2, 0, 1 } },
+               { { 0, 3, 2, 1 } },
+               { { 1, 3, 2, 0 } },
+               { { 0, 1, 2, 3 } }
 };
 
 static _apptray_wgt_app_slot_convertor _input_slot_conv[5] = {
-               {{ 0, 1, 2, 3 }},
-               {{ 0, 1, 2, 3 }},
-               {{ 1, 2, 0, 3 }},
-               {{ 0, 1, 2, 3 }},
-               {{ 0, 1, 2, 3 }}
+               { { 0, 1, 2, 3 } },
+               { { 0, 1, 2, 3 } },
+               { { 1, 2, 0, 3 } },
+               { { 0, 1, 2, 3 } },
+               { { 0, 1, 2, 3 } }
 };
 
 typedef struct {
@@ -125,9 +125,9 @@ static _apptray_wgt_app_slot_coord _slot_coords[ATW_APP_SLOTS_MAX_COUNT] = {
 
 typedef struct appdata {
        Evas_Object *win;
-       Evas_Object *naviframe;
-       Evas_Object *conformant;
-       Eext_Circle_Surface *circle_surface;
+       Evas_Object *navi;
+       Evas_Object *conf;
+       Eext_Circle_Surface *circle_surf;
 
        Elm_Object_Item *edit_view_navi_item;
        Elm_Object_Item *select_view_navi_item;
@@ -175,12 +175,16 @@ static appdata_s *g_info = NULL;
 static char *strdup_s(const char *val);
 static void _update_appid_list_with_selected_items();
 static void _update_content(void);
-static apptray_wgt_app_key_cb_ret_e _key_release_cb(void *data);
+static bool _key_release_cb(void *data);
 static void _terminate_add_to_shortcut(void);
 static Eina_Bool _longpress_timer_cb(void *data);
 
-static void _app_icon_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-static void _plus_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void _app_icon_clicked_cb(void *data,
+               Evas_Object *obj,
+               void *event_info);
+static void _plus_clicked_cb(void *data,
+               Evas_Object *obj,
+               void *event_info);
 static void _transit_del_cb(void *data, Elm_Transit *transit);
 static void _anim_switch_item(Evas_Object *item, int src, int dst);
 
@@ -190,25 +194,40 @@ static void _up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
 
 static void _del_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
 
-static char *_title_item_get_txt_cb(void *data, Evas_Object *obj, const char *part);
+static char *_title_item_get_txt_cb(void *data,
+               Evas_Object *obj,
+               const char *part);
 static Elm_Genlist_Item_Class *_get_gl_itc_header();
-static char *_cont_item_get_txt_cb(void *data, Evas_Object *obj, const char *part);
-
-static void _toast_popup_hide_cb(void *data, Evas_Object *obj, void *event_info);
-static void _toast_popup_dismiss_cb(void *data, Evas_Object *obj, void *event_info);
+static char *_cont_item_get_txt_cb(void *data,
+               Evas_Object *obj,
+               const char *part);
+
+static void _toast_popup_hide_cb(void *data,
+               Evas_Object *obj,
+               void *event_info);
+static void _toast_popup_dismiss_cb(void *data,
+               Evas_Object *obj,
+               void *event_info);
 static void _create_toast_popup(const char *text);
 
-static void _gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-static void _cont_item_del_cb(void *data, Evas_Object *obj);
+static void _gl_check_clicked_cb(void *data,
+               Evas_Object *obj,
+               void *event_info);
+static void _cont_item_del_cb(void *data,
+               Evas_Object *obj);
 static Elm_Genlist_Item_Class *_get_gl_itc_content();
 static Elm_Genlist_Item_Class *_get_gl_itc_empty();
 
 static void _gl_add_header_item(Evas_Object *gl);
 static bool _check_already_added_apps(const char *appid);
-static void _gl_item_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void _gl_item_clicked_cb(void *data,
+               Evas_Object *obj,
+               void *event_info);
 static void _gl_add_apps_items(Evas_Object *gl, Eina_List *app_list);
 static void _gl_add_empty_item(Evas_Object *gl);
-static void _bottom_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void _bottom_btn_click_cb(void *data,
+               Evas_Object *obj,
+               void *event_info);
 Evas_Object *_set_app_slot(const char *appid, int pos);
 static Eina_Bool _click_blocker_timer_cb(void *data);
 
@@ -217,11 +236,17 @@ static bool _apps_all_cb(app_info_h handle, void *user_data);
 static Eina_List *_read_all_apps_on_device(Eina_List **list);
 
 /* Main UI components */
-static bool _create_main_ui_components(appdata_s *info, const char *name, const char *title);
-static Evas_Object *_create_win(appdata_s *info, const char *name, const char *title);
+static bool _create_main_ui_components(appdata_s *info,
+               const char *name,
+               const char *title);
+static Evas_Object *_create_win(appdata_s *info,
+               const char *name,
+               const char *title);
 static Evas_Object *_create_conformant(Evas_Object *win);
 static Evas_Object *_create_naviframe(Evas_Object *parent, appdata_s *info);
-static void _naviframe_transition_finished_cb(void *data, Evas_Object *obj, void *event_info);
+static void _naviframe_transition_finished_cb(void *data,
+               Evas_Object *obj,
+               void *event_info);
 static void _process_navi_item_transition_finish(appdata_s *info);
 static bool _check_naviframe_is_empty(Evas_Object *naviframe);
 
@@ -229,12 +254,18 @@ static bool _show_view(appdata_s *info, _apptray_wgt_view_type_e view_type);
 
 /* Select View */
 static Evas_Object *_create_select_view(appdata_s *info);
-static Evas_Object *_select_view_create_bottom_btn(Evas_Object *parent, appdata_s *info);
-static Evas_Object *_select_view_create_genlist_ly(Evas_Object *parent, appdata_s *info);
-static Evas_Object *_select_view_create_multi_pick_genlist(Evas_Object *parent, appdata_s *info);
-static Evas_Object *_select_view_create_select_count_btn(Evas_Object *parent, appdata_s *info);
-static Evas_Object *_select_view_create_simple_genlist(Evas_Object *parent, appdata_s *info);
-static void _select_view_set_genlist_content(Evas_Object *genlist, appdata_s *info);
+static Evas_Object *_select_view_create_bottom_btn(Evas_Object *parent,
+               appdata_s *info);
+static Evas_Object *_select_view_create_genlist_ly(Evas_Object *parent,
+               appdata_s *info);
+static Evas_Object *_select_view_create_multi_pick_genlist(Evas_Object *parent,
+               appdata_s *info);
+static Evas_Object *_select_view_create_select_count_btn(Evas_Object *parent,
+               appdata_s *info);
+static Evas_Object *_select_view_create_simple_genlist(Evas_Object *parent,
+               appdata_s *info);
+static void _select_view_set_genlist_content(Evas_Object *genlist,
+               appdata_s *info);
 static Evas_Object *_select_view_create_main_ly(appdata_s *info);
 static void _select_view_update_apps_label(appdata_s *ad);
 
@@ -245,19 +276,27 @@ static void _select_view_set_highlight_on_bottom_btn(appdata_s *app);
 static void _select_view_set_highlight_on_gl_first_item(appdata_s *app);
 static void _select_view_update_gl_item_highlight_on_next(appdata_s *app);
 static void _select_view_update_gl_item_highlight_on_prev(appdata_s *app);
-static Eina_Bool _select_view_rotary_event_cb(void *data, Evas_Object *obj, Eext_Rotary_Event_Info *info);
+static Eina_Bool _select_view_rotary_event_cb(void *data,
+               Evas_Object *obj,
+               Eext_Rotary_Event_Info *info);
 static void _select_view_gl_manual_scroll_next(appdata_s *app);
 static void _select_view_gl_manual_scroll_prev(appdata_s *app);
 static void _select_view_gl_manual_highlight_next(appdata_s *app);
 static void _select_view_gl_manual_highlight_prev(appdata_s *app);
 static void _select_view_process_rotary_clockwise_event(appdata_s *app);
 static void _select_view_process_rotary_counter_clockwise_event(appdata_s *app);
-static void _select_view_gl_highlight_cb(void *data, Evas_Object *obj, void *event_info);
-static void _select_view_gl_unhighlight_cb(void *data, Evas_Object *obj, void *event_info);
+static void _select_view_gl_highlight_cb(void *data,
+               Evas_Object *obj,
+               void *event_info);
+static void _select_view_gl_unhighlight_cb(void *data,
+               Evas_Object *obj,
+               void *event_info);
 static void _select_view_register_counter_ao(appdata_s *info);
 static void _select_view_register_custom_accessibility_rout(appdata_s *info);
 static void _select_view_update_counter_ao_name(appdata_s *info);
-static Eina_Bool _ao_sv_counter_action_cb(void *data, Evas_Object *obj, Elm_Access_Action_Info *action_info);
+static Eina_Bool _ao_sv_counter_action_cb(void *data,
+               Evas_Object *obj,
+               Elm_Access_Action_Info *action_info);
 
 /* Edit View */
 static Evas_Object *_create_edit_view(appdata_s *info);
@@ -265,16 +304,25 @@ static Evas_Object *_edit_view_create_layout(appdata_s *info);
 static bool _edit_view_init_slots(const char *app_list);
 static Evas_Object *_edit_view_create_slot_ly(Evas_Object *parent);
 static Evas_Object *_edit_view_create_slot_app_btn(Evas_Object *parent);
-static Evas_Object *_edit_view_create_slot_app_btn_icon(Evas_Object *parent, const char *image_path);
+static Evas_Object *_edit_view_create_slot_app_btn_icon(Evas_Object *parent,
+               const char *image_path);
 static Evas_Object *_edit_view_create_slot_app_btn_del_ly(Evas_Object *parent);
 static Evas_Object *_edit_view_create_slot_empty_btn(Evas_Object *parent);
 static int _edit_view_get_slot_index_by_pointer(Evas_Object *slot);
 static void _edit_view_replace_slot_with_empty(Evas_Object *slot);
-static Eina_Bool _edit_view_rotary_event_cb(void *data, Evas_Object *obj, Eext_Rotary_Event_Info *info);
-
-static Eina_Bool _ao_ev_ly_action_cb(void *data, Evas_Object *obj, Elm_Access_Action_Info *action_info);
-static void _edit_view_slot_btn_highlight_cb(void *data, Evas_Object *obj, void *event_info);
-static void _edit_view_slot_btn_unhighlight_cb(void *data, Evas_Object *obj, void *event_info);
+static Eina_Bool _edit_view_rotary_event_cb(void *data,
+               Evas_Object *obj,
+               Eext_Rotary_Event_Info *info);
+
+static Eina_Bool _ao_ev_ly_action_cb(void *data,
+               Evas_Object *obj,
+               Elm_Access_Action_Info *action_info);
+static void _edit_view_slot_btn_highlight_cb(void *data,
+               Evas_Object *obj,
+               void *event_info);
+static void _edit_view_slot_btn_unhighlight_cb(void *data,
+               Evas_Object *obj,
+               void *event_info);
 static void _edit_view_manual_highlight_next();
 static void _edit_view_manual_highlight_prev();
 
@@ -299,7 +347,8 @@ static void _app_lang_changed(app_event_info_h event_info, void *user_data);
 static bool _app_process_pick_operation(appdata_s *info);
 static bool _app_process_main_operation(appdata_s *info, const char *app_list);
 
-static void _activate_view_rotary_state(appdata_s *info, _apptray_wgt_view_type_e view_type);
+static void _activate_view_rotary_state(appdata_s *info,
+               _apptray_wgt_view_type_e view_type);
 
 static char *strdup_s(const char *val)
 {
@@ -311,19 +360,21 @@ static void _update_appid_list_with_selected_items()
        apptray_wgt_app_item_info_s *item_info = NULL;
        Eina_List *l = NULL;
        Eina_List *n = NULL;
-       int selected_app_count = 0;
+       int selected_count = 0;
        int i = 0;
 
        EINA_LIST_FOREACH_SAFE(g_info->all_app_list, l, n, item_info) {
                if (item_info->is_selected && item_info->appid) {
-                       ++selected_app_count;
+                       ++selected_count;
                }
        }
 
        EINA_LIST_FOREACH_SAFE(g_info->all_app_list, l, n, item_info) {
                if (item_info->is_selected && item_info->appid) {
-                       free(g_info->appid_list[_input_slot_conv[selected_app_count].slot_seq_arr[i]]);
-                       g_info->appid_list[_input_slot_conv[selected_app_count].slot_seq_arr[i]] = strdup(item_info->appid);
+                       free(g_info->appid_list[_input_slot_conv[selected_count].
+                                                                       slot_seq_arr[i]]);
+                       g_info->appid_list[_input_slot_conv[selected_count].
+                                                          slot_seq_arr[i]] = strdup(item_info->appid);
                        i++;
                }
        }
@@ -370,9 +421,11 @@ static void _update_content(void)
        }
 
        bundle_add_str(b_tmp, ATW_BUNDLE_KEY_SHORTCUT_LIST, content);
-       res = widget_service_trigger_update(ATW_APP_WIDGET_CONTENT_KEY, g_info->widget_instance_id, b_tmp, 1);
+       res = widget_service_trigger_update(ATW_APP_WIDGET_CONTENT_KEY,
+                       g_info->widget_instance_id, b_tmp, 1);
        if (res != WIDGET_ERROR_NONE) {
-               _E("Update widget instance [%s] of wgt app [%s] failed. res[%d]", g_info->widget_instance_id, ATW_APP_WIDGET_CONTENT_KEY, res);
+               _E("Update widget instance [%s] of wgt app [%s] failed. res[%d]",
+                               g_info->widget_instance_id, ATW_APP_WIDGET_CONTENT_KEY, res);
        }
        bundle_free(b_tmp);
 
@@ -388,7 +441,9 @@ static void _terminate_add_to_shortcut(void)
        ui_app_exit();
 }
 
-static Evas_Object *_create_win(appdata_s *info, const char *name, const char *title)
+static Evas_Object *_create_win(appdata_s *info,
+               const char *name,
+               const char *title)
 {
        _ENTER;
 
@@ -463,20 +518,25 @@ static int _edit_view_get_slot_index_by_pointer(Evas_Object *slot)
        return 0;
 }
 
-static void _activate_view_rotary_state(appdata_s *info, _apptray_wgt_view_type_e view_type)
+static void _activate_view_rotary_state(appdata_s *info,
+               _apptray_wgt_view_type_e view_type)
 {
        _ENTER;
 
        if (view_type == APPTRAY_WGT_APP_VIEW_EDIT) {
                if (info->select_view_circle_gl) {
-                       eext_rotary_object_event_activated_set(info->select_layout, EINA_FALSE);
+                       eext_rotary_object_event_activated_set(info->select_layout,
+                                       EINA_FALSE);
                }
-               eext_rotary_object_event_activated_set(info->edit_layout, EINA_TRUE);
+               eext_rotary_object_event_activated_set(info->edit_layout,
+                               EINA_TRUE);
        } else {
                if (info->edit_layout) {
-                       eext_rotary_object_event_activated_set(info->edit_layout, EINA_FALSE);
+                       eext_rotary_object_event_activated_set(info->edit_layout,
+                                       EINA_FALSE);
                }
-               eext_rotary_object_event_activated_set(info->select_layout, EINA_TRUE);
+               eext_rotary_object_event_activated_set(info->select_layout,
+                               EINA_TRUE);
        }
 }
 
@@ -609,10 +669,14 @@ static void _move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
                evas_object_move(data, eo_new_x, eo_new_y);
 
                for (i = 0; i < ATW_APP_SLOTS_MAX_COUNT; i++) {
-                       if ((eo_new_x > _slot_coords[i].x - ATW_SLOT_ITEM_SET_POS_THRESHOLD
-                                               && eo_new_x < _slot_coords[i].x + ATW_SLOT_ITEM_SET_POS_THRESHOLD)
-                                       && (eo_new_y > _slot_coords[i].y - ATW_SLOT_ITEM_SET_POS_THRESHOLD
-                                                       && eo_new_y < _slot_coords[i].y + ATW_SLOT_ITEM_SET_POS_THRESHOLD)) {
+                       if ((eo_new_x > _slot_coords[i].x -
+                                       ATW_SLOT_ITEM_SET_POS_THRESHOLD
+                                               && eo_new_x < _slot_coords[i].x +
+                                               ATW_SLOT_ITEM_SET_POS_THRESHOLD)
+                                       && (eo_new_y > _slot_coords[i].y -
+                                                       ATW_SLOT_ITEM_SET_POS_THRESHOLD
+                                                       && eo_new_y < _slot_coords[i].y +
+                                                       ATW_SLOT_ITEM_SET_POS_THRESHOLD)) {
                                int slot_index = i + 1;
                                if (pressed_index != slot_index && !transit_go) {
                                        char *tmp = NULL;
@@ -622,11 +686,13 @@ static void _move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
                                        _D("Slot %d area", slot_index);
 
                                        snprintf(buff, sizeof(buff), "index%d", slot_index);
-                                       item = elm_object_part_content_unset(g_info->edit_layout, buff);
+                                       item = elm_object_part_content_unset(
+                                                       g_info->edit_layout, buff);
                                        _anim_switch_item(item, slot_index, pressed_index);
                                        tmp = strdup(g_info->appid_list[pressed_index - 1]);
 
-                                       g_info->appid_list[pressed_index - 1] = strdup(g_info->appid_list[i]);
+                                       g_info->appid_list[pressed_index - 1] =
+                                                       strdup(g_info->appid_list[i]);
                                        g_info->appid_list[i] = strdup(tmp);
 
                                        FREE(tmp);
@@ -669,7 +735,9 @@ static void _up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
        elm_object_signal_emit(data, "show", "slot");
        elm_object_signal_emit(data, "show_icon", "slot");
 
-       elm_object_signal_emit(g_info->edit_layout, "hide_edit_stroke", "edit_layout");
+       elm_object_signal_emit(g_info->edit_layout,
+                       "hide_edit_stroke",
+                       "edit_layout");
 
        _update_content();
 
@@ -680,7 +748,8 @@ static void _up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
        if (longpress_flag) {
                longpress_flag = EINA_FALSE;
                DEL_ECORE_TIMER(click_blocker_timer);
-               click_blocker_timer = ecore_timer_add(ATW_CLICK_BLOCKER_TIMER_DURATION, _click_blocker_timer_cb, NULL);
+               click_blocker_timer = ecore_timer_add(ATW_CLICK_BLOCKER_TIMER_DURATION,
+                               _click_blocker_timer_cb, NULL);
        }
 }
 
@@ -735,12 +804,14 @@ static void _edit_view_unset_access_rout()
        char buff[ATW_BUF_SIZE_SMALL] = { 0 };
 
        if (g_info->ao_ev_first) {
-               apptray_wgt_app_au_remove_relationship_start_point(g_info->ao_ev_first);
+               apptray_wgt_app_au_remove_relationship_start_point(
+                               g_info->ao_ev_first);
                cur_ao = g_info->ao_ev_first;
        }
 
        if (g_info->ao_ev_ly) {
-               apptray_wgt_app_au_remove_symmetric_relationship(cur_ao, g_info->ao_ev_ly);
+               apptray_wgt_app_au_remove_symmetric_relationship(cur_ao,
+                               g_info->ao_ev_ly);
                cur_ao = g_info->ao_ev_ly;
        }
 
@@ -766,12 +837,14 @@ static void _edit_view_set_access_rout()
        char buff[ATW_BUF_SIZE_SMALL] = { 0 };
 
        if (g_info->ao_ev_first) {
-               apptray_wgt_app_au_append_relationship_start_point(g_info->ao_ev_first);
+               apptray_wgt_app_au_append_relationship_start_point(
+                               g_info->ao_ev_first);
                cur_ao = g_info->ao_ev_first;
        }
 
        if (g_info->ao_ev_ly) {
-               apptray_wgt_app_au_append_symmetric_relationship(cur_ao, g_info->ao_ev_ly);
+               apptray_wgt_app_au_append_symmetric_relationship(cur_ao,
+                               g_info->ao_ev_ly);
                cur_ao = g_info->ao_ev_ly;
        }
 
@@ -802,25 +875,33 @@ static Evas_Object *_edit_view_create_slot_app_btn(Evas_Object *parent)
        Evas_Object *eo = elm_button_add(parent);
        retv_if(!eo, NULL);
        elm_object_style_set(eo, "apptray/icon_slot");
-       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_DOWN, _down_cb, parent);
-       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_MOVE, _move_cb, parent);
-       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_UP, _up_cb, parent);
+       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_DOWN,
+                       _down_cb, parent);
+       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_MOVE,
+                       _move_cb, parent);
+       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_UP,
+                       _up_cb, parent);
        evas_object_smart_callback_add(eo, "clicked", _app_icon_clicked_cb, parent);
        evas_object_show(eo);
 
        /* Accessibility */
        elm_atspi_accessible_translation_domain_set(eo, ATW_DOMAIN);
-       elm_atspi_accessible_reading_info_type_set(eo, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME
+       elm_atspi_accessible_reading_info_type_set(eo,
+                       ELM_ACCESSIBLE_READING_INFO_TYPE_NAME
                        | ELM_ACCESSIBLE_READING_INFO_TYPE_DESCRIPTION);
-       elm_atspi_accessible_description_set(eo, "WDS_ACCS_TBBODY_DOUBLE_TAP_TO_REMOVE");
+       elm_atspi_accessible_description_set(eo,
+                       "WDS_ACCS_TBBODY_DOUBLE_TAP_TO_REMOVE");
 
-       evas_object_smart_callback_add(eo, "atspi,highlighted", _edit_view_slot_btn_highlight_cb, NULL);
-       evas_object_smart_callback_add(eo, "atspi,unhighlighted", _edit_view_slot_btn_unhighlight_cb, NULL);
+       evas_object_smart_callback_add(eo, "atspi,highlighted",
+                       _edit_view_slot_btn_highlight_cb, NULL);
+       evas_object_smart_callback_add(eo, "atspi,unhighlighted",
+                       _edit_view_slot_btn_unhighlight_cb, NULL);
 
        return eo;
 }
 
-static Evas_Object *_edit_view_create_slot_app_btn_icon(Evas_Object *parent, const char *image_path)
+static Evas_Object *_edit_view_create_slot_app_btn_icon(Evas_Object *parent,
+               const char *image_path)
 {
        Evas_Object *eo = evas_object_image_add(evas_object_evas_get(parent));
        retv_if(!eo, NULL);
@@ -922,13 +1003,17 @@ static void _edit_view_manual_highlight_prev()
        }
 }
 
-static void _edit_view_slot_btn_highlight_cb(void *data, Evas_Object *obj, void *event_info)
+static void _edit_view_slot_btn_highlight_cb(void *data,
+               Evas_Object *obj,
+               void *event_info)
 {
        _D("Slot btn [HIGHLIGHT]");
        g_info->ev_cur_highlighted_obj = obj;
 }
 
-static void _edit_view_slot_btn_unhighlight_cb(void *data, Evas_Object *obj, void *event_info)
+static void _edit_view_slot_btn_unhighlight_cb(void *data,
+               Evas_Object *obj,
+               void *event_info)
 {
        _D("Slot btn [UNHIGHLIGHT]");
        g_info->ev_cur_highlighted_obj = NULL;
@@ -939,20 +1024,26 @@ static Evas_Object *_edit_view_create_slot_empty_btn(Evas_Object *parent)
        Evas_Object *eo = elm_button_add(parent);
        retv_if(!eo, NULL);
        elm_object_style_set(eo, "apptray/empty_slot");
-       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_DOWN, _down_cb, parent);
-       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_MOVE, _move_cb, parent);
-       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_UP, _up_cb, parent);
+       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_DOWN,
+                       _down_cb, parent);
+       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_MOVE,
+                       _move_cb, parent);
+       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_UP,
+                       _up_cb, parent);
        evas_object_smart_callback_add(eo, "clicked", _plus_clicked_cb, parent);
        evas_object_show(eo);
 
        /* Accessibility */
        elm_atspi_accessible_translation_domain_set(eo, ATW_DOMAIN);
-       elm_atspi_accessible_reading_info_type_set(eo, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME
+       elm_atspi_accessible_reading_info_type_set(eo,
+                       ELM_ACCESSIBLE_READING_INFO_TYPE_NAME
                        | ELM_ACCESSIBLE_READING_INFO_TYPE_DESCRIPTION);
        elm_atspi_accessible_description_set(eo, "IDS_KM_BODY_DOUBLE_TAP_TO_ADD");
 
-       evas_object_smart_callback_add(eo, "atspi,highlighted", _edit_view_slot_btn_highlight_cb, NULL);
-       evas_object_smart_callback_add(eo, "atspi,unhighlighted", _edit_view_slot_btn_unhighlight_cb, NULL);
+       evas_object_smart_callback_add(eo, "atspi,highlighted",
+                       _edit_view_slot_btn_highlight_cb, NULL);
+       evas_object_smart_callback_add(eo, "atspi,unhighlighted",
+                       _edit_view_slot_btn_unhighlight_cb, NULL);
 
        return eo;
 }
@@ -987,9 +1078,11 @@ Evas_Object *_set_app_slot(const char *appid, int pos)
 
                if (app_info_create(appid, &app_info) != APP_MANAGER_ERROR_NONE) {
                        _E("app_info_create() failed");
-               } else if (app_info_get_icon(app_info, &icon_path) != APP_MANAGER_ERROR_NONE) {
+               } else if (app_info_get_icon(app_info, &icon_path) !=
+                               APP_MANAGER_ERROR_NONE) {
                        _E("app_info_get_icon() failed");
-               } else if (app_info_get_label(app_info, &label) != APP_MANAGER_ERROR_NONE) {
+               } else if (app_info_get_label(app_info, &label) !=
+                               APP_MANAGER_ERROR_NONE) {
                        _E("app_info_get_label() failed");
                }
 
@@ -1029,7 +1122,9 @@ Evas_Object *_set_app_slot(const char *appid, int pos)
        return slot;
 }
 
-static Eina_Bool _ao_ev_ly_action_cb(void *data, Evas_Object *obj, Elm_Access_Action_Info *action_info)
+static Eina_Bool _ao_ev_ly_action_cb(void *data,
+               Evas_Object *obj,
+               Elm_Access_Action_Info *action_info)
 {
        retv_if(!data, EINA_FALSE);
 
@@ -1049,18 +1144,25 @@ static void _edit_view_create_ly_access_obj(appdata_s *info)
 {
        _ENTER;
 
-       info->ao_ev_ly = (Evas_Object *)elm_access_object_register(info->edit_layout, info->win);
+       info->ao_ev_ly = (Evas_Object *)elm_access_object_register(
+                       info->edit_layout, info->win);
        ret_if(!info->ao_ev_ly);
        elm_atspi_accessible_translation_domain_set(info->ao_ev_ly, ATW_DOMAIN);
-       elm_atspi_accessible_reading_info_type_set(info->ao_ev_ly, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME
+       elm_atspi_accessible_reading_info_type_set(info->ao_ev_ly,
+                       ELM_ACCESSIBLE_READING_INFO_TYPE_NAME
                        | ELM_ACCESSIBLE_READING_INFO_TYPE_DESCRIPTION);
-       elm_atspi_accessible_description_set(info->ao_ev_ly, "WDS_ACCS_TBBODY_ROTATE_BEZEL_TO_EDIT_APP_SHORTCUTS");
+       elm_atspi_accessible_description_set(info->ao_ev_ly,
+                       "WDS_ACCS_TBBODY_ROTATE_BEZEL_TO_EDIT_APP_SHORTCUTS");
 
-       elm_access_action_cb_set(info->ao_ev_ly, ELM_ACCESS_ACTION_HIGHLIGHT, _ao_ev_ly_action_cb, info);
-       elm_access_action_cb_set(info->ao_ev_ly, ELM_ACCESS_ACTION_UNHIGHLIGHT, _ao_ev_ly_action_cb, info);
+       elm_access_action_cb_set(info->ao_ev_ly, ELM_ACCESS_ACTION_HIGHLIGHT,
+                       _ao_ev_ly_action_cb, info);
+       elm_access_action_cb_set(info->ao_ev_ly, ELM_ACCESS_ACTION_UNHIGHLIGHT,
+                       _ao_ev_ly_action_cb, info);
 }
 
-static Eina_Bool _edit_view_rotary_event_cb(void *data, Evas_Object *obj, Eext_Rotary_Event_Info *info)
+static Eina_Bool _edit_view_rotary_event_cb(void *data,
+               Evas_Object *obj,
+               Eext_Rotary_Event_Info *info)
 {
        _ENTER;
 
@@ -1085,14 +1187,17 @@ static Evas_Object *_edit_view_create_layout(appdata_s *info)
        elm_win_resize_object_add(info->win, eo);
        evas_object_show(eo);
 
-       if (!eext_rotary_object_event_callback_add(eo, _edit_view_rotary_event_cb, info)) {
+       if (!eext_rotary_object_event_callback_add(eo,
+                       _edit_view_rotary_event_cb, info)) {
                _E("Rotaty object event callback add failed");
        }
 
        return eo;
 }
 
-static char *_title_item_get_txt_cb(void *data, Evas_Object *obj, const char *part)
+static char *_title_item_get_txt_cb(void *data,
+               Evas_Object *obj,
+               const char *part)
 {
        return strdup(_("WDS_AWGT_HEADER_SELECT_APP_SHORTCUT"));
 }
@@ -1112,7 +1217,9 @@ static Elm_Genlist_Item_Class *_get_gl_itc_header()
        return &header_itc;
 }
 
-static char *_cont_item_get_txt_cb(void *data, Evas_Object *obj, const char *part)
+static char *_cont_item_get_txt_cb(void *data,
+               Evas_Object *obj,
+               const char *part)
 {
        if (!strcmp(part, "elm.text")) {
                apptray_wgt_app_item_info_s *item_info = data;
@@ -1123,13 +1230,17 @@ static char *_cont_item_get_txt_cb(void *data, Evas_Object *obj, const char *par
        return NULL;
 }
 
-static void _toast_popup_hide_cb(void *data, Evas_Object *obj, void *event_info)
+static void _toast_popup_hide_cb(void *data,
+               Evas_Object *obj,
+               void *event_info)
 {
        ret_if(!obj);
        elm_popup_dismiss(obj);
 }
 
-static void _toast_popup_dismiss_cb(void *data, Evas_Object *obj, void *event_info)
+static void _toast_popup_dismiss_cb(void *data,
+               Evas_Object *obj,
+               void *event_info)
 {
        ret_if(!obj);
        evas_object_del(obj);
@@ -1148,12 +1259,16 @@ static void _create_toast_popup(const char *text)
        elm_object_style_set(popup, "toast/circle");
        elm_popup_orient_set(popup, ELM_POPUP_ORIENT_BOTTOM);
        evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _toast_popup_hide_cb, NULL);
-       evas_object_smart_callback_add(popup, "dismissed", _toast_popup_dismiss_cb, NULL);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK,
+                       _toast_popup_hide_cb, NULL);
+       evas_object_smart_callback_add(popup, "dismissed",
+                       _toast_popup_dismiss_cb, NULL);
        elm_object_part_text_set(popup, "elm.text", text);
-       evas_object_smart_callback_add(popup, "block,clicked", _toast_popup_hide_cb, NULL);
+       evas_object_smart_callback_add(popup, "block,clicked",
+                       _toast_popup_hide_cb, NULL);
        elm_popup_timeout_set(popup, 2.0);
-       evas_object_smart_callback_add(popup, "timeout", _toast_popup_hide_cb, NULL);
+       evas_object_smart_callback_add(popup, "timeout",
+                       _toast_popup_hide_cb, NULL);
 
        evas_object_show(popup);
 
@@ -1164,7 +1279,8 @@ static void _select_view_update_counter_ao_name(appdata_s *info)
 {
        if (info->ao_sv_counter) {
                char desc[ATW_BUF_SIZE_LARGE] = { 0 };
-               snprintf(desc, sizeof(desc), _("IDS_KA_HEADER_PD_OF_PD"), info->select_count, ATW_APP_SLOTS_MAX_COUNT);
+               snprintf(desc, sizeof(desc), _("IDS_KA_HEADER_PD_OF_PD"),
+                               info->select_count, ATW_APP_SLOTS_MAX_COUNT);
                elm_atspi_accessible_name_set(info->ao_sv_counter, desc);
        }
 }
@@ -1178,19 +1294,23 @@ static void _gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info)
                if (item_info->is_selected) {
                        item_info->is_selected = false;
                        elm_check_state_set(obj, EINA_FALSE);
-                       _create_toast_popup(_("WDS_HS_TPOP_YOU_CAN_ONLY_ADD_UP_TO_4_APPS_ABB"));
+                       _create_toast_popup(
+                                       _("WDS_HS_TPOP_YOU_CAN_ONLY_ADD_UP_TO_4_APPS_ABB"));
                        return;
                }
        }
 
-       g_info->select_count += (item_info->is_selected)? 1 : -1;
-       snprintf(buf, sizeof(buf), "%d/%d", g_info->select_count, ATW_APP_SLOTS_MAX_COUNT);
+       g_info->select_count += (item_info->is_selected) ? 1 : -1;
+       snprintf(buf, sizeof(buf), "%d/%d", g_info->select_count,
+                       ATW_APP_SLOTS_MAX_COUNT);
        elm_object_text_set(g_info->select_count_btn, buf);
 
        _select_view_update_counter_ao_name(g_info);
 }
 
-static Evas_Object *_cont_item_get_content_cb(void *data, Evas_Object *obj, const char *part)
+static Evas_Object *_cont_item_get_content_cb(void *data,
+               Evas_Object *obj,
+               const char *part)
 {
        apptray_wgt_app_item_info_s *item_info = data;
        retv_if(!item_info, NULL);
@@ -1207,20 +1327,25 @@ static Evas_Object *_cont_item_get_content_cb(void *data, Evas_Object *obj, cons
                                ELM_SCALE_SIZE(ATW_GENLIST_ITEM_ICON_DIMENSION));
                evas_object_show(image);
                return image;
-       } else if (g_info->launch_type == APPTRAY_WGT_APP_LAUNCH_TYPE_PICK && !strcmp(part, "elm.swallow.center_check")) {
+       } else if (g_info->launch_type == APPTRAY_WGT_APP_LAUNCH_TYPE_PICK &&
+                       !strcmp(part, "elm.swallow.center_check")) {
                Evas_Object *check = elm_check_add(obj);
                elm_object_style_set(check, "genlist/select_mode");
                elm_check_state_set(check, EINA_FALSE);
-               evas_object_smart_callback_add(check, "changed", _gl_check_clicked_cb, data);
+               evas_object_smart_callback_add(check, "changed",
+                               _gl_check_clicked_cb, data);
                elm_check_state_pointer_set(check, &item_info->is_selected);
                evas_object_repeat_events_set(check, EINA_FALSE);
                evas_object_propagate_events_set(check, EINA_FALSE);
                evas_object_show(check);
 
                /* Accessibility */
-               elm_atspi_accessible_relationship_append(item_info->gl_item, ELM_ATSPI_RELATION_CONTROLLER_FOR, check);
-               elm_atspi_accessible_relationship_append(check, ELM_ATSPI_RELATION_CONTROLLED_BY, item_info->gl_item);
-               elm_atspi_accessible_relationship_append(item_info->gl_item, ELM_ATSPI_RELATION_DESCRIBED_BY, check);
+               elm_atspi_accessible_relationship_append(item_info->gl_item,
+                               ELM_ATSPI_RELATION_CONTROLLER_FOR, check);
+               elm_atspi_accessible_relationship_append(check,
+                               ELM_ATSPI_RELATION_CONTROLLED_BY, item_info->gl_item);
+               elm_atspi_accessible_relationship_append(item_info->gl_item,
+                               ELM_ATSPI_RELATION_DESCRIBED_BY, check);
                elm_atspi_accessible_can_highlight_set(check, EINA_FALSE);
 
                return check;
@@ -1265,7 +1390,8 @@ static Elm_Genlist_Item_Class *_get_gl_itc_empty()
        return &empty_itc;
 }
 
-static void _select_view_set_genlist_content(Evas_Object *genlist, appdata_s *info)
+static void _select_view_set_genlist_content(Evas_Object *genlist,
+               appdata_s *info)
 {
        if (info->launch_type == APPTRAY_WGT_APP_LAUNCH_TYPE_PICK) {
                _gl_add_empty_item(genlist);
@@ -1276,7 +1402,9 @@ static void _select_view_set_genlist_content(Evas_Object *genlist, appdata_s *in
        _gl_add_empty_item(genlist);
 }
 
-static void _select_view_gl_highlight_cb(void *data, Evas_Object *obj, void *event_info)
+static void _select_view_gl_highlight_cb(void *data,
+               Evas_Object *obj,
+               void *event_info)
 {
        _ENTER;
        appdata_s *info = data;
@@ -1285,7 +1413,9 @@ static void _select_view_gl_highlight_cb(void *data, Evas_Object *obj, void *eve
        info->sv_cur_highlighted_obj = event_info;
 }
 
-static void _select_view_gl_unhighlight_cb(void *data, Evas_Object *obj, void *event_info)
+static void _select_view_gl_unhighlight_cb(void *data,
+               Evas_Object *obj,
+               void *event_info)
 {
        _ENTER;
        appdata_s *info = data;
@@ -1294,7 +1424,8 @@ static void _select_view_gl_unhighlight_cb(void *data, Evas_Object *obj, void *e
        info->sv_cur_highlighted_obj = NULL;
 }
 
-static Evas_Object *_select_view_create_simple_genlist(Evas_Object *parent, appdata_s *info)
+static Evas_Object *_select_view_create_simple_genlist(Evas_Object *parent,
+               appdata_s *info)
 {
        Evas_Object *eo = elm_genlist_add(parent);
        retv_if(!eo, NULL);
@@ -1303,14 +1434,17 @@ static Evas_Object *_select_view_create_simple_genlist(Evas_Object *parent, appd
        elm_genlist_mode_set(eo, ELM_LIST_COMPRESS);
        elm_genlist_homogeneous_set(eo, EINA_TRUE);
 
-       info->select_view_circle_gl = eext_circle_object_genlist_add(eo, info->circle_surface);
+       info->select_view_circle_gl = eext_circle_object_genlist_add(eo,
+                       info->circle_surf);
        eext_circle_object_genlist_scroller_policy_set(info->select_view_circle_gl,
                        ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
 
        elm_layout_content_set(parent, "elm.swallow.content", eo);
 
-       evas_object_smart_callback_add(eo, "atspi,highlighted", _select_view_gl_highlight_cb, info);
-       evas_object_smart_callback_add(eo, "atspi,unhighlighted", _select_view_gl_unhighlight_cb, info);
+       evas_object_smart_callback_add(eo, "atspi,highlighted",
+                       _select_view_gl_highlight_cb, info);
+       evas_object_smart_callback_add(eo, "atspi,unhighlighted",
+                       _select_view_gl_unhighlight_cb, info);
 
        evas_object_show(eo);
        return eo;
@@ -1318,7 +1452,8 @@ static Evas_Object *_select_view_create_simple_genlist(Evas_Object *parent, appd
 
 static void _gl_add_header_item(Evas_Object *gl)
 {
-       elm_genlist_item_append(gl, _get_gl_itc_header(), NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       elm_genlist_item_append(gl, _get_gl_itc_header(), NULL, NULL,
+                       ELM_GENLIST_ITEM_NONE, NULL, NULL);
 }
 
 static bool _check_already_added_apps(const char *appid)
@@ -1346,13 +1481,16 @@ static void _edit_view_update_slot_access_info(int pos)
        slot = elm_object_part_content_get(g_info->edit_layout, part_name);
        ret_if(!slot);
 
-       if (!IS_STRING_EMPTY(g_info->appid_list[pos]) && strcmp(g_info->appid_list[pos], "empty")) {
+       if (!IS_STRING_EMPTY(g_info->appid_list[pos]) &&
+                       strcmp(g_info->appid_list[pos], "empty")) {
                label = elm_object_part_text_get(slot, "name");
        } else {
                label = _("WDS_ACCS_TBOPT_EMPTY");
        }
-       snprintf(access_name, sizeof(access_name), "%s, %s.", _(_edit_view_get_slot_position_text(pos)), label);
-       elm_atspi_accessible_name_set(elm_object_part_content_get(slot, "icon"), access_name);
+       snprintf(access_name, sizeof(access_name), "%s, %s.",
+                       _(_edit_view_get_slot_position_text(pos)), label);
+       elm_atspi_accessible_name_set(
+                       elm_object_part_content_get(slot, "icon"), access_name);
 }
 
 static void _edit_view_update_app_slot(const char *app_id, int slot_id)
@@ -1397,7 +1535,8 @@ static void _gl_add_apps_items(Evas_Object *gl, Eina_List *app_list)
        Eina_List *n = NULL;
 
        EINA_LIST_FOREACH_SAFE(item_info_list, l, n, item_info) {
-               item_info->gl_item = elm_genlist_item_append(gl, _get_gl_itc_content(), item_info, NULL,
+               item_info->gl_item = elm_genlist_item_append(gl, _get_gl_itc_content(),
+                               item_info, NULL,
                                ELM_GENLIST_ITEM_NONE, _gl_item_clicked_cb, item_info);
                if (!item_info->gl_item) {
                        _E("Failed to append genlist item");
@@ -1407,7 +1546,8 @@ static void _gl_add_apps_items(Evas_Object *gl, Eina_List *app_list)
 
 static void _gl_add_empty_item(Evas_Object *gl)
 {
-       Elm_Object_Item *item = elm_genlist_item_append(gl, _get_gl_itc_empty(), NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       Elm_Object_Item *item = elm_genlist_item_append(gl, _get_gl_itc_empty(),
+                       NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
        /* Accessibility */
        elm_atspi_accessible_can_highlight_set(item, EINA_FALSE);
 }
@@ -1591,7 +1731,8 @@ static void _select_view_process_rotary_counter_clockwise_event(appdata_s *app)
        }
 }
 
-static Eina_Bool _select_view_rotary_event_cb(void *data, Evas_Object *obj, Eext_Rotary_Event_Info *info)
+static Eina_Bool _select_view_rotary_event_cb(void *data, Evas_Object *obj,
+               Eext_Rotary_Event_Info *info)
 {
        _ENTER;
        retv_if(!data, EINA_FALSE);
@@ -1607,13 +1748,14 @@ static Eina_Bool _select_view_rotary_event_cb(void *data, Evas_Object *obj, Eext
 
 static Evas_Object *_select_view_create_main_ly(appdata_s *info)
 {
-       Evas_Object *eo = elm_layout_add(info->naviframe);
+       Evas_Object *eo = elm_layout_add(info->navi);
        retv_if(!eo, NULL);
        elm_layout_theme_set(eo, "layout", "bottom_button", "default");
        evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_show(eo);
 
-       if (!eext_rotary_object_event_callback_add(eo, _select_view_rotary_event_cb, info)) {
+       if (!eext_rotary_object_event_callback_add(eo,
+                       _select_view_rotary_event_cb, info)) {
                _E("Rotaty object event callback add failed");
        }
 
@@ -1626,7 +1768,8 @@ static void _bottom_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
        _terminate_add_to_shortcut();
 }
 
-static void _select_view_bottom_btn_highlight_cb(void *data, Evas_Object *obj, void *event_info)
+static void _select_view_bottom_btn_highlight_cb(void *data,
+               Evas_Object *obj, void *event_info)
 {
        _ENTER;
        appdata_s *info = data;
@@ -1635,7 +1778,8 @@ static void _select_view_bottom_btn_highlight_cb(void *data, Evas_Object *obj, v
        info->sv_cur_highlighted_obj = obj;
 }
 
-static void _select_view_bottom_btn_unhighlight_cb(void *data, Evas_Object *obj, void *event_info)
+static void _select_view_bottom_btn_unhighlight_cb(void *data,
+               Evas_Object *obj, void *event_info)
 {
        _ENTER;
        appdata_s *info = data;
@@ -1644,7 +1788,8 @@ static void _select_view_bottom_btn_unhighlight_cb(void *data, Evas_Object *obj,
        info->sv_cur_highlighted_obj = NULL;
 }
 
-static Evas_Object *_select_view_create_bottom_btn(Evas_Object *parent, appdata_s *info)
+static Evas_Object *_select_view_create_bottom_btn(Evas_Object *parent,
+               appdata_s *info)
 {
        Evas_Object *eo = elm_button_add(parent);
        retv_if(!eo, NULL);
@@ -1661,7 +1806,8 @@ static Evas_Object *_select_view_create_bottom_btn(Evas_Object *parent, appdata_
        return eo;
 }
 
-static Evas_Object *_select_view_create_genlist_ly(Evas_Object *parent, appdata_s *info)
+static Evas_Object *_select_view_create_genlist_ly(Evas_Object *parent,
+               appdata_s *info)
 {
        Evas_Object *eo = elm_layout_add(parent);
        retv_if(!eo, NULL);
@@ -1674,7 +1820,8 @@ static Evas_Object *_select_view_create_genlist_ly(Evas_Object *parent, appdata_
        return eo;
 }
 
-static Evas_Object *_select_view_create_multi_pick_genlist(Evas_Object *parent, appdata_s *info)
+static Evas_Object *_select_view_create_multi_pick_genlist(Evas_Object *parent,
+               appdata_s *info)
 {
        Evas_Object *eo = _select_view_create_simple_genlist(parent, info);
        retv_if(!eo, NULL);
@@ -1683,7 +1830,8 @@ static Evas_Object *_select_view_create_multi_pick_genlist(Evas_Object *parent,
        return eo;
 }
 
-static Evas_Object *_select_view_create_select_count_btn(Evas_Object *parent, appdata_s *info)
+static Evas_Object *_select_view_create_select_count_btn(Evas_Object *parent,
+               appdata_s *info)
 {
        char buf[ATW_BUF_SIZE_SMALL] = { 0 };
 
@@ -1698,7 +1846,9 @@ static Evas_Object *_select_view_create_select_count_btn(Evas_Object *parent, ap
        return eo;
 }
 
-static Eina_Bool _ao_sv_counter_action_cb(void *data, Evas_Object *obj, Elm_Access_Action_Info *action_info)
+static Eina_Bool _ao_sv_counter_action_cb(void *data,
+               Evas_Object *obj,
+               Elm_Access_Action_Info *action_info)
 {
        retv_if(!data, EINA_FALSE);
 
@@ -1721,10 +1871,13 @@ static void _select_view_register_counter_ao(appdata_s *info)
 
        elm_atspi_accessible_translation_domain_set(ao, ATW_DOMAIN);
        elm_atspi_accessible_role_set(ao, ELM_ATSPI_ROLE_TEXT);
-       elm_atspi_accessible_reading_info_type_set(ao, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
+       elm_atspi_accessible_reading_info_type_set(ao,
+                       ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
 
-       elm_access_action_cb_set(ao, ELM_ACCESS_ACTION_HIGHLIGHT, _ao_sv_counter_action_cb, info);
-       elm_access_action_cb_set(ao, ELM_ACCESS_ACTION_UNHIGHLIGHT, _ao_sv_counter_action_cb, info);
+       elm_access_action_cb_set(ao, ELM_ACCESS_ACTION_HIGHLIGHT,
+                       _ao_sv_counter_action_cb, info);
+       elm_access_action_cb_set(ao, ELM_ACCESS_ACTION_UNHIGHLIGHT,
+                       _ao_sv_counter_action_cb, info);
 
        info->ao_sv_counter = ao;
 
@@ -1742,12 +1895,14 @@ static void _select_view_register_custom_accessibility_rout(appdata_s *info)
        }
 
        if (info->ao_sv_counter) {
-               apptray_wgt_app_au_append_symmetric_relationship(cur_ao, info->ao_sv_counter);
+               apptray_wgt_app_au_append_symmetric_relationship(cur_ao,
+                               info->ao_sv_counter);
                cur_ao = info->ao_sv_counter;
        }
 
        if (info->select_bottom_btn) {
-               apptray_wgt_app_au_append_symmetric_relationship(cur_ao, info->select_bottom_btn);
+               apptray_wgt_app_au_append_symmetric_relationship(cur_ao,
+                               info->select_bottom_btn);
                cur_ao = info->select_bottom_btn;
        }
 
@@ -1777,32 +1932,37 @@ static Evas_Object *_create_select_view(appdata_s *info)
                if (info->launch_type == APPTRAY_WGT_APP_LAUNCH_TYPE_PICK) {
                        Evas_Object *genlist_layout = NULL;
 
-                       info->select_bottom_btn = _select_view_create_bottom_btn(info->select_layout, info);
+                       info->select_bottom_btn = _select_view_create_bottom_btn(
+                                       info->select_layout, info);
                        if (!info->select_bottom_btn) {
                                DEL_EVAS_OBJECT(info->select_layout);
                                return NULL;
                        }
 
-                       genlist_layout = _select_view_create_genlist_ly(info->select_layout, info);
+                       genlist_layout = _select_view_create_genlist_ly(
+                                       info->select_layout, info);
                        if (!genlist_layout) {
                                DEL_EVAS_OBJECT(info->select_layout);
                                return NULL;
                        }
 
-                       info->select_gl = _select_view_create_multi_pick_genlist(genlist_layout, info);
+                       info->select_gl = _select_view_create_multi_pick_genlist(
+                                       genlist_layout, info);
                        if (!info->select_gl) {
                                DEL_EVAS_OBJECT(info->select_layout);
                                return NULL;
                        }
 
-                       info->select_count_btn = _select_view_create_select_count_btn(genlist_layout, info);
+                       info->select_count_btn = _select_view_create_select_count_btn(
+                                       genlist_layout, info);
                        if (!info->select_count_btn) {
                                DEL_EVAS_OBJECT(info->select_layout);
                                return NULL;
                        }
 
                } else {
-                       info->select_gl = _select_view_create_simple_genlist(info->select_layout, info);
+                       info->select_gl = _select_view_create_simple_genlist(
+                                       info->select_layout, info);
                        retv_if(!info->select_gl, NULL);
                }
                _select_view_set_genlist_content(info->select_gl, info);
@@ -1865,10 +2025,14 @@ static Eina_List *_read_all_apps_on_device(Eina_List **list)
        app_info_filter_h filter = NULL;
 
        retv_if(app_info_filter_create(&filter) != APP_MANAGER_ERROR_NONE, NULL);
-       goto_if(app_info_filter_add_bool(filter, PACKAGE_INFO_PROP_APP_NODISPLAY, false) != APP_MANAGER_ERROR_NONE, ERROR);
-       goto_if(app_info_filter_foreach_appinfo(filter, _apps_all_cb, list) != APP_MANAGER_ERROR_NONE, ERROR);
+       goto_if(app_info_filter_add_bool(filter,
+                       PACKAGE_INFO_PROP_APP_NODISPLAY, false) !=
+                                       APP_MANAGER_ERROR_NONE, ERROR);
+       goto_if(app_info_filter_foreach_appinfo(filter, _apps_all_cb, list) !=
+                       APP_MANAGER_ERROR_NONE, ERROR);
        *list = eina_list_sort(*list, eina_list_count(*list), _apps_sort_cb);
-       *list = eina_list_prepend(*list, apptray_wgt_app_item_info_create(ATW_APPS_PKG));
+       *list = eina_list_prepend(*list,
+                       apptray_wgt_app_item_info_create(ATW_APPS_PKG));
 ERROR:
        if (filter)
                app_info_filter_destroy(filter);
@@ -1927,7 +2091,8 @@ static bool _edit_view_init_slots(const char *app_list)
        }
 
        for (i = 0 ; i < ATW_APP_SLOTS_MAX_COUNT ; i++) {
-               _set_app_slot(app_list_array[i], _input_slot_conv[app_count].slot_seq_arr[i]);
+               _set_app_slot(app_list_array[i],
+                               _input_slot_conv[app_count].slot_seq_arr[i]);
                free(app_list_array[i]);
        }
        free(content);
@@ -1964,15 +2129,17 @@ static bool _show_view(appdata_s *info, _apptray_wgt_view_type_e view_type)
        switch (view_type) {
        case APPTRAY_WGT_APP_VIEW_EDIT:
                if (info->edit_view_navi_item) {
-                       elm_naviframe_content_preserve_on_pop_set(info->naviframe, EINA_TRUE);
+                       elm_naviframe_content_preserve_on_pop_set(info->navi,
+                                       EINA_TRUE);
                        elm_naviframe_item_pop_to(info->edit_view_navi_item);
                        info->select_view_navi_item = NULL;
                } else {
                        view_content = _create_edit_view(info);
                        retv_if(!view_content, false);
 
-                       push_without_transition = _check_naviframe_is_empty(info->naviframe);
-                       info->edit_view_navi_item = elm_naviframe_item_push(info->naviframe,
+                       push_without_transition = _check_naviframe_is_empty(
+                                       info->navi);
+                       info->edit_view_navi_item = elm_naviframe_item_push(info->navi,
                                        NULL, NULL, NULL, view_content, "empty");
                        retv_if(!info->edit_view_navi_item, false);
                }
@@ -1981,8 +2148,8 @@ static bool _show_view(appdata_s *info, _apptray_wgt_view_type_e view_type)
                view_content = _create_select_view(info);
                retv_if(!view_content, false);
 
-               push_without_transition = _check_naviframe_is_empty(info->naviframe);
-               info->select_view_navi_item = elm_naviframe_item_push(info->naviframe,
+               push_without_transition = _check_naviframe_is_empty(info->navi);
+               info->select_view_navi_item = elm_naviframe_item_push(info->navi,
                                NULL, NULL, NULL, view_content, "empty");
                retv_if(!info->select_view_navi_item, false);
                break;
@@ -2036,16 +2203,17 @@ static void _process_navi_item_transition_finish(appdata_s *info)
 {
        _ENTER;
 
-       Elm_Object_Item *top_item = elm_naviframe_top_item_get(info->naviframe);
+       Elm_Object_Item *top_item = elm_naviframe_top_item_get(info->navi);
        if (top_item == info->edit_view_navi_item) {
                _activate_view_rotary_state(info, APPTRAY_WGT_APP_VIEW_EDIT);
        } else if (top_item == info->select_view_navi_item) {
                _activate_view_rotary_state(info, APPTRAY_WGT_APP_VIEW_SELECT);
        }
-       elm_naviframe_content_preserve_on_pop_set(info->naviframe, EINA_FALSE);
+       elm_naviframe_content_preserve_on_pop_set(info->navi, EINA_FALSE);
 }
 
-static void _naviframe_transition_finished_cb(void *data, Evas_Object *obj, void *event_info)
+static void _naviframe_transition_finished_cb(void *data, Evas_Object *obj,
+               void *event_info)
 {
        _ENTER;
 
@@ -2070,36 +2238,39 @@ static Evas_Object *_create_naviframe(Evas_Object *parent, appdata_s *info)
 }
 
 
-static bool _create_main_ui_components(appdata_s *info, const char *name, const char *title)
+static bool _create_main_ui_components(appdata_s *info,
+               const char *name,
+               const char *title)
 {
        info->win = _create_win(info, name, title);
        retv_if(!info->win, false);
 
-       info->conformant = _create_conformant(info->win);
-       retv_if(!info->conformant, false);
+       info->conf = _create_conformant(info->win);
+       retv_if(!info->conf, false);
 
-       info->circle_surface = eext_circle_surface_conformant_add(info->conformant);
-       retv_if(!info->circle_surface, false);
+       info->circle_surf = eext_circle_surface_conformant_add(info->conf);
+       retv_if(!info->circle_surf, false);
 
-       info->naviframe = _create_naviframe(info->win, info);
-       retv_if(!info->naviframe, false);
+       info->navi = _create_naviframe(info->win, info);
+       retv_if(!info->navi, false);
 
-       elm_object_content_set(info->conformant, info->naviframe);
+       elm_object_content_set(info->conf, info->navi);
 
        return true;
 }
 
-static apptray_wgt_app_key_cb_ret_e _key_release_cb(void *data)
+static bool _key_release_cb(void *data)
 {
        appdata_s *info = data;
        retv_if(!info, false);
 
        if (info->toast_popup) {
-               return APPTRAY_WGT_APP_KEY_CB_RET_STOP;
+               return true;
        }
 
-       if (elm_naviframe_top_item_get(info->naviframe) == info->select_view_navi_item
-                       && info->launch_type != APPTRAY_WGT_APP_LAUNCH_TYPE_PICK) {
+       if (elm_naviframe_top_item_get(info->navi) ==
+                       info->select_view_navi_item &&
+                       info->launch_type != APPTRAY_WGT_APP_LAUNCH_TYPE_PICK) {
                _show_view(g_info, APPTRAY_WGT_APP_VIEW_EDIT);
        } else {
                if (info->launch_type == APPTRAY_WGT_APP_LAUNCH_TYPE_PICK) {
@@ -2108,7 +2279,7 @@ static apptray_wgt_app_key_cb_ret_e _key_release_cb(void *data)
                _terminate_add_to_shortcut();
        }
 
-       return APPTRAY_WGT_APP_KEY_CB_RET_STOP;
+       return true;
 }
 
 static void _update_win_title(Evas_Object *win, const char *title)
@@ -2136,9 +2307,11 @@ static bool _app_create(void *data)
 
        feedback_initialize();
 
-       apptray_wgt_app_key_register();
-       apptray_wgt_app_key_register_cb(APPTRAY_WGT_APP_KEY_TYPE_BACK, _key_release_cb, info);
-       apptray_wgt_app_key_register_cb(APPTRAY_WGT_APP_KEY_TYPE_POWER, _key_release_cb, info);
+       apptray_wgt_app_key_event_provider_init();
+       apptray_wgt_app_key_event_provider_add_handler(
+                       APPTRAY_WGT_APP_KEY_TYPE_BACK, _key_release_cb, info);
+       apptray_wgt_app_key_event_provider_add_handler(
+                       APPTRAY_WGT_APP_KEY_TYPE_POWER, _key_release_cb, info);
 
        elm_theme_extension_add(NULL, ATW_EDJE_PATH);
 
@@ -2151,9 +2324,11 @@ static void _app_terminate(void *data)
 
        int i;
 
-       apptray_wgt_app_key_unregister_cb(APPTRAY_WGT_APP_KEY_TYPE_BACK, _key_release_cb);
-       apptray_wgt_app_key_unregister_cb(APPTRAY_WGT_APP_KEY_TYPE_POWER, _key_release_cb);
-       apptray_wgt_app_key_unregister();
+       apptray_wgt_app_key_event_provider_del_handler(
+                       APPTRAY_WGT_APP_KEY_TYPE_BACK, _key_release_cb);
+       apptray_wgt_app_key_event_provider_del_handler(
+                       APPTRAY_WGT_APP_KEY_TYPE_POWER, _key_release_cb);
+       apptray_wgt_app_key_event_provider_deinit();
 
        DEL_ECORE_TIMER(longpress_timer);
        DEL_ECORE_TIMER(click_blocker_timer);
@@ -2200,7 +2375,8 @@ static void _app_control(app_control_h service, void *data)
 
        app_control_get_extra_data(service, "content_info", &content_val);
        if (content_val) {
-               bundle *tmp_b = bundle_decode((const bundle_raw *)content_val, strlen(content_val));
+               bundle *tmp_b = bundle_decode((const bundle_raw *)content_val,
+                               strlen(content_val));
                if (tmp_b) {
                        bundle_get_str(tmp_b, ATW_BUNDLE_KEY_WIDGET_INSTANCE_ID, &tmp);
                        _D("Widget instance id [%s]", tmp);
@@ -2280,7 +2456,8 @@ static void _edit_view_update_slots_apps_label(appdata_s *ad)
        int i;
 
        for (i = 0; i < ATW_APP_SLOTS_MAX_COUNT; i++) {
-               if (!IS_STRING_EMPTY(ad->appid_list[i]) && strcmp(ad->appid_list[i], "empty")) {
+               if (!IS_STRING_EMPTY(ad->appid_list[i]) && strcmp(ad->appid_list[i],
+                               "empty")) {
                        ret = 0;
                        app_info = NULL;
                        label = NULL;
@@ -2297,7 +2474,8 @@ static void _edit_view_update_slots_apps_label(appdata_s *ad)
                        } else {
                                char buff[ATW_BUF_SIZE_SMALL] = { 0 };
                                snprintf(buff, sizeof(buff), "index%d", i+1);
-                               Evas_Object *eo = elm_object_part_content_get(ad->edit_layout, buff);
+                               Evas_Object *eo = elm_object_part_content_get(ad->edit_layout,
+                                               buff);
                                if (eo) {
                                        elm_object_part_text_set(eo, "name", label);
                                }
@@ -2314,7 +2492,8 @@ static void _app_lang_changed(app_event_info_h event_info, void *user_data)
        appdata_s *info = user_data;
        char *locale = NULL;
 
-       system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+       system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE,
+                       &locale);
        elm_language_set(locale);
        free(locale);
 
@@ -2333,8 +2512,6 @@ static void _app_lang_changed(app_event_info_h event_info, void *user_data)
 
 int main(int argc, char *argv[])
 {
-       _ENTER;
-
        appdata_s ad = { 0 };
        int ret = 0;
 
@@ -2347,7 +2524,8 @@ int main(int argc, char *argv[])
        lcc.resume = _app_resume;
        lcc.app_control = _app_control;
 
-       ui_app_add_event_handler(&handlers[0], APP_EVENT_LANGUAGE_CHANGED, _app_lang_changed, &ad);
+       ui_app_add_event_handler(&handlers[0], APP_EVENT_LANGUAGE_CHANGED,
+                       _app_lang_changed, &ad);
 
        ret = ui_app_main(argc, argv, &lcc, &ad);
        if (ret != APP_ERROR_NONE) {
index 8e8fd7b8f18106cc648716ddd79ab0c43513bd4e..b518c852328dad5885185e4bebf5af99d4615c20 100644 (file)
 
 #include "apptray_wgt_app_log.h"
 
-static bool _append_symmetric_relationship(Evas_Object *from, Evas_Object *to);
-static void _remove_symmetric_relationship(Evas_Object *from, Evas_Object *to);
-static Evas_Object *_register_access_object(Evas_Object *parent, Evas_Object *ly, const char *ly_part);
-
-static Evas_Object *_register_access_object(Evas_Object *parent, Evas_Object *ly, const char *ly_part)
+static bool _append_symmetric_relationship(Evas_Object *from,
+               Evas_Object *to);
+static void _remove_symmetric_relationship(Evas_Object *from,
+               Evas_Object *to);
+static Evas_Object *_register_access_object(Evas_Object *parent,
+               Evas_Object *ly, const char *ly_part);
+
+static Evas_Object *_register_access_object(Evas_Object *parent,
+               Evas_Object *ly, const char *ly_part)
 {
-       Evas_Object *po = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(ly), ly_part);
+       Evas_Object *po = (Evas_Object *)edje_object_part_object_get(
+                       elm_layout_edje_get(ly), ly_part);
        retv_if(!po, NULL);
        Evas_Object *ao = elm_access_object_register(po, parent);
        retv_if(!ao, NULL);
@@ -32,7 +37,8 @@ static Evas_Object *_register_access_object(Evas_Object *parent, Evas_Object *ly
        return ao;
 }
 
-Evas_Object *apptray_wgt_app_au_register_access_object(Evas_Object *parent, Evas_Object *ly, const char *ly_part)
+Evas_Object *apptray_wgt_app_au_register_access_object(Evas_Object *parent,
+               Evas_Object *ly, const char *ly_part)
 {
        retv_if(!parent, NULL);
        retv_if(!ly, NULL);
@@ -48,7 +54,8 @@ void apptray_wgt_app_au_unregister_access_object(Evas_Object *obj)
        elm_access_object_unregister(obj);
 }
 
-Evas_Object *apptray_wgt_app_au_register_fake_access_object(Evas_Object *parent, Evas_Object *ly, const char *ly_part)
+Evas_Object *apptray_wgt_app_au_register_fake_access_object(
+               Evas_Object *parent, Evas_Object *ly, const char *ly_part)
 {
        retv_if(!parent, NULL);
        retv_if(!ly, NULL);
@@ -58,7 +65,8 @@ Evas_Object *apptray_wgt_app_au_register_fake_access_object(Evas_Object *parent,
        retv_if(!ao, NULL);
        elm_atspi_accessible_can_highlight_set(ao, EINA_FALSE);
        elm_atspi_accessible_role_set(ao, ELM_ATSPI_ROLE_TEXT);
-       elm_atspi_accessible_reading_info_type_set(ao, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
+       elm_atspi_accessible_reading_info_type_set(ao,
+                       ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
        elm_atspi_accessible_name_set(ao, "");
 
        return ao;
@@ -66,17 +74,21 @@ Evas_Object *apptray_wgt_app_au_register_fake_access_object(Evas_Object *parent,
 
 static bool _append_symmetric_relationship(Evas_Object *from, Evas_Object *to)
 {
-       Eina_Bool res = elm_atspi_accessible_relationship_append(from, ELM_ATSPI_RELATION_FLOWS_TO, to);
+       Eina_Bool res = elm_atspi_accessible_relationship_append(from,
+                       ELM_ATSPI_RELATION_FLOWS_TO, to);
        retv_if(!res, false);
-       res = elm_atspi_accessible_relationship_append(to, ELM_ATSPI_RELATION_FLOWS_FROM, from);
+       res = elm_atspi_accessible_relationship_append(to,
+                       ELM_ATSPI_RELATION_FLOWS_FROM, from);
        if (!res) {
-               elm_atspi_accessible_relationship_remove(from, ELM_ATSPI_RELATION_FLOWS_TO, to);
+               elm_atspi_accessible_relationship_remove(from,
+                               ELM_ATSPI_RELATION_FLOWS_TO, to);
                return false;
        }
        return true;
 }
 
-bool apptray_wgt_app_au_append_symmetric_relationship(Evas_Object *from, Evas_Object *to)
+bool apptray_wgt_app_au_append_symmetric_relationship(Evas_Object *from,
+               Evas_Object *to)
 {
        retv_if(!from, false);
        retv_if(!to, false);
@@ -86,11 +98,14 @@ bool apptray_wgt_app_au_append_symmetric_relationship(Evas_Object *from, Evas_Ob
 
 static void _remove_symmetric_relationship(Evas_Object *from, Evas_Object *to)
 {
-       elm_atspi_accessible_relationship_remove(from, ELM_ATSPI_RELATION_FLOWS_TO, to);
-       elm_atspi_accessible_relationship_remove(to, ELM_ATSPI_RELATION_FLOWS_FROM, from);
+       elm_atspi_accessible_relationship_remove(from,
+                       ELM_ATSPI_RELATION_FLOWS_TO, to);
+       elm_atspi_accessible_relationship_remove(to,
+                       ELM_ATSPI_RELATION_FLOWS_FROM, from);
 }
 
-void apptray_wgt_app_au_remove_symmetric_relationship(Evas_Object *from, Evas_Object *to)
+void apptray_wgt_app_au_remove_symmetric_relationship(Evas_Object *from,
+               Evas_Object *to)
 {
        ret_if(!from);
        ret_if(!to);
@@ -102,7 +117,8 @@ bool apptray_wgt_app_au_append_relationship_end_point(Evas_Object *obj)
 {
        retv_if(!obj, false);
 
-       retv_if(!elm_atspi_accessible_relationship_append(obj, ELM_ATSPI_RELATION_FLOWS_TO, obj), false);
+       retv_if(!elm_atspi_accessible_relationship_append(obj,
+                       ELM_ATSPI_RELATION_FLOWS_TO, obj), false);
        return true;
 }
 
@@ -110,14 +126,16 @@ void apptray_wgt_app_au_remove_relationship_end_point(Evas_Object *obj)
 {
        ret_if(!obj);
 
-       elm_atspi_accessible_relationship_remove(obj, ELM_ATSPI_RELATION_FLOWS_TO, obj);
+       elm_atspi_accessible_relationship_remove(obj,
+                       ELM_ATSPI_RELATION_FLOWS_TO, obj);
 }
 
 bool apptray_wgt_app_au_append_relationship_start_point(Evas_Object *obj)
 {
        retv_if(!obj, false);
 
-       retv_if(!elm_atspi_accessible_relationship_append(obj, ELM_ATSPI_RELATION_FLOWS_FROM, obj), false);
+       retv_if(!elm_atspi_accessible_relationship_append(obj,
+                       ELM_ATSPI_RELATION_FLOWS_FROM, obj), false);
        return true;
 }
 
@@ -125,6 +143,7 @@ void apptray_wgt_app_au_remove_relationship_start_point(Evas_Object *obj)
 {
        ret_if(!obj);
 
-       elm_atspi_accessible_relationship_remove(obj, ELM_ATSPI_RELATION_FLOWS_FROM, obj);
+       elm_atspi_accessible_relationship_remove(obj,
+                       ELM_ATSPI_RELATION_FLOWS_FROM, obj);
 }
 
index 377c9a4cf86ba6863446b998a30472ea1c6ffcaa..9a9699e6f7cfbe1a4bf4e8a744f5b6236d970bb8 100644 (file)
@@ -22,6 +22,7 @@
 #include <app_manager.h>
 
 #include "apptray_wgt_app_common_def.h"
+#include "apptray_wgt_app_utils.h"
 #include "apptray_wgt_app_log.h"
 
 apptray_wgt_app_item_info_s *apptray_wgt_app_item_info_create(const char *appid)
@@ -35,7 +36,6 @@ apptray_wgt_app_item_info_s *apptray_wgt_app_item_info_create(const char *appid)
        char *icon = NULL;
        bool nodisplay = false;
        bool enabled = false;
-       bool removable = false;
 
        retv_if(!appid, NULL);
 
@@ -48,17 +48,22 @@ apptray_wgt_app_item_info_s *apptray_wgt_app_item_info_create(const char *appid)
        _D("AppTrayError Error = %d, AppID=%s", error, appid);
        goto_if(error != APP_MANAGER_ERROR_NONE, ERROR);
 
-       goto_if(app_info_get_package(appinfo_h, &pkgid) != APP_MANAGER_ERROR_NONE, ERROR);
-       goto_if(app_info_get_label(appinfo_h, &name) != APP_MANAGER_ERROR_NONE, ERROR);
-       goto_if(app_info_get_icon(appinfo_h, &icon) != APP_MANAGER_ERROR_NONE, ERROR);
+       goto_if(app_info_get_package(appinfo_h, &pkgid) !=
+                       APP_MANAGER_ERROR_NONE, ERROR);
+       goto_if(app_info_get_label(appinfo_h, &name) !=
+                       APP_MANAGER_ERROR_NONE, ERROR);
+       goto_if(app_info_get_icon(appinfo_h, &icon) !=
+                       APP_MANAGER_ERROR_NONE, ERROR);
        _D("name:%s, icon:%s", name, icon);
 
        if (strncmp(appid, ATW_APPS_PKG, strlen(ATW_APPS_PKG))) {
-               goto_if(app_info_is_nodisplay(appinfo_h, &nodisplay) != APP_MANAGER_ERROR_NONE, ERROR);
+               goto_if(app_info_is_nodisplay(appinfo_h, &nodisplay) !=
+                               APP_MANAGER_ERROR_NONE, ERROR);
                if (nodisplay) {
                        goto ERROR;
                }
-               goto_if(app_info_is_enabled(appinfo_h, &enabled) != APP_MANAGER_ERROR_NONE, ERROR);
+               goto_if(app_info_is_enabled(appinfo_h, &enabled) !=
+                               APP_MANAGER_ERROR_NONE, ERROR);
                if (!enabled) {
                        goto ERROR;
                }
@@ -74,10 +79,8 @@ apptray_wgt_app_item_info_s *apptray_wgt_app_item_info_create(const char *appid)
 
        if (name) {
                if (!strncmp(appid, ATW_APPS_PKG, strlen(ATW_APPS_PKG))) {
-                       /* TODO: Need translation */
                        item_info->name = strdup(_("WDS_WNOTI_HEADER_APPS"));
-               }
-               else{
+               } else {
                        item_info->name = strdup(name);
                }
                goto_if(NULL == item_info->name, ERROR);
@@ -94,9 +97,6 @@ apptray_wgt_app_item_info_s *apptray_wgt_app_item_info_create(const char *appid)
        }
        goto_if(NULL == item_info->icon, ERROR);
 
-
-       item_info->removable = removable;
-
        free(pkgid);
        free(name);
        free(icon);
diff --git a/apptray-widget-app/src/apptray_wgt_app_key.c b/apptray-widget-app/src/apptray_wgt_app_key.c
deleted file mode 100755 (executable)
index 90ee709..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * 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 "apptray_wgt_app_key.h"
-
-#include <Elementary.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <bundle.h>
-
-#include "apptray_wgt_app_log.h"
-#include "apptray_wgt_app_utils.h"
-
-#define ATW_HOME_KEY_ESC "XF86PowerOff"
-#define ATW_CALLBACK_LIST_MAX 2
-
-static struct {
-       Eina_Bool pressed;
-       Ecore_Event_Handler *press_handler;
-       Ecore_Event_Handler *release_handler;
-
-       Eina_Bool register_handler;
-       Eina_Bool home_grabbed;
-       Eina_List *cbs_list[ATW_CALLBACK_LIST_MAX];
-} key_info = {
-       .pressed = 0,
-       .press_handler = NULL,
-       .release_handler = NULL,
-
-       .register_handler = EINA_FALSE,
-       .home_grabbed = EINA_FALSE,
-       .cbs_list = { NULL },
-};
-
-typedef struct {
-       apptray_wgt_app_key_cb_ret_e (*result_cb)(void *);
-       void *result_data;
-} key_cb_s;
-
-bool apptray_wgt_app_key_register_cb(apptray_wgt_app_key_type_e type, apptray_wgt_app_key_result_cb result_cb, void *result_data)
-{
-       key_cb_s *cb = NULL;
-
-       retv_if(!result_cb, false);
-
-       cb = calloc(1, sizeof(key_cb_s));
-       retv_if(!cb, false);
-
-       cb->result_cb = result_cb;
-       cb->result_data = result_data;
-
-       key_info.cbs_list[type] = eina_list_prepend(key_info.cbs_list[type], cb);
-       if (!key_info.cbs_list[type]) {
-               free(cb);
-               _E("eina_list_prepend failed");
-               return false;
-       }
-       return true;
-}
-
-void apptray_wgt_app_key_unregister_cb(apptray_wgt_app_key_type_e type, apptray_wgt_app_key_result_cb result_cb)
-{
-       const Eina_List *l;
-       const Eina_List *n;
-       key_cb_s *cb;
-       EINA_LIST_FOREACH_SAFE(key_info.cbs_list[type], l, n, cb) {
-               continue_if(NULL == cb);
-               if (result_cb != cb->result_cb) continue;
-               key_info.cbs_list[type] = eina_list_remove(key_info.cbs_list[type], cb);
-               free(cb);
-               return;
-       }
-}
-
-static void _execute_cbs(int type)
-{
-       const Eina_List *l;
-       const Eina_List *n;
-       key_cb_s *cb;
-       EINA_LIST_FOREACH_SAFE(key_info.cbs_list[type], l, n, cb) {
-               continue_if(NULL == cb);
-               continue_if(NULL == cb->result_cb);
-               if (APPTRAY_WGT_APP_KEY_CB_RET_STOP == cb->result_cb(cb->result_data)) {
-                       _W("back key execution has been stopped");
-                       break;
-               }
-       }
-}
-
-static Eina_Bool _key_release_cb(void *data, int type, void *event)
-{
-       Evas_Event_Key_Up *ev = event;
-
-       retv_if(EINA_FALSE == key_info.register_handler, ECORE_CALLBACK_PASS_ON);
-       retv_if(NULL == ev, ECORE_CALLBACK_PASS_ON);
-
-       _D("Key(%s) released %d", ev->keyname, key_info.pressed);
-
-       if (key_info.pressed == EINA_FALSE) {
-               return ECORE_CALLBACK_PASS_ON;
-       }
-
-       if (!strcmp(ev->keyname, "XF86Back" )) {
-               _execute_cbs(APPTRAY_WGT_APP_KEY_TYPE_BACK);
-       }
-
-       if (!strcmp(ev->keyname, "XF86PowerOff" )) {
-               _execute_cbs(APPTRAY_WGT_APP_KEY_TYPE_POWER);
-       }
-
-       key_info.pressed = EINA_FALSE;
-
-       return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool _key_press_cb(void *data, int type, void *event)
-{
-       Evas_Event_Key_Down *ev = event;
-
-       retv_if(EINA_FALSE == key_info.register_handler, ECORE_CALLBACK_PASS_ON);
-       retv_if(NULL == ev, ECORE_CALLBACK_PASS_ON);
-
-       key_info.pressed = EINA_TRUE;
-       _D("Key pressed %d", key_info.pressed);
-
-       return ECORE_CALLBACK_PASS_ON;
-}
-
-void apptray_wgt_app_key_register(void)
-{
-       if (!key_info.release_handler) {
-               key_info.release_handler = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_release_cb, NULL);
-               if (!key_info.release_handler) {
-                       _E("Failed to register a key up event handler");
-               }
-       }
-
-       if (!key_info.press_handler) {
-               key_info.press_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _key_press_cb, NULL);
-               if (!key_info.press_handler) {
-                       _E("Failed to register a key down event handler");
-               }
-       }
-
-       key_info.pressed = EINA_FALSE;
-       key_info.register_handler = EINA_TRUE;
-}
-
-void apptray_wgt_app_key_unregister(void)
-{
-       if (key_info.release_handler) {
-               ecore_event_handler_del(key_info.release_handler);
-               key_info.release_handler = NULL;
-       }
-
-       if (key_info.press_handler) {
-               ecore_event_handler_del(key_info.press_handler);
-               key_info.press_handler = NULL;
-       }
-
-       key_info.register_handler = EINA_FALSE;
-}
-
-void apptray_wgt_app_key_cb_execute(int type)
-{
-       _execute_cbs(type);
-}
-
-// End of a file
diff --git a/apptray-widget-app/src/apptray_wgt_app_key_event_provider.c b/apptray-widget-app/src/apptray_wgt_app_key_event_provider.c
new file mode 100755 (executable)
index 0000000..09ce154
--- /dev/null
@@ -0,0 +1,181 @@
+/*
+ * Copyright 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * 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 "apptray_wgt_app_key_event_provider.h"
+
+#include <Elementary.h>
+#include <stdlib.h>
+#include <bundle.h>
+
+#include "apptray_wgt_app_utils.h"
+#include "apptray_wgt_app_log.h"
+
+#define ATW_HOME_KEY_ESC "XF86PowerOff"
+#define ATW_CALLBACK_LIST_MAX 2
+
+static struct {
+       Eina_Bool pressed;
+       Ecore_Event_Handler *press_handler;
+       Ecore_Event_Handler *release_handler;
+
+       Eina_Bool register_handler;
+       Eina_Bool home_grabbed;
+       Eina_List *cbs_list[ATW_CALLBACK_LIST_MAX];
+} key_info = {
+       .pressed = 0,
+       .press_handler = NULL,
+       .release_handler = NULL,
+
+       .register_handler = EINA_FALSE,
+       .home_grabbed = EINA_FALSE,
+       .cbs_list = { NULL },
+};
+
+typedef struct {
+       bool (*result_cb)(void *);
+       void *result_data;
+} key_cb_s;
+
+bool apptray_wgt_app_key_event_provider_add_handler(
+               apptray_wgt_app_key_type_e type,
+               apptray_wgt_app_key_event_cb result_cb,
+               void *result_data)
+{
+       key_cb_s *cb = NULL;
+
+       retv_if(!result_cb, false);
+
+       cb = calloc(1, sizeof(key_cb_s));
+       retv_if(!cb, false);
+
+       cb->result_cb = result_cb;
+       cb->result_data = result_data;
+
+       key_info.cbs_list[type] = eina_list_prepend(key_info.cbs_list[type], cb);
+       if (!key_info.cbs_list[type]) {
+               free(cb);
+               _E("eina_list_prepend failed");
+               return false;
+       }
+       return true;
+}
+
+void apptray_wgt_app_key_event_provider_del_handler(
+               apptray_wgt_app_key_type_e type,
+               apptray_wgt_app_key_event_cb result_cb)
+{
+       const Eina_List *l;
+       const Eina_List *n;
+       key_cb_s *cb;
+       EINA_LIST_FOREACH_SAFE(key_info.cbs_list[type], l, n, cb) {
+               continue_if(NULL == cb);
+               if (result_cb != cb->result_cb) continue;
+               key_info.cbs_list[type] = eina_list_remove(key_info.cbs_list[type], cb);
+               free(cb);
+               return;
+       }
+}
+
+static void _execute_cbs(int type)
+{
+       const Eina_List *l;
+       const Eina_List *n;
+       key_cb_s *cb;
+       EINA_LIST_FOREACH_SAFE(key_info.cbs_list[type], l, n, cb) {
+               continue_if(NULL == cb);
+               continue_if(NULL == cb->result_cb);
+               if (cb->result_cb(cb->result_data)) {
+                       _W("back key execution has been stopped");
+                       break;
+               }
+       }
+}
+
+static Eina_Bool _key_release_cb(void *data, int type, void *event)
+{
+       Evas_Event_Key_Up *ev = event;
+
+       retv_if(EINA_FALSE == key_info.register_handler, ECORE_CALLBACK_PASS_ON);
+       retv_if(NULL == ev, ECORE_CALLBACK_PASS_ON);
+
+       _D("Key(%s) released %d", ev->keyname, key_info.pressed);
+
+       if (key_info.pressed == EINA_FALSE) {
+               return ECORE_CALLBACK_PASS_ON;
+       }
+
+       if (!strcmp(ev->keyname, "XF86Back")) {
+               _execute_cbs(APPTRAY_WGT_APP_KEY_TYPE_BACK);
+       }
+
+       if (!strcmp(ev->keyname, "XF86PowerOff")) {
+               _execute_cbs(APPTRAY_WGT_APP_KEY_TYPE_POWER);
+       }
+
+       key_info.pressed = EINA_FALSE;
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool _key_press_cb(void *data, int type, void *event)
+{
+       Evas_Event_Key_Down *ev = event;
+
+       retv_if(EINA_FALSE == key_info.register_handler, ECORE_CALLBACK_PASS_ON);
+       retv_if(NULL == ev, ECORE_CALLBACK_PASS_ON);
+
+       key_info.pressed = EINA_TRUE;
+       _D("Key pressed %d", key_info.pressed);
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+void apptray_wgt_app_key_event_provider_init(void)
+{
+       if (!key_info.release_handler) {
+               key_info.release_handler = ecore_event_handler_add(ECORE_EVENT_KEY_UP,
+                               _key_release_cb, NULL);
+               if (!key_info.release_handler) {
+                       _E("Failed to register a key up event handler");
+               }
+       }
+
+       if (!key_info.press_handler) {
+               key_info.press_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN,
+                               _key_press_cb, NULL);
+               if (!key_info.press_handler) {
+                       _E("Failed to register a key down event handler");
+               }
+       }
+
+       key_info.pressed = EINA_FALSE;
+       key_info.register_handler = EINA_TRUE;
+}
+
+void apptray_wgt_app_key_event_provider_deinit(void)
+{
+       if (key_info.release_handler) {
+               ecore_event_handler_del(key_info.release_handler);
+               key_info.release_handler = NULL;
+       }
+
+       if (key_info.press_handler) {
+               ecore_event_handler_del(key_info.press_handler);
+               key_info.press_handler = NULL;
+       }
+
+       key_info.register_handler = EINA_FALSE;
+}
index 092728d2b21c7afa93d700fa7f133b002f2c8e24..71cb08d39ee181bd4e1f46dd1ceee0466a6b8c94 100644 (file)
 
 #include "apptray_widget_log.h"
 
-static Evas_Object *_register_access_object(Evas_Object *parent, Evas_Object *ly, const char *ly_part);
+static Evas_Object *_register_access_object(Evas_Object *parent,
+               Evas_Object *ly, const char *ly_part);
 
-static Evas_Object *_register_access_object(Evas_Object *parent, Evas_Object *ly, const char *ly_part)
+static Evas_Object *_register_access_object(Evas_Object *parent,
+               Evas_Object *ly, const char *ly_part)
 {
-       Evas_Object *po = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(ly), ly_part);
+       Evas_Object *po = (Evas_Object *)edje_object_part_object_get(
+                       elm_layout_edje_get(ly), ly_part);
        retv_if(!po, NULL);
        Evas_Object *ao = elm_access_object_register(po, parent);
        retv_if(!ao, NULL);
@@ -30,7 +33,8 @@ static Evas_Object *_register_access_object(Evas_Object *parent, Evas_Object *ly
        return ao;
 }
 
-Evas_Object *apptray_wgt_au_register_access_object(Evas_Object *parent, Evas_Object *ly, const char *ly_part)
+Evas_Object *apptray_wgt_au_register_access_object(Evas_Object *parent,
+               Evas_Object *ly, const char *ly_part)
 {
        retv_if(!parent, NULL);
        retv_if(!ly, NULL);