using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.Safety
{
///
/// 添加胁迫联系人
///
public class CoercePswAddContactForm : EditorCommonForm
{
#region ■ 变量声明___________________________
///
/// 添加联系方式的事件
///
public Action AddPhoneEvent = null;
///
/// 信息提示控件
///
private NormalViewControl btnErrorMsg = null;
///
/// 电话列表
///
private List listPhoneData = null;
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
///
public void ShowForm(List listData)
{
this.listPhoneData = listData;
//设置头部信息
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddContactPersion));
var btnIcon = new MostRightIconControl(69, 69);
btnIcon.UnSelectedImagePath = "Item/PhoneBook.png";
topFrameLayout.AddChidren(btnIcon);
btnIcon.InitControl();
btnIcon.ButtonClickEvent += ((sender, e) =>
{
Contacts.ContactAction = (phoneName, phoneNum) =>
{
if (string.IsNullOrEmpty(phoneName) == true)
{
return;
}
//手机号检测
if (this.CheckPhoneNumber("86", phoneNum, phoneName) == false)
{
return;
}
//保存联系人
this.SaveCoercePhoneNumber("86", phoneNum, phoneName);
};
Contacts.Open();
});
//初始化中部信息
this.InitMiddleFrame();
//重写底层返回按键事件
this.BackButtonClickEvent = (sender) =>
{
this.AddPhoneEvent = null;
this.CloseForm();
};
}
///
/// 初始化中部信息
///
private void InitMiddleFrame()
{
//清空bodyFrame
this.ClearBodyFrame();
var frameBack = new FrameLayout();
frameBack.Height = Application.GetRealHeight(328);
frameBack.BackgroundColor = UserCenterColor.Current.White;
bodyFrameLayout.AddChidren(frameBack);
//地区码
var btnArea = new NormalViewControl(127, 60, true);
btnArea.X = ControlCommonResourse.XXLeft;
btnArea.Y = Application.GetRealHeight(57);
btnArea.Text = "+86";
btnArea.TextAlignment = TextAlignment.Center;
btnArea.TextColor = UserCenterColor.Current.TextGrayColor1;
frameBack.AddChidren(btnArea);
//目前只针对+86
//btnArea.ButtonClickEvent += (sender, e) =>
//{
// var form = new AreaCodeSelectForm();
// form.AddForm();
// form.FinishSelectEvent += (code) =>
// {
// btnArea.Text = "+" + code;
// };
//};
//电话输入框
var txtPhone = new TextInputControl(Application.GetRealWidth(634), btnArea.Height, false);
txtPhone.X = btnArea.Right + Application.GetRealWidth(35);
txtPhone.Y = btnArea.Y;
txtPhone.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputPhoneNumber);
frameBack.AddChidren(txtPhone);
//取消图标
var btnCancel1 = new MostRightIconControl(69, 69);
btnCancel1.Gravity = Gravity.Frame;
btnCancel1.Y = Application.GetRealHeight(23);
btnCancel1.UnSelectedImagePath = "Item/CancelIcon.png";
frameBack.AddChidren(btnCancel1);
btnCancel1.InitControl();
btnCancel1.ButtonClickEvent += (sender, e) =>
{
txtPhone.Text = string.Empty;
};
//线
var btnLine = new NormalViewControl(Application.GetRealWidth(965), ControlCommonResourse.BottomLineHeight, false);
btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
btnLine.Y = Application.GetRealHeight(150);
btnLine.Gravity = Gravity.CenterHorizontal;
frameBack.AddChidren(btnLine);
//联动线的状态
txtPhone.btnLine = btnLine;
//备注
var txtNote = new TextInputControl(Application.GetRealWidth(740), txtPhone.Height, false);
txtNote.X = ControlCommonResourse.XXLeft;
txtNote.Y = btnLine.Bottom + Application.GetRealHeight(60);
txtNote.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPlesaeInputNoteInformation);
frameBack.AddChidren(txtNote);
//取消图标
var btnCancel2 = new MostRightIconControl(69, 69);
btnCancel2.Gravity = Gravity.Frame;
btnCancel2.Y = btnLine.Bottom + Application.GetRealHeight(29);
btnCancel2.UnSelectedImagePath = "Item/CancelIcon.png";
frameBack.AddChidren(btnCancel2);
btnCancel2.InitControl();
btnCancel2.ButtonClickEvent += (sender, e) =>
{
txtNote.Text = string.Empty;
};
//信息提示
this.btnErrorMsg = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
btnErrorMsg.X = ControlCommonResourse.XXLeft;
btnErrorMsg.Y = frameBack.Bottom + Application.GetRealHeight(29);
btnErrorMsg.TextColor = 0xfff75858;
btnErrorMsg.TextSize = 12;
bodyFrameLayout.AddChidren(btnErrorMsg);
//完成
var btnFinish = new BottomClickButton();
btnFinish.TextID = R.MyInternationalizationString.uFinish;
bodyFrameLayout.AddChidren(btnFinish);
btnFinish.ButtonClickEvent += (sender, e) =>
{
//手机号检测
if (this.CheckPhoneNumber(btnArea.Text.Substring(1), txtPhone.Text.Trim(), txtNote.Text.Trim()) == false)
{
return;
}
//执行保存手机操作
this.SaveCoercePhoneNumber(btnArea.Text.Substring(1), txtPhone.Text.Trim(), txtNote.Text.Trim());
};
}
#endregion
#region ■ 添加联系人方式_____________________
///
/// 变更联系人方式
///
///
///
///
private async void SaveCoercePhoneNumber(string areaCode, string phoneNum, string strNote)
{
var listPhone = new List();
listPhone.Add(areaCode + "-" + phoneNum);
var listNote = new List();
listNote.Add(strNote);
//变更
var result = await HdlSafeguardLogic.Current.SetCoercePhoneNumber(listPhone, listNote);
if (result == false)
{
return;
}
this.CloseForm();
//调用回调函数
this.AddPhoneEvent?.Invoke();
this.AddPhoneEvent = null;
}
#endregion
#region ■ 一般方法___________________________
///
/// 检测手机号
///
///
///
///
private bool CheckPhoneNumber(string areaCode, string phone,string strNote)
{
//输入为空
if (phone == string.Empty)
{
//请输入手机号
btnErrorMsg.Text = Language.StringByID(R.MyInternationalizationString.uPleaseInputPhoneNumber);
return false;
}
if (strNote == string.Empty)
{
//请输入备注内容
btnErrorMsg.Text = Language.StringByID(R.MyInternationalizationString.uPlesaeInputNoteInformation);
return false;
}
//检测手机号格式
if (HdlCheckLogic.Current.CheckPhoneNumber(phone, areaCode) == false)
{
//这不是一个有效的手机号
btnErrorMsg.Text = Language.StringByID(R.MyInternationalizationString.uThisIsNotPhoneNumberType);
return false;
}
foreach (var data in this.listPhoneData)
{
if (data.PushNumber == areaCode + "-" + phone)
{
//联系方式已经存在
btnErrorMsg.Text = Language.StringByID(R.MyInternationalizationString.uThePhoneNumIsRepeat);
return false;
}
}
btnErrorMsg.Text = string.Empty;
return true;
}
#endregion
}
}