示例#1
0
        protected virtual void XmppClient_OnRosterItem(object sender, Matrix.Xmpp.Roster.RosterEventArgs e)
        {
            List <AppCore.User> uses = LegionUtils.getListJson(appPreferences.getValueKey(AppPreferences.CONTACTS));

            uses.Add(new AppCore.User(e.RosterItem.Jid.Bare, e.RosterItem.Jid.Bare.Split('@')[0]));
            LegionUtils.saveFoundContacts(uses, appPreferences, AppPreferences.CONTACTS);
        }
示例#2
0
        /// <summary>
        /// Example of how to handle an incoming friend request
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected virtual void Xmpp_OnSubscribeRequest(object sender, SubscribeRequestEventArgs e)
        {
            List <AppCore.User> friedsReqs = LegionUtils.getListJson(
                appPreferences.getValueKey(AppPreferences.FRIEND_REQUEST));

            friedsReqs.Add(new AppCore.User(e.From, e.From.Split('@')[0]));

            LegionUtils.saveFoundContacts(friedsReqs, appPreferences, AppPreferences.FRIEND_REQUEST);
        }
示例#3
0
        public void Xmpp_OnSubscribeRequest(object sender, SubscribeRequestEventArgs e)
        {
            ThreadPool.QueueUserWorkItem(o =>
            {
                List <AppCore.User> friedsReqs = LegionUtils.getListJson(
                    appPreferences.getValueKey(AppPreferences.FRIEND_REQUEST));
                friedsReqs.Add(new AppCore.User(e.From, e.From.Split('@')[0]));

                LegionUtils.saveFoundContacts(friedsReqs, appPreferences, AppPreferences.FRIEND_REQUEST);
            });
        }
示例#4
0
        public void XmppClient_OnRosterItem(object sender, Matrix.Xmpp.Roster.RosterEventArgs e)
        {
            List <AppCore.User> uses = LegionUtils.getListJson(appPreferences.getValueKey(AppPreferences.CONTACTS));

            uses.Add(new AppCore.User(e.RosterItem.Jid.Bare, e.RosterItem.Jid.Bare.Split('@')[0]));
            LegionUtils.saveFoundContacts(uses, appPreferences, AppPreferences.CONTACTS);

            if (context.GetType() == typeof(ContacPhoneActivity))
            {
                ContacPhoneActivity cpa = (ContacPhoneActivity)context;
                cpa.XmppClient_OnRosterItem(sender, e);
            }
        }
示例#5
0
 void validaSaveContactNext()
 {
     Log.Info("Load Contacts Complete");
     if (user.users.Count > 0)
     {
         LegionUtils.saveFoundContacts(user.users.Distinct().ToList(), appPreferences, AppPreferences.CONTACTS);
         updateComplete();
     }
     else
     {
         updateComplete();
     }
 }
 void validaSaveContactNext()
 {
     if (totalContactReady == this.users.Count)
     {
         Log.Info("Load Contacts Complete");
         if (contactJIdList.Count > 0)
         {
             LegionUtils.saveFoundContacts(contactJIdList, appPreferences, AppPreferences.CONTACTS);
             loadNewActivity();
         }
         else
         {
             loadNewActivity();
         }
     }
 }
示例#7
0
        private void syncContact()
        {
            List <User> vCards = new List <User>();

            if (lastContacts != null && lastContacts.Count > 0)
            {
                foreach (AppCore.User u in lastContacts)
                {
                    if (user.users.Any(c => c.Jid != u.Jid))
                    {
                        user.users.Add(u);
                    }
                }
            }

            foreach (User contac in user.users)
            {
                if (contac.Jid == null || contac.Jid == "")
                {
                    return;
                }
                App.Instance.Xmpp.GetVCard(contac.Jid, delegate(object s, Matrix.Xmpp.Client.IqEventArgs eIq)
                {
                    var vc = eIq.Iq.Query as Matrix.Xmpp.Vcard.Vcard;
                    vc.Jid = contac.Jid;

                    if (vc.Jid != null && vc.Jid != "")
                    {
                        vCards.Add(userService.getValidUser(vc, GetString(Resource.String.jid)));
                        if (vCards.Count >= user.users.Count)
                        {
                            LegionUtils.saveFoundContacts(vCards, appPreferences, AppPreferences.CONTACTS);
                            this.user.users = vCards;
                            updateListCardUi();
                            appPreferences.saveKey(AppPreferences.FIRST_ACCESS, false);
                        }
                    }
                });
            }
        }
示例#8
0
        public void alertSub(Activity actualActivity, AppCore.User u)
        {
            List <AppCore.User> uses = LegionUtils.getListJson(appPreferences.getValueKey(AppPreferences.CONTACTS));

            new AlertDialog.Builder(actualActivity)
            .SetPositiveButton("Yes", (s, args) =>
            {
                Log.Info("Accept friend request");
                this.App.Xmpp.Approve(u.Jid);
                uses.Add(u);
                LegionUtils.saveFoundContacts(uses, appPreferences, AppPreferences.CONTACTS);
                LegionUtils.saveFoundContacts(new List <AppCore.User>(), appPreferences, AppPreferences.FRIEND_REQUEST);
                appPreferences.saveKey(AppPreferences.FIRST_ACCESS, true);
            })
            .SetNegativeButton("No", (s, args) =>
            {
                Log.Info("Deny friend request");
                this.App.Xmpp.Deny(u.Jid);
            })
            .SetTitle("Friend Request")
            .SetMessage("Would you like to add " + u.Jid + " as a friend?")
            .Show();
        }