⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 impscontact.cs

📁 破解的飞信源代码
💻 CS
字号:
namespace Imps.Client.Core
{
    using Imps.Common;
    using Imps.Utils;
    using System;
    using System.Runtime.CompilerServices;
    using System.Xml;

    public abstract class ImpsContact : NonFederationContact
    {
        private bool _ivrEnabled;
        private long _sid;

        public event EventHandler PortraitChanged;

        public ImpsContact(User owner, string uri) : base(owner, uri)
        {
            this._ivrEnabled = true;
        }

        public ImpsContact(User owner, string uri, bool getInfo) : base(owner, uri, getInfo)
        {
            this._ivrEnabled = true;
        }

        internal void InnerOnPortaitChanged(EventArgs e)
        {
            FuncDispatcher.InvokeEventHandlerInUiThread(this, this.PortraitChanged, e);
        }

        internal override void ParseInfoNode(XmlNode node, DownloadPortraitPriority priority, string requestedProperties)
        {
            base.ParseInfoNode(node, priority, requestedProperties);
            XmlReader reader = new XmlNodeReader(node);
            if (reader.ReadToFollowing("personal"))
            {
                this.PersonalInfo.SuspendUpdate();
                if (reader.MoveToAttribute("ivr-enabled"))
                {
                    this.IvrEnabled = reader.Value == "1";
                }
                this.PersonalInfo.ResumeUpdate();
            }
        }

        internal override void WriteContactSetInfoXml(XmlTextWriter writer)
        {
            writer.WriteStartElement("contact");
            writer.WriteAttributeString("uri", base.Uri.Raw);
            writer.WriteStartElement("personal");
            if (!string.IsNullOrEmpty(this.PersonalInfo.Version))
            {
                writer.WriteAttributeString("version", this.PersonalInfo.Version);
            }
            writer.WriteAttributeString("name", this.PersonalInfo.Name.ContactSetData);
            if (!string.IsNullOrEmpty(base.MobileNo))
            {
                writer.WriteAttributeString("mobile-no", base.MobileNo);
            }
            writer.WriteAttributeString("nickname", this.PersonalInfo.Nickname.ContactSetData);
            writer.WriteAttributeString("gender", ((int) this.PersonalInfo.Gender).ToString());
            writer.WriteAttributeString("birth-date", this.PersonalInfo.BirthDate.ContactSetData.ToShortDateString());
            if (this.PersonalInfo.IsBirthdayValid.ContactSetData)
            {
                writer.WriteAttributeString("birthday-valid", "1");
            }
            writer.WriteAttributeString("nation", this.PersonalInfo.UserNationality.ContactSetData);
            writer.WriteAttributeString("province", this.PersonalInfo.Province.ContactSetData.ToString());
            writer.WriteAttributeString("city", this.PersonalInfo.City.ContactSetData.ToString());
            writer.WriteAttributeString("impresa", base.Presence.MoodPhrase);
            writer.WriteAttributeString("job-title", this.PersonalInfo.JobTitle.ContactSetData);
            writer.WriteAttributeString("lunar-animal", ((int) this.PersonalInfo.LunarAnimal).ToString());
            writer.WriteAttributeString("horoscope", ((int) this.PersonalInfo.Horoscope).ToString());
            writer.WriteAttributeString("blood-type", ((int) this.PersonalInfo.BloodType.ContactSetData).ToString());
            writer.WriteAttributeString("portrait-crc", this.PersonalInfo.PortraitCrc.ToString());
            writer.WriteAttributeString("ivr-enabled", this.IvrEnabled ? "1" : "0");
            writer.WriteAttributeString("provisioning", this.PersonalInfo.Provision.ToString());
            XmlHelper.WriteAttributeStringNotEmpty(writer, "home-phone", this.PersonalInfo.HomePhone.ContactSetData);
            XmlHelper.WriteAttributeStringNotEmpty(writer, "work-phone", this.PersonalInfo.WorkPhone.ContactSetData);
            XmlHelper.WriteAttributeStringNotEmpty(writer, "other-phone", this.PersonalInfo.OtherPhone.ContactSetData);
            XmlHelper.WriteAttributeStringNotEmpty(writer, "personal-email", this.PersonalInfo.PersonalEmail.ContactSetData);
            XmlHelper.WriteAttributeStringNotEmpty(writer, "work-email", this.PersonalInfo.WorkEmail.ContactSetData);
            XmlHelper.WriteAttributeStringNotEmpty(writer, "other-email", this.PersonalInfo.OtherEmail.ContactSetData);
            writer.WriteAttributeString("primary-email", this.PersonalInfo.PrimaryEmail.ContactSetData.ToString());
            XmlHelper.WriteAttributeStringNotEmpty(writer, "company", this.PersonalInfo.Company.ContactSetData);
            XmlHelper.WriteAttributeStringNotEmpty(writer, "company-website", this.PersonalInfo.CompanyWebsite.ContactSetData);
            writer.WriteEndElement();
            writer.WriteStartElement("extended");
            writer.WriteAttributeString("score-level", this.PersonalInfo.ScoreLevel.ToString());
            writer.WriteEndElement();
            writer.WriteEndElement();
        }

        public override string DisplayName
        {
            get
            {
                return this.PersonalInfo.DisplayName;
            }
            internal set
            {
                this.PersonalInfo.Name = this.PersonalInfo.Name.CloneWithUserSetValue(value, string.Empty);
                this.PersonalInfo.UpdateDisplayName();
            }
        }

        public bool IvrEnabled
        {
            get
            {
                return this._ivrEnabled;
            }
            set
            {
                this._ivrEnabled = value;
            }
        }

        public long Sid
        {
            get
            {
                if (this._sid == 0)
                {
                    this._sid = IicUri.GetSidFromUri(base.Uri.Raw);
                }
                return this._sid;
            }
            internal set
            {
                this._sid = value;
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -