#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__ */
#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"
*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;
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;
#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/"
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)