using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter.Safety
{
///
/// 编辑胁迫密码的界面
///
public class CoercePswEditorForm : EditorCommonForm
{
#region ■ 变量声明___________________________
///
/// 用户账号
///
private int pswNo = 5;
///
/// 密码
///
private string password = string.Empty;
///
/// 密码提示
///
private string passwordTip = string.Empty;
///
/// 列表的桌布控件
///
private FrameLayout frameTable = null;
///
/// 当前的联系人列表
///
private List listPhoneData = null;
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
/// 用户密码
/// 用户密码提示
public void ShowForm(string i_password, string i_passwordTip)
{
this.password = i_password;
this.passwordTip = i_passwordTip;
//设置头部信息
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCoercePassword));
//初始化中部信息
this.InitMiddleFrame(i_password);
}
///
/// 初始化中部信息
///
/// 用户密码
private void InitMiddleFrame(string i_password)
{
//清空bodyFrame
this.ClearBodyFrame();
this.frameTable = new FrameLayout();
frameTable.Height = bodyFrameLayout.Height;
bodyFrameLayout.AddChidren(frameTable);
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";
bodyFrameLayout.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);
var 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();
}
///
/// 初始化列表控件
///
private void InitListViewControl()
{
this.frameTable.RemoveAll();
//初始化桌布
var tableContr = new InformationEditorControl();
var listview = tableContr.InitControl(this.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 711, 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 += () =>
{
if (rowNote.Text == string.Empty)
{
rowNote.Text = passwordTip;
return;
}
if (passwordTip != rowNote.Text)
{
//修改密码备注
this.EditorPassworTip(password, rowNote.Text);
}
};
//修改密码
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);
};
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();
//联系人
var rowContact = new FrameRowControl(listview.rowSpace / 2);
rowContact.UseClickStatu = false;
listview.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);
};
if (result.Actions.Count > 0)
{
listPhoneData = result.Actions[0].PushTarget;
foreach (var data in listPhoneData)
{
//添加联系人行
this.AddPhoneNumRowLayout(listview, data);
}
}
else
{
//没有联系人的话,添加个底线
rowContact.AddBottomLine();
}
});
});
}
#endregion
#region ■ 添加联系人行_______________________
///
/// 添加联系人行
///
///
///
private void AddPhoneNumRowLayout(VerticalListControl listview, 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.frameTable.UseClickStatu = false;
listview.AddChidren(rowContact);
//联系方式
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);
});
};
}
///
/// 删除联系人方式
///
///
///
///
public async void DeleteCoercePhoneNumber(string areaCode, string phone, RowLayoutControl rowContact)
{
bool result = await HdlSafeguardLogic.Current.DeleteCoercePhoneNumber(areaCode, phone);
if (result == true)
{
rowContact.RemoveFromParent();
//移除缓存
string checkKeys = areaCode + "-" + phone;
for (int i = 0; i < this.listPhoneData.Count; i++)
{
if (listPhoneData[i].PushNumber == checkKeys)
{
listPhoneData.RemoveAt(i);
}
}
}
}
#endregion
#region ■ 修改备注___________________________
///
/// 修改密码备注
///
/// 用户密码
/// 用户密码提示
private async void EditorPassworTip(string i_password, string i_passwordTip)
{
var result = await HdlSafeguardLogic.Current.AddPassWordTips(this.pswNo, i_password, i_passwordTip);
if (result == true)
{
//修改备注信息成功!
string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationSuccess);
this.ShowMassage(ShowMsgType.Tip, msg);
this.passwordTip = i_passwordTip;
}
}
#endregion
#region ■ 界面重新激活事件___________________
///
/// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
///
public override int FormActionAgainEvent()
{
//初始化列表控件
this.InitListViewControl();
return 1;
}
#endregion
}
}