Fix Navi_SE issue : When LCD is off, pressing Home key is to open taskmanager.
authorhhh.kwon <hhh.kwon@samsung.com>
Sat, 26 Jan 2013 06:08:06 +0000 (15:08 +0900)
committerhhh.kwon <hhh.kwon@samsung.com>
Sat, 26 Jan 2013 06:10:07 +0000 (15:10 +0900)
Change-Id: Iaaf10bfb9b16dbe048f81ae4ebd885a2e99e9ffa

src/_logic.c
src/taskmanager.c
src/taskmanager.h

index 997afb7..41ec8b8 100755 (executable)
@@ -336,6 +336,8 @@ Eina_Bool _create_idler_cb(void *data)
        struct appdata *ad = (struct appdata *)data;
        retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument\n");
 
+       _check_show_state();
+
        evas_object_show(ad->win);
 
        _key_grab(ad);
index 2dfe23f..cc32e30 100755 (executable)
@@ -45,6 +45,12 @@ enum {
        IDLELOCK_MAX,
 };
 
+enum {
+       LCD_OFF = 0x0,
+       LCD_ON,
+       LCD_MAX,
+};
+
 static struct text_part main_txt[] = {
 };
 
@@ -81,13 +87,24 @@ int _get_vconf_idlelock(void)
        int lock = IDLELOCK_OFF;
 
        ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &lock);
-       retvm_if(ret < 0, -1, "Failed to get vconf %s\n",
-                VCONFKEY_IDLE_LOCK_STATE);
+       retvm_if(ret < 0, -1, "Failed to get vconf\n");
        _D("idlelock vconf:%d\n", lock);
 
        return lock == VCONFKEY_IDLE_LOCK ? IDLELOCK_ON : IDLELOCK_OFF;
 }
 
+int _get_vconf_lcdstate(void)
+{
+       int ret = -1;
+       int lcd = 0;
+
+       ret = vconf_get_int(VCONFKEY_PM_STATE, &lcd);
+       retvm_if(ret < 0, -1, "Failed to get vconf\n");
+       _D("lcd vconf:%d\n", lcd);
+
+       return lcd == VCONFKEY_PM_STATE_LCDOFF ? LCD_OFF : LCD_ON;
+}
+
 Eina_Bool _exit_cb(void *data)
 {
        int lock = IDLELOCK_ON;
@@ -169,6 +186,17 @@ int _set_notification_level(Evas_Object *win, Utilx_Notification_Level level)
        return 0;
 }
 
+void _check_show_state(void)
+{
+       int lcd = LCD_OFF, idlelock = IDLELOCK_OFF;
+       lcd = _get_vconf_lcdstate();
+       idlelock = _get_vconf_idlelock();
+       if(lcd == LCD_OFF || idlelock == IDLELOCK_ON)
+       {
+               elm_exit();
+       }
+}
+
 int app_create(void *data)
 {
        Evas_Object *win;
index 1ca2cbd..d85a2ad 100755 (executable)
@@ -127,6 +127,7 @@ int _unset_notification_level(Evas_Object *win);
 int _set_notification_level(Evas_Object *win, Utilx_Notification_Level level);
 void _key_grab(struct appdata *ad);
 Eina_Bool _exit_cb(void *data);
+void _check_show_state(void);
 
 #endif
 /* __TASKMANAGER_H___ */