load login user in view_home 24/44324/1
authorSoohye Shin <soohye.shin@samsung.com>
Tue, 21 Jul 2015 03:53:39 +0000 (12:53 +0900)
committerSoohye Shin <soohye.shin@samsung.com>
Tue, 21 Jul 2015 03:54:19 +0000 (12:54 +0900)
Change-Id: Ic29ffd7295a14d7a5a1645d7c5d52264551ddb4b
Signed-off-by: Soohye Shin <soohye.shin@samsung.com>
include/defs.h
src/data/data_home.c
src/data/data_user.c
src/view/view_home.c

index 6ad147d..dcb2a0e 100644 (file)
 #define MESSAGE_DONE "Done"
 #define MESSAGE_DISCARD "Discard"
 
+#define GUM_ATTR_NAME "username"
+#define GUM_ATTR_USERTYPE "usertype"
+#define GUM_ATTR_UID "uid"
+#define GUM_ATTR_ICON "icon"
+#define GUM_ATTR_PASSWORD "secret"
+#define GUM_LIST_USERTYPE_NORMAL "normal"
+#define GUM_LIST_USERTYPE_ADMIN "admin"
+
 #endif /* __AIR_HOME_DEFS_H__ */
index c03c143..8b17560 100644 (file)
@@ -22,6 +22,8 @@
 #include <viewmgr.h>
 #include <notification.h>
 #include <notification_internal.h>
+#include <pwd.h>
+#include <gum/gum-user.h>
 
 #include "data_home.h"
 #include "datamgr.h"
@@ -102,6 +104,27 @@ static void _get_notification(char **noti)
        *noti = strdup(buf);
 }
 
+static void _get_login_user(char **name, char **icon, char **focus_icon)
+{
+       GumUser *user;
+       struct passwd *passwd;
+       uid_t uid = getuid();
+
+       user = gum_user_get_sync(uid, FALSE);
+       if (!user) {
+               _ERR("failed to get user service");
+               passwd = getpwuid(uid);
+               *name = passwd->pw_name;
+               return;
+       }
+
+       g_object_get(G_OBJECT(user), GUM_ATTR_NAME, name, GUM_ATTR_ICON, icon,
+                       NULL);
+       *focus_icon = (char *)utils_get_focus_icon_from_icon(*icon);
+
+       g_object_unref(user);
+}
+
 static struct datamgr_item *_pack_home_item(JsonReader *reader, int i)
 {
        struct datamgr_item *di;
@@ -142,9 +165,10 @@ static struct datamgr_item *_pack_home_item(JsonReader *reader, int i)
                return NULL;
        }
 
-       if (!strcmp(action, STR_SELECT_ACTION_PUSH))
+       if (!strcmp(action, STR_SELECT_ACTION_PUSH)) {
                di->action = ITEM_SELECT_ACTION_PUSH;
-       else if (!strcmp(action, STR_SELECT_ACTION_LAUNCH))
+               _get_login_user(&name, &icon, &focus_icon);
+       } else if (!strcmp(action, STR_SELECT_ACTION_LAUNCH))
                di->action = ITEM_SELECT_ACTION_LAUNCH;
        else
                di->action = ITEM_SELECT_ACTION_MAX;
index 2379e5e..c4310b2 100644 (file)
 #include "defs.h"
 #include "utils.h"
 
-#define GUM_ATTR_NAME "username"
-#define GUM_ATTR_USERTYPE "usertype"
-#define GUM_ATTR_UID "uid"
-#define GUM_ATTR_ICON "icon"
-#define GUM_ATTR_PASSWORD "secret"
-#define GUM_LIST_USERTYPE_NORMAL "normal"
-#define GUM_LIST_USERTYPE_ADMIN "admin"
-
 #define ADDRESS_BUF_MAX 128
 #define USER_SWITCH_TLM_SEAT_ID "seat0"
 #define USER_SWITCH_DBUS_SOCKET_PATH "/var/run/tlm/"
index 703d8fd..3c06565 100644 (file)
@@ -211,6 +211,9 @@ static struct bar_item *_pack_bar_item(struct _priv *priv, Evas_Object *box,
        if (!focus_ic)
                goto err;
 
+       if (!strcmp(di->icon, di->focus_icon))
+               elm_object_signal_emit(eo, SIG_SHOW_MASK, SRC_PROG);
+
        lbl = utils_add_label(eo, di->title, STYLE_LABEL_TITLE,
                        PART_BAR_ITEM_TITLE);
        if (!lbl)