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 } }