📄 impscontact.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 + -