ail
notification
security-server
+ ui-gadget-1
+ capi-system-info
)
FOREACH(flag ${pkgs_CFLAGS})
<?xml version="1.0" encoding="utf-8"?>\r
-<manifest xmlns="http://tizen.org/ns/packages" package="@PKGNAME@" version="0.1.3" install-location="internal-only">\r
+<manifest xmlns="http://tizen.org/ns/packages" package="@PKGNAME@" version="0.1.4" install-location="internal-only">\r
<label>@PROJECT_NAME@</label>\r
<author email="yjoo93.park@samsung.com" href="www.samsung.com">Youngjoo Park</author>\r
<author email="seungtaek.chung@samsung.com" href="www.samsung.com">seungtaek chung</author>\r
Name: org.tizen.lockscreen
Summary: lockscreen application
-Version: 0.1.3
+Version: 0.1.4
Release: 1
Group: TBD
License: Apache
BuildRequires: pkgconfig(ail)
BuildRequires: pkgconfig(notification)
BuildRequires: pkgconfig(security-server)
+BuildRequires: pkgconfig(ui-gadget-1)
+BuildRequires: pkgconfig(capi-system-info)
BuildRequires: cmake
BuildRequires: gettext
\r
LOCK_SCREEN_TRACE_DBG("source = %s", source);\r
\r
+ if (strcmp("SOS", source) == 0) {\r
+ launch_emgcall(ad);\r
+ return;\r
+ }\r
+\r
if (strcasecmp("function1", source) == 0 || strcasecmp("function2", source) == 0) {\r
return ;\r
}\r
#include <app.h>
#include <vconf.h>
#include <Ecore_X.h>
+#include <system_info.h>
#include "lockscreen.h"
#include "util.h"
+#define QP_EMUL_STR "Emulator"
+
static void win_del(void *data, Evas_Object * obj, void *event)
{
elm_exit();
evas_object_geometry_get(obj, NULL, NULL, &w, &h);
}
+static int _check_emul()
+{
+ int is_emul = 0;
+ char *info = NULL;
+
+ if (system_info_get_value_string(SYSTEM_INFO_KEY_MODEL, &info) == 0) {
+ if (info == NULL) return 0;
+ if (!strncmp(QP_EMUL_STR, info, strlen(info))) {
+ is_emul = 1;
+ }
+ }
+
+ if (info != NULL) free(info);
+
+ return is_emul;
+}
+
static bool app_create(void *data)
{
struct appdata *ad = data;
memset(&ad, 0x0, sizeof(struct appdata));
- setenv("ELM_ENGINE", "gl", 1);
+ if(!_check_emul()) {
+ setenv("ELM_ENGINE", "gl", 1);
+ }
return app_efl_main(&argc, &argv, &event_callback, &ad);
}
Ecore_Timer *password_timer;
int block_seconds;
Eina_Bool is_disabled;
+
+ struct ui_gadget *emgc_ug;
};
#endif
\r
LOCK_SCREEN_TRACE_DBG("source = %s", source);\r
if (strcmp("SOS", source) == 0) {\r
+ launch_emgcall(ad);\r
+ return;\r
} else if (strcmp("Backspace", source) == 0) {\r
if(simple_password_length <= 0){\r
simple_password[0] = '\0';\r
#include <vconf.h>
#include <vconf-keys.h>
#include <ail.h>
+#include <ui-gadget.h>
#include "util.h"
#include "info.h"
if (ad == NULL)
return -1;
+ if (ad->emgc_ug) {
+ ug_destroy(ad->emgc_ug);
+ ad->emgc_ug = NULL;
+ }
+
static int initted = 0;
if(initted == 0) {
ecore_idler_add(_init_widget_cb, ad);
return 0;
}
+
+static void __layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+ struct appdata *ad;
+ Evas_Object *base;
+
+ if (!ug || !priv)
+ return;
+
+ ad = priv;
+ base = ug_get_layout(ug);
+ if (!base)
+ return;
+
+ switch(mode) {
+ case UG_MODE_FULLVIEW:
+ LOCK_SCREEN_TRACE_DBG("[%s:%d]", __func__, __LINE__);
+ evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(ad->win, base);
+ evas_object_show(base);
+ break;
+ case UG_MODE_FRAMEVIEW:
+ break;
+ default:
+ break;
+ }
+}
+
+static void __result_cb(ui_gadget_h ug, service_h service, void *priv)
+{
+ LOCK_SCREEN_TRACE_DBG("result_cb\n");
+}
+
+static void __destroy_cb(ui_gadget_h ug, void *priv)
+{
+ struct appdata *ad = (struct appdata *)priv;
+
+ if (!ug || !ad) {
+ return;
+ }
+ LOCK_SCREEN_TRACE_DBG("[%s:%d]", __func__, __LINE__);
+
+ ug_destroy(ug);
+ ug = NULL;
+}
+
+void launch_emgcall(struct appdata *ad)
+{
+ if (ad == NULL)
+ return;
+
+ service_h service;
+ service_create(&service);
+ UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
+ struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
+ if (cbs == NULL) {
+ service_destroy(service);
+ return;
+ }
+ cbs->layout_cb = __layout_cb;
+ cbs->result_cb = __result_cb;
+ cbs->destroy_cb = __destroy_cb;
+ cbs->priv = (void *)ad;
+
+ LOCK_SCREEN_TRACE_DBG("[%s:%d]", __func__, __LINE__);
+
+ if (!service) {
+ service_destroy(service);
+ free(cbs);
+ return;
+ }
+
+ service_add_extra_data(service, "emergency_dialer", "emergency");
+ ad->emgc_ug = ug_create(NULL, "dialer-efl", UG_MODE_FULLVIEW, service, cbs);
+ service_destroy(service);
+ free(cbs);
+
+ if (!ad->emgc_ug) {
+ LOCK_SCREEN_TRACE_DBG("dialer ug failed");
+ return;
+ }
+}
Evas_Object *_get_bg_image(Evas_Object *parent);
void lockscreen_info_show(struct appdata *ad);
void lockscreen_info_hide(struct appdata *ad);
+void launch_emgcall(struct appdata *ad);
int _app_create(struct appdata *ad);
int _app_reset(struct appdata *ad);