示例#1
0
        List <User> usersByRecentConversation(Dictionary <string, AppCore.Message> recents)
        {
            List <User> usersFriend = new List <User>();

            if (recents != null)
            {
                foreach (var item in recents.Reverse())
                {
                    AppCore.Message m      = item.Value;
                    User            friend = new User();

                    friend.username = item.Key;
                    if (item.Value.GroupId != null)
                    {
                        friend.isGroup = true;
                    }
                    else
                    {
                        friend.Jid = friend.username;
                    }

                    //In Session Phone assumed callback menssages
                    if (LegionUtils.IsBase64String(m.Msg))
                    {
                        m.Msg = "@ Photo";
                    }
                    friend.Phone = LegionUtils.Truncate(m.Msg, 26);
                    string photo = appPreferences.getValueKey(friend.username + "_ICON");
                    if (photo != null || photo != "")
                    {
                        friend.Photo = photo;
                    }
                    usersFriend.Add(friend);
                }
            }

            // add groups list conversations
            List <AppCore.User> listGroupTmp = getGroupsTempToList(AppPreferences.GROUPS_TEMP);

            if (listGroupTmp != null)
            {
                //var varUser = listGroupTmp.Where(y => usersFriend.Any(z => z.Jid == y.Jid));

                List <string> jidstmps = new List <string>();
                foreach (AppCore.User u in usersFriend)
                {
                    jidstmps.Add(u.Jid);
                }

                foreach (AppCore.User g in listGroupTmp)
                {
                    if (!jidstmps.Contains(g.Jid))
                    {
                        usersFriend.Add(g);
                    }
                }
            }

            return(usersFriend);
        }