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}")
#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)
#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)
{
}
}
+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();
+}
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
BuildRequires: pkgconfig(pkgmgr)
BuildRequires: pkgconfig(ui-gadget-1)
BuildRequires: pkgconfig(icu-i18n)
+BuildRequires: pkgconfig(capi-system-sensor)
%description
Description: Manage Application package
char *pkg_type;
int total_size;
int data_size;
- Eina_Bool pre_installed;
Eina_Bool nodisplay;
Eina_Bool removable;
Eina_Bool taskmanage;
Evas_Object *ly;
Evas_Object *popup;
- int suite_id;
-
pkgmgr_client *pc;
pkgmgr_client *pc_listen;
static void on_pause(ui_gadget_h ug, service_h service, void *priv)
{
MGR_APP_BEGIN();
+
+ mgr_app_doubletap_sensor_disable();
+
MGR_APP_END();
}
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;
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);
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);
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();
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;
}
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);
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();
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;
}
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();
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;
}
-
-