[PACKAGE UPLOAD] VERSION 0.0.46
authorEunmi Son <eunmi.son@samsung.com>
Tue, 8 Jan 2013 15:04:22 +0000 (00:04 +0900)
committerEunmi Son <eunmi.son@samsung.com>
Tue, 8 Jan 2013 15:04:22 +0000 (00:04 +0900)
Set double tap motion

Change-Id: I4b1860b26372913f795130aab1b85785a5567f99

common/CMakeLists.txt
common/include/mgr-app-common-util.h
common/src/mgr-app-common-util.c
packaging/ug-setting-manage-applications-efl.spec
ug/include/mgr-app-uigadget.h
ug/src/mgr-app-uigadget.c
view/src/mgr-app-view-app-info.c
view/src/mgr-app-view-app-list.c

index 377dad1..7194438 100755 (executable)
@@ -15,8 +15,7 @@ ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs_common REQUIRED elementary dlog glib-2.0 capi-appfw-application 
-evas edje)
+pkg_check_modules(pkgs_common REQUIRED elementary dlog glib-2.0 capi-appfw-application evas edje capi-system-sensor)
 
 FOREACH(flag ${pkgs_common_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
index 9c20411..f8f042b 100755 (executable)
 #define _STRNCAT(DEST, SRC, DEST_SIZE)         _strncat(DEST, SRC, DEST_SIZE, __FILE__, __LINE__)
 #define _STRNCMP(SRC1, SRC2, LEN)              _strncmp(SRC1, SRC2, LEN, __FILE__, __LINE__)
 
+typedef void (*MGR_APP_DOUBLETAP_SENSOR_CB)(void *user_data);
+
 char*  _strncpy(char *dest, const char *src, int len, char *file, int line);
 char*  _strncat(char *dest, const char *src, int dest_size, char *file, int line);
 int            _strncmp(const char *src1, const char *src2, int len, char *file, int line);
 void   _strupr(char *str);
-
+void mgr_app_doubletap_sensor_set_cb(MGR_APP_DOUBLETAP_SENSOR_CB sensor_cb, void *user_data);
+void mgr_app_doubletap_sensor_enable();
+void mgr_app_doubletap_sensor_disable();
+void mgr_app_doubletap_sensor_destroy();
 
 #define MGR_APP_MAX_HEAP_SIZE  5*1024*1024
 #define _EDJ(obj)                              elm_layout_edje_get(obj)
index f9156d2..ab58dea 100755 (executable)
 #include "mgr-app-common-util.h"
 #include "mgr-app-common-debug.h"
 #include <string.h>
+#include <sensors.h>
+
+static sensor_h _dt_handle = NULL;
+static bool _is_sensor_enabled = false;
+static MGR_APP_DOUBLETAP_SENSOR_CB _sensor_cb = NULL;
 
 char *_strncpy(char *dest, const char *src, int len, char *file, int line)
 {
@@ -69,4 +74,84 @@ void _strupr(char *str)
        }
 }
 
+static void _doubletap_sensor_cb(unsigned long long timestamp, void *user_data)
+{
+       MGR_APP_BEGIN();
+
+       if (_sensor_cb) {
+               (_sensor_cb)(user_data);
+       }
+       
+       MGR_APP_END();
+}
+
+void mgr_app_doubletap_sensor_set_cb(MGR_APP_DOUBLETAP_SENSOR_CB sensor_cb, void *user_data)
+{
+       MGR_APP_BEGIN();
+
+       ret_if(NULL == sensor_cb);
 
+       _sensor_cb = sensor_cb;
+       
+       if (NULL == _dt_handle) {
+               if (sensor_create(&_dt_handle)) {
+                       MGR_APP_DEBUG_ERR("FAILED: sensor_create");
+               }
+       }
+
+       if(!sensor_motion_doubletap_set_cb(_dt_handle, _doubletap_sensor_cb, user_data)) {
+               MGR_APP_DEBUG("SUCCESS: sensor_motion_shake_set_cb");
+       } else {
+               MGR_APP_DEBUG_ERR("FAILED: sensor_motion_shake_set_cb");
+       }
+
+       MGR_APP_END();
+}
+
+void mgr_app_doubletap_sensor_enable()
+{
+       MGR_APP_BEGIN();
+
+       ret_if(NULL == _sensor_cb);
+       
+       if (_dt_handle && false == _is_sensor_enabled
+                       && !sensor_start(_dt_handle, SENSOR_MOTION_DOUBLETAP)) {
+               _is_sensor_enabled = true;
+               MGR_APP_DEBUG("SUCCESS: sensor_start");
+       } else {
+               MGR_APP_DEBUG_ERR("FAILED: sensor_start");
+       }
+       
+       MGR_APP_END();
+}
+
+void mgr_app_doubletap_sensor_disable()
+{
+       MGR_APP_BEGIN();
+
+       if (_dt_handle && true == _is_sensor_enabled) {
+               if (!sensor_stop(_dt_handle, SENSOR_MOTION_DOUBLETAP)) {
+                       _is_sensor_enabled = false;
+                       MGR_APP_DEBUG("SUCCESS: sensor_stop");
+               } else {
+                       MGR_APP_DEBUG_ERR("FAILED: sensor_stop");
+               }
+       } 
+
+       MGR_APP_END();
+}
+
+void mgr_app_doubletap_sensor_destroy()
+{
+       MGR_APP_BEGIN();
+
+       sensor_motion_shake_unset_cb(_dt_handle);
+
+       if (_dt_handle) {
+               sensor_destroy(_dt_handle);
+               _dt_handle = NULL;
+       }
+       _is_sensor_enabled = false;
+       
+       MGR_APP_END();
+}
index 70d43d4..67c7135 100644 (file)
@@ -3,7 +3,7 @@
 
 Name:          ug-setting-manage-applications-efl
 Summary:       Manage Application package
-Version:       0.0.455555
+Version:       0.0.46
 Release:       0
 Group:         Applications/System
 License:       Flora Software License
@@ -25,6 +25,7 @@ BuildRequires: pkgconfig(glib-2.0)
 BuildRequires: pkgconfig(pkgmgr)
 BuildRequires: pkgconfig(ui-gadget-1)
 BuildRequires: pkgconfig(icu-i18n)
+BuildRequires: pkgconfig(capi-system-sensor)
 
 %description
 Description: Manage Application package
index 0dd6514..3deb596 100755 (executable)
@@ -45,7 +45,6 @@ struct _mgr_app_app_info_t {
        char    *pkg_type;
        int     total_size;
        int             data_size;
-       Eina_Bool       pre_installed;
        Eina_Bool       nodisplay;
        Eina_Bool       removable;
        Eina_Bool       taskmanage;
@@ -63,8 +62,6 @@ struct ug_data {
        Evas_Object             *ly;
        Evas_Object             *popup;
 
-       int                             suite_id;
-
        pkgmgr_client           *pc;
        pkgmgr_client           *pc_listen;
 
index 64b7ee4..a5cf1b5 100755 (executable)
@@ -142,6 +142,9 @@ static void on_start(ui_gadget_h ug, service_h service, void *priv)
 static void on_pause(ui_gadget_h ug, service_h service, void *priv)
 {
        MGR_APP_BEGIN();
+       
+       mgr_app_doubletap_sensor_disable();
+
        MGR_APP_END();
 }
 
@@ -153,6 +156,8 @@ static void on_resume(ui_gadget_h ug, service_h service, void *priv)
        ret_if(viewlist == NULL);
        GList *target_view = g_list_find(viewlist, &mgr_app_view_app_info);
 
+       mgr_app_doubletap_sensor_enable();
+
        if (target_view) {
                struct ug_data *ugd = NULL;
 
@@ -180,6 +185,8 @@ static void on_destroy(ui_gadget_h ug, service_h service, void *priv)
                ugd->pc_listen = NULL;
        }
 
+       mgr_app_doubletap_sensor_destroy();
+
        mgr_app_view_destroy(&mgr_app_view_app_info, (void*)ugd);
        mgr_app_view_destroy(&mgr_app_view_app_list, (void*)ugd);
 
index 2124654..1480edd 100755 (executable)
@@ -146,7 +146,9 @@ void _app_info_back_cb(void *data, Evas_Object *obj, void *event_info)
                MGR_APP_DEBUG_ERR("ug_destroy ugd->sub_ug is failed");
        }
 
-       mgr_app_view_common_back_cb(ugd, EINA_FALSE);
+       mgr_app_doubletap_sensor_disable();
+
+       mgr_app_view_common_back_cb(ugd, EINA_TRUE);
 
        elm_genlist_item_class_free(itc_sep);
        elm_genlist_item_class_free(itc);
@@ -1214,6 +1216,23 @@ static Evas_Object *__create_genlist_app_info(Evas_Object *parent, void *data)
        return genlist;
 }
 
+static void _doubletap_sensor_cb(void *data)
+{
+       MGR_APP_BEGIN();
+
+       ret_if(NULL == data);
+
+       Evas_Object *genlist = (Evas_Object*)data;
+       Elm_Object_Item *item = NULL;
+
+       item = elm_genlist_first_item_get(genlist);
+       ret_if(NULL == item);
+       
+       elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+               
+       MGR_APP_END();
+}
+
 static Evas_Object *mgr_app_view_app_info_create(void *data)
 {
        MGR_APP_BEGIN();
@@ -1234,6 +1253,9 @@ static Evas_Object *mgr_app_view_app_info_create(void *data)
        elm_theme_extension_add(NULL, EDC_FILE);
        app_info_view_data->genlist = __create_genlist_app_info(view_common_data->common_navibar, (void*)ugd);
 
+       mgr_app_doubletap_sensor_set_cb(_doubletap_sensor_cb, app_info_view_data->genlist);
+       mgr_app_doubletap_sensor_enable();
+
        MGR_APP_END();
        return app_info_view_data->genlist;
 }
index 44111f3..8b297e9 100755 (executable)
@@ -938,7 +938,7 @@ static Evas_Object *__create_genlist_app_list(Evas_Object *parent, void *data)
        evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
        elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
        elm_genlist_block_count_set(genlist, GENLIST_BLOCK_CNT);
-       elm_genlist_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_ON);
+       elm_genlist_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
        evas_object_show(genlist);
        evas_object_smart_callback_add(genlist, "realized", _gl_realized, NULL);
 
@@ -1063,6 +1063,23 @@ static Evas_Object *__create_genlist_app_list(Evas_Object *parent, void *data)
        return genlist;
 }
 
+static void _doubletap_sensor_cb(void *data)
+{
+       MGR_APP_BEGIN();
+
+       ret_if(NULL == data);
+
+       Evas_Object *genlist = (Evas_Object*)data;
+       Elm_Object_Item *item = NULL;
+
+       item = elm_genlist_first_item_get(genlist);
+       ret_if(NULL == item);
+       
+       elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+               
+       MGR_APP_END();
+}
+
 static Evas_Object *mgr_app_view_app_list_create(void *data)
 {
        MGR_APP_BEGIN();
@@ -1081,6 +1098,9 @@ static Evas_Object *mgr_app_view_app_list_create(void *data)
 
        app_list_view_data->genlist = __create_genlist_app_list(app_list_view_data->layout, data);
 
+       mgr_app_doubletap_sensor_set_cb(_doubletap_sensor_cb, app_list_view_data->genlist);
+       mgr_app_doubletap_sensor_enable();      
+
        MGR_APP_END();
        return app_list_view_data->layout;
 }
@@ -1107,9 +1127,12 @@ static mgr_app_result_e mgr_app_view_app_list_destory(void *data)
        retv_if(mgr_app_view_app_list.view_common_data == NULL, MGR_APP_ERROR);
        mgr_app_view_app_list.view_common_data->view_layout = NULL;
 
+       mgr_app_doubletap_sensor_disable();
+
        MGR_APP_END();
        return MGR_APP_OK;
 }
+
 static mgr_app_result_e mgr_app_view_app_list_update(void *data)
 {
        MGR_APP_BEGIN();
@@ -1120,22 +1143,18 @@ static mgr_app_result_e mgr_app_view_app_list_update(void *data)
        retv_if(view_common_data->user_view_data == NULL, MGR_APP_ERROR);
        app_list_view_data_t *app_list_view_data = view_common_data->user_view_data;
 
-       if (app_list_view_data->genlist != NULL) {
-               elm_genlist_clear(app_list_view_data->genlist);
-               evas_object_del(app_list_view_data->genlist);
-               app_list_view_data->genlist = NULL;
+       if (app_list_view_data->genlist) {
+               mgr_app_doubletap_sensor_set_cb(_doubletap_sensor_cb, app_list_view_data->genlist);
+               mgr_app_doubletap_sensor_enable();
        }
 
-       app_list_view_data->genlist = __create_genlist_app_list(app_list_view_data->layout, data);
-
        MGR_APP_END();
        return MGR_APP_OK;
 }
+
 static mgr_app_result_e mgr_app_view_app_list_cleanup(void *data)
 {
        MGR_APP_BEGIN();
        MGR_APP_END();
        return MGR_APP_OK;
 }
-
-