using System;
|
using System.Collections.Generic;
|
using System.Text;
|
|
namespace Shared.Phone.UserCenter.Safety
|
{
|
/// <summary>
|
/// 编辑胁迫密码的界面
|
/// </summary>
|
public class CoercePswEditorForm : EditorCommonForm
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 用户账号
|
/// </summary>
|
private int pswNo = 5;
|
/// <summary>
|
/// 密码
|
/// </summary>
|
private string password = string.Empty;
|
/// <summary>
|
/// 密码提示
|
/// </summary>
|
private string passwordTip = string.Empty;
|
/// <summary>
|
/// 联系人的列表控件
|
/// </summary>
|
private FrameListControl listPhoneView = null;
|
/// <summary>
|
/// 信息控件
|
/// </summary>
|
private InformationEditorControl tableContr = null;
|
/// <summary>
|
/// 密码控件
|
/// </summary>
|
private NormalViewControl btnPassword = null;
|
/// <summary>
|
/// 当前的联系人列表
|
/// </summary>
|
private List<ZigBee.Device.Safeguard.PushTargetInfo> listPhoneData = null;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
/// <param name="i_password">用户密码</param>
|
/// <param name="i_passwordTip">用户密码提示</param>
|
public void ShowForm(string i_password, string i_passwordTip)
|
{
|
this.password = i_password;
|
this.passwordTip = i_passwordTip;
|
this.ScrollEnabled = false;
|
//设置头部信息
|
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCoercePassword));
|
|
//初始化中部信息
|
this.InitMiddleFrame(i_password);
|
}
|
|
/// <summary>
|
/// 初始化中部信息
|
/// </summary>
|
/// <param name="i_password">用户密码</param>
|
private void InitMiddleFrame(string i_password)
|
{
|
//清空bodyFrame
|
this.ClearBodyFrame();
|
|
var listBackControl = new VerticalFrameControl();
|
listBackControl.Height = bodyFrameLayout.Height;
|
bodyFrameLayout.AddChidren(listBackControl);
|
|
var frameback = new FrameLayout();
|
frameback.Y = Application.GetRealHeight(179);
|
frameback.Height = Application.GetRealHeight(395);
|
frameback.Width = Application.GetRealWidth(717);
|
frameback.Gravity = Gravity.CenterHorizontal;
|
frameback.BackgroundImagePath = "Safeguard/SafeguardPasswordGround.png";
|
listBackControl.frameTable.AddChidren(frameback);
|
//当前使用密码
|
var btnNowTip = new NormalViewControl(frameback.Width, Application.GetRealHeight(50), false);
|
btnNowTip.Y = Application.GetRealHeight(81);
|
btnNowTip.TextSize = 12;
|
btnNowTip.TextAlignment = TextAlignment.Center;
|
btnNowTip.TextColor = UserCenterColor.Current.TextGrayColor3;
|
btnNowTip.TextID = R.MyInternationalizationString.uNowUsePassword;
|
frameback.AddChidren(btnNowTip);
|
this.btnPassword = new NormalViewControl(frameback.Width, Application.GetRealHeight(90), false);
|
btnPassword.TextAlignment = TextAlignment.Center;
|
btnPassword.Y = Application.GetRealHeight(150);
|
btnPassword.TextSize = 24;
|
btnPassword.TextColor = 0xfffc744b;
|
btnPassword.Text = i_password;
|
btnPassword.IsBold = true;
|
frameback.AddChidren(btnPassword);
|
|
//初始化列表控件
|
this.InitListViewControl(listBackControl);
|
}
|
|
/// <summary>
|
/// 初始化列表控件
|
/// </summary>
|
private void InitListViewControl(VerticalFrameControl listBackControl)
|
{
|
//初始化桌布
|
this.tableContr = new InformationEditorControl();
|
var listView = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 1025);
|
|
//备注信息
|
string caption = Language.StringByID(R.MyInternationalizationString.uNoteInformation);
|
var rowNote = new FrameCaptionInputControl(caption, passwordTip, listView.rowSpace / 2);
|
rowNote.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPlesaeInputNoteInformation);
|
rowNote.txtInput.MaxByte = 90;
|
listView.AddChidren(rowNote);
|
rowNote.InitControl();
|
rowNote.AddBottomLine();
|
rowNote.txtInput.FinishInputEvent += async () =>
|
{
|
if (rowNote.Text == string.Empty)
|
{
|
rowNote.Text = passwordTip;
|
return;
|
}
|
if (passwordTip != rowNote.Text)
|
{
|
//修改密码备注
|
await this.EditorPassworTip(password, rowNote.Text, true);
|
}
|
};
|
|
//修改密码
|
var rowPsw = new FrameRowControl(listView.rowSpace / 2);
|
listView.AddChidren(rowPsw);
|
rowPsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uChangedPassword), 300);
|
rowPsw.AddRightArrow();
|
rowPsw.AddBottomLine();
|
rowPsw.ButtonClickEvent += (sender, e) =>
|
{
|
var form = new CoercePswAddNewForm();
|
form.AddForm(rowNote.Text);
|
form.PasswordChangedEvent += (newPassword) =>
|
{
|
this.btnPassword.Text = newPassword;
|
this.password = newPassword;
|
};
|
};
|
|
//初始化联系人控件
|
this.InitPhoneControl(listView);
|
|
//重写底层的返回按键事件
|
this.BackButtonClickEvent = async (sender) =>
|
{
|
sender.CanClick = false;
|
if (rowNote.Text == string.Empty || passwordTip == rowNote.Text)
|
{
|
this.CloseForm();
|
}
|
else
|
{
|
//修改密码备注
|
var result = await this.EditorPassworTip(password, rowNote.Text, false);
|
sender.CanClick = true;
|
if (result == true)
|
{
|
this.CloseForm();
|
}
|
}
|
};
|
}
|
|
#endregion
|
|
#region ■ 初始化联系人控件___________________
|
|
/// <summary>
|
/// 初始化联系人控件
|
/// </summary>
|
private void InitPhoneControl(FrameListControl listTableView)
|
{
|
//联系人的列表控件
|
if (listPhoneView == null)
|
{
|
this.listPhoneView = new FrameListControl();
|
listPhoneView.rowSpace = listTableView.rowSpace;
|
listPhoneView.Height = Application.GetRealHeight(200);
|
listTableView.AddChidren(listPhoneView);
|
listPhoneView.Y -= listTableView.rowSpace;
|
}
|
else
|
{
|
this.listPhoneView.RemoveAll();
|
}
|
|
HdlThreadLogic.Current.RunThread(async () =>
|
{
|
//开启进度条
|
this.ShowProgressBar();
|
//获取联系方式
|
var result = await HdlSafeguardLogic.Current.GetCoercePhoneNumber();
|
if (result == null)
|
{
|
//关闭进度条
|
this.CloseProgressBar(ShowReLoadMode.YES);
|
return;
|
}
|
//关闭进度条
|
this.CloseProgressBar();
|
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
this.listPhoneData = new List<ZigBee.Device.Safeguard.PushTargetInfo>();
|
//联系人
|
var rowContact = new FrameRowControl(this.listPhoneView.rowSpace / 2);
|
rowContact.UseClickStatu = false;
|
listPhoneView.AddChidren(rowContact);
|
rowContact.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uContactPersion), 300);
|
var btnAdd = rowContact.AddMostRightEmptyIcon(81, 81);
|
btnAdd.UnSelectedImagePath = "Item/Add.png";
|
rowContact.ButtonClickEvent += (sender, e) =>
|
{
|
var form = new CoercePswAddContactForm();
|
form.AddForm(listPhoneData);
|
form.AddPhoneEvent += () =>
|
{
|
//重新刷新
|
this.InitPhoneControl(listTableView);
|
};
|
};
|
|
if (result.Actions.Count > 0)
|
{
|
listPhoneData = result.Actions[0].PushTarget;
|
foreach (var data in listPhoneData)
|
{
|
//添加联系人行
|
this.AddPhoneNumRowLayout(data);
|
}
|
}
|
else
|
{
|
//没有联系人的话,添加个底线
|
rowContact.AddBottomLine();
|
}
|
//调整桌布大小
|
this.AdjustPhoneContrlTable();
|
});
|
});
|
}
|
|
/// <summary>
|
/// 调整桌布大小
|
/// </summary>
|
private void AdjustPhoneContrlTable()
|
{
|
//调整桌布
|
listPhoneView.AdjustRealHeight();
|
tableContr.FinishInitControl(false, true);
|
}
|
|
#endregion
|
|
#region ■ 添加联系人行_______________________
|
|
/// <summary>
|
/// 添加联系人行
|
/// </summary>
|
/// <param name="data"></param>
|
private void AddPhoneNumRowLayout(ZigBee.Device.Safeguard.PushTargetInfo data)
|
{
|
var strArry = data.PushNumber.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries);
|
if (strArry.Length != 2)
|
{
|
return;
|
}
|
string areaCode2 = strArry[0];
|
string phoneNum = strArry[1];
|
|
string strPhone = "+" + areaCode2 + " " + phoneNum;
|
if (phoneNum.Length >= 11)
|
{
|
phoneNum = phoneNum.Substring(0, 3) + "".PadLeft(phoneNum.Length - 7, '*') + phoneNum.Substring(phoneNum.Length - 4, 4);
|
strPhone = "+" + areaCode2 + " " + phoneNum;
|
}
|
else if (phoneNum.Length >= 5)
|
{
|
//或许这是国外的手机吧
|
phoneNum = phoneNum.Substring(0, 3) + "".PadLeft(phoneNum.Length - 5, '*') + phoneNum.Substring(phoneNum.Length - 2, 2);
|
strPhone = "+" + areaCode2 + " " + phoneNum;
|
}
|
|
var rowContact = new RowLayoutControl();
|
rowContact.MainKeys = strPhone;
|
this.listPhoneView.AddChidren(rowContact);
|
rowContact.frameTable.UseClickStatu = false;
|
//联系方式
|
rowContact.frameTable.AddLeftCaption(strPhone + " (" + data.PushNumberNote + ")", 800);
|
rowContact.frameTable.AddBottomLine();
|
//删除
|
var btnDetete = rowContact.AddDeleteControl();
|
btnDetete.ButtonClickEvent += (sender, e) =>
|
{
|
string[] Arry = data.PushNumber.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries);
|
string PNumber = string.Empty;
|
string areaCode = string.Empty;
|
if (Arry.Length == 1)
|
{
|
PNumber = Arry[0];
|
}
|
else
|
{
|
areaCode = Arry[0];
|
PNumber = Arry[1];
|
}
|
string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg);
|
this.ShowMassage(ShowMsgType.Confirm, msg, () =>
|
{
|
//删除联系人方式
|
this.DeleteCoercePhoneNumber(areaCode, PNumber, rowContact);
|
});
|
};
|
}
|
|
/// <summary>
|
/// 删除联系人方式
|
/// </summary>
|
/// <param name="areaCode"></param>
|
/// <param name="phone"></param>
|
/// <param name="rowContact"></param>
|
public async void DeleteCoercePhoneNumber(string areaCode, string phone, RowLayoutControl rowContact)
|
{
|
bool result = await HdlSafeguardLogic.Current.DeleteCoercePhoneNumber(areaCode, phone);
|
if (result == true)
|
{
|
bool canMove = false;
|
for (int i = 0; i < this.listPhoneView.ChildrenCount; i++)
|
{
|
var myRow = this.listPhoneView.GetChildren(i) as RowLayoutControl;
|
if (myRow != null && myRow.MainKeys == rowContact.MainKeys)
|
{
|
//循环到了当前控件
|
canMove = true;
|
continue;
|
}
|
if (canMove == true)
|
{
|
//它之后的控件全部往上移动
|
myRow.Y -= rowContact.Height;
|
}
|
}
|
rowContact.RemoveFromParent();
|
|
//移除缓存
|
string checkKeys = areaCode + "-" + phone;
|
for (int i = 0; i < this.listPhoneData.Count; i++)
|
{
|
if (listPhoneData[i].PushNumber == checkKeys)
|
{
|
listPhoneData.RemoveAt(i);
|
}
|
}
|
//调整桌布大小
|
this.AdjustPhoneContrlTable();
|
}
|
}
|
|
#endregion
|
|
#region ■ 修改备注___________________________
|
|
/// <summary>
|
/// 修改密码备注
|
/// </summary>
|
/// <param name="i_password">用户密码</param>
|
/// <param name="i_passwordTip">用户密码提示</param>
|
private async System.Threading.Tasks.Task<bool> EditorPassworTip(string i_password, string i_passwordTip, bool ShowMsg)
|
{
|
var result = await HdlSafeguardLogic.Current.AddPassWordTips(this.pswNo, i_password, i_passwordTip);
|
if (result == true)
|
{
|
if (ShowMsg == true)
|
{
|
//修改备注信息成功!
|
string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationSuccess);
|
this.ShowMassage(ShowMsgType.Tip, msg);
|
}
|
|
this.passwordTip = i_passwordTip;
|
}
|
return result;
|
}
|
|
#endregion
|
}
|
}
|