From d6fb0646531172f23648441c224cdcccd721b894 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期一, 14 十二月 2020 09:59:01 +0800
Subject: [PATCH] 请合并代码,完成晾衣架最终功能。

---
 ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs |  463 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 463 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs
new file mode 100755
index 0000000..faa609b
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs
@@ -0,0 +1,463 @@
+锘縰sing Shared.Common;
+using System;
+
+namespace Shared.Phone.UserCenter.UserMain
+{
+    /// <summary>
+    /// 涓汉淇℃伅鐢婚潰
+    /// </summary>
+    public class UserInformationForm : EditorCommonForm
+    {
+        /// <summary>
+        /// 涓儴妗屽竷鎺т欢
+        /// </summary>
+        private NormalFrameLayout frameMiddleBack = null;
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //璁颁綇瀹冨師鏉ョ殑鏄电О
+            UserCenterResourse.UserInfo.OldUserName = UserCenterResourse.UserInfo.UserName;
+
+            //鍥犱负鍒殑鐢婚潰浼氳皟鐢ㄨ繖涓嚱鏁帮紝鐒跺悗鍒锋柊鐢婚潰
+            this.ClearBodyFrame();
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uPersonalInfo));
+
+            //鍒濆鍖栦笂閮ㄧ殑淇℃伅
+            this.InitTopBodyFrame();
+
+            //鍒濆鍖栦腑閮ㄧ殑淇℃伅
+            this.InitMiddleBodyFrame();
+
+            //鍒濆鍖栭��鍑鸿处鍙风殑FrameLayout
+            this.InitLogoutFrameLayout();
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖栦笂娈垫帶浠禵____________________
+
+        /// <summary>
+        /// 鍒濆鍖栦笂閮ㄧ殑淇℃伅
+        /// </summary>
+        private void InitTopBodyFrame()
+        {
+            var specialTopFrame = new FrameLayout();
+            specialTopFrame.Height = Application.GetRealHeight(340);
+            specialTopFrame.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(specialTopFrame);
+
+            //鐢ㄦ埛鍥炬爣
+            var btnUserIcon = new ImageView();
+            btnUserIcon.Height = this.GetPictrueRealSize(251);
+            btnUserIcon.Width = this.GetPictrueRealSize(251);
+            btnUserIcon.Radius = (uint)this.GetPictrueRealSize(251) / 2;
+            btnUserIcon.Y = Application.GetRealHeight(46);
+            btnUserIcon.Gravity = Gravity.CenterHorizontal;
+            btnUserIcon.ImageBytes = Shared.IO.FileUtils.ReadFile(UserCenterResourse.UserInfo.UserIconFile);
+            specialTopFrame.AddChidren(btnUserIcon);
+            btnUserIcon.MouseUpEventHandler += (sender, e) =>
+            {
+                //鏄剧ず鑾峰彇鍥剧墖鏉ユ簮鑿滃崟
+                this.ShowUserIconMenu(btnUserIcon);
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖栦腑娈垫帶浠禵____________________
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄧ殑淇℃伅
+        /// </summary>
+        private void InitMiddleBodyFrame()
+        {
+            if (this.frameMiddleBack == null)
+            {
+                frameMiddleBack = new NormalFrameLayout();
+                frameMiddleBack.Y = Application.GetRealHeight(363);
+                frameMiddleBack.Height = Application.GetRealHeight(1008) - ControlCommonResourse.ListViewRowHeight - Application.GetRealHeight(12);
+                frameMiddleBack.BackgroundColor = UserCenterColor.Current.White;
+                bodyFrameLayout.AddChidren(frameMiddleBack);
+            }
+            else
+            {
+                frameMiddleBack.RemoveAll();
+            }
+
+            var listMidFrame = new FrameListControl(12);
+            listMidFrame.Y = Application.GetRealHeight(11);
+            listMidFrame.Height = Application.GetRealHeight(1008 - 11);
+            frameMiddleBack.AddChidren(listMidFrame);
+
+            var rowName = new FrameRowControl(listMidFrame.rowSpace / 2);
+            //鍏抽棴鐐瑰嚮鐘舵��
+            rowName.UseClickStatu = false;
+            listMidFrame.AddChidren(rowName);
+            //搴曠嚎
+            var btnNameLine = rowName.AddBottomLine();
+            //鍚嶇ОView
+            rowName.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uName), 350);
+            //鍚嶇О杈撳叆
+            var txtName = new TextInputControl(700, true);
+            txtName.MaxByte = 36;//闄愬埗36涓瓧鑺�
+            txtName.UseFocusColor = true;
+            txtName.X = bodyFrameLayout.Width - Application.GetRealWidth(700) - ControlCommonResourse.XXLeft;
+            txtName.Gravity = Gravity.CenterVertical;
+            txtName.TextAlignment = TextAlignment.CenterRight;
+            txtName.Text = UserCenterResourse.UserInfo.UserName;
+            rowName.AddChidren(txtName, ChidrenBindMode.NotBind);
+            txtName.Y += listMidFrame.rowSpace / 2;
+            //杈撳叆缁撴潫浜嬩欢
+            txtName.FinishInputEvent += (() =>
+            {
+                //鏇存柊鐢ㄦ埛鍚�
+                this.SaveUserName(txtName, true);
+            });
+            //杈撳叆鍊兼敼鍙樹簨浠�(2020.04.05:浠ュ墠閮藉畾姝昏鎸夊洖杞﹂敭鎵嶆洿鏂�,鐜板湪鍙堣鍚嶅瓧娌℃湁鍚屾
+            //鎵�浠ユ墠鍑烘涓嬬瓥,娣诲姞杩欎釜浜嬩欢)
+            txtName.TextChangedEvent += (value) =>
+            {
+                UserCenterResourse.UserInfo.UserName = value;
+            };
+            //鍏夋爣鏀瑰彉浜嬩欢(2020.04.05:浠ュ墠閮藉畾姝昏鎸夊洖杞﹂敭鎵嶆洿鏂�,鐜板湪鍙堣鍚嶅瓧娌℃湁鍚屾
+            //鎵�浠ユ墠鍑烘涓嬬瓥,娣诲姞杩欎釜浜嬩欢)
+            txtName.FoucsChanged += (sender, focusEvent) =>
+            {
+                //鍏夋爣绂诲紑鏃�,鎵ц鍚嶅瓧淇敼
+                if (focusEvent.Focus == false)
+                {
+                    //鏇存柊鐢ㄦ埛鍚�
+                    this.SaveUserName(txtName, false);
+                }
+            };
+
+            //鑱斿姩绾跨殑鐘舵��
+            txtName.btnLine = btnNameLine;
+
+            var rowQrCode = new FrameRowControl(listMidFrame.rowSpace / 2);
+            listMidFrame.AddChidren(rowQrCode);
+            //搴曠嚎
+            rowQrCode.AddBottomLine();
+            //浜岀淮鐮�
+            rowQrCode.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uQRCode), 350);
+            var btnQrCode = rowQrCode.AddMostRightEmptyIcon(92, 92);
+            btnQrCode.UnSelectedImagePath = "Item/QRCode.png";
+            rowQrCode.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new QRCodeForm();
+                form.AddForm();
+            };
+
+            var rowEmail = new FrameRowControl(listMidFrame.rowSpace / 2);
+            listMidFrame.AddChidren(rowEmail);
+            //搴曠嚎
+            rowEmail.AddBottomLine();
+            //閭View
+            rowEmail.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uEmail), 350);
+            //娣诲姞鍚戝彸鍥炬爣
+            rowEmail.AddRightArrow();
+            //閭
+            var btnEmail = rowEmail.AddMostRightView(UserCenterResourse.UserInfo.Email, 500);
+            if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Email) == true)
+            {
+                //鏈缃�,璇风粦瀹�
+                btnEmail.TextID = R.MyInternationalizationString.uNotSettionAndPleaseBind;
+            }
+            rowEmail.ButtonClickEvent += (sender, e) =>
+            {
+                if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Email) == true)
+                {
+                    var form = new Password.CheckNewEmailForm();
+                    form.AddForm();
+                }
+                else
+                {
+                    var form = new Password.CheckOldEmailForm();
+                    form.AddForm();
+                }
+            };
+
+            var rowPhone = new FrameRowControl(listMidFrame.rowSpace / 2);
+            listMidFrame.AddChidren(rowPhone);
+            //搴曠嚎
+            rowPhone.AddBottomLine();
+            //鎵嬫満鍙稸iew
+            rowPhone.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uPhone), 350);
+            //娣诲姞鍚戝彸鍥炬爣
+            rowPhone.AddRightArrow();
+            //鎵嬫満鍙�
+            var btnPhone = rowPhone.AddMostRightView(UserCenterResourse.UserInfo.Phone, 500);
+            if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Phone) == true)
+            {
+                //鏈缃�,璇风粦瀹�
+                btnPhone.TextID = R.MyInternationalizationString.uNotSettionAndPleaseBind;
+            }
+            else
+            {
+                string phoneNum = UserCenterResourse.UserInfo.Phone;
+                if (phoneNum.Length >= 11)
+                {
+                    phoneNum = phoneNum.Substring(0, 3) + "".PadLeft(phoneNum.Length - 7, '*') + phoneNum.Substring(phoneNum.Length - 4, 4);
+                }
+                else if (phoneNum.Length >= 5)
+                {
+                    //鎴栬杩欐槸鍥藉鐨勬墜鏈哄惂
+                    phoneNum = phoneNum.Substring(0, 3) + "".PadLeft(phoneNum.Length - 5, '*') + phoneNum.Substring(phoneNum.Length - 2, 2);
+                }
+                btnPhone.Text = "+" + UserCenterResourse.UserInfo.AreaCode + " " + phoneNum;
+            }
+            rowPhone.ButtonClickEvent += (sender, e) =>
+            {
+                if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Phone) == true)
+                {
+                    var form = new Password.CheckNewPhoneForm();
+                    form.AddForm();
+                }
+                else
+                {
+                    var form = new Password.CheckOldPhoneForm();
+                    form.AddForm();
+                }
+            };
+
+          
+            var rowOther = new FrameRowControl(listMidFrame.rowSpace / 2);
+            //listMidFrame.AddChidren(rowOther);
+            //绗笁鏂硅处鍙�
+            rowOther.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uAuthenticatedOtherPartyAccount), 400);
+            //搴曠嚎
+            rowOther.AddBottomLine();
+            //娣诲姞鍚戝彸鍥炬爣
+            rowOther.AddRightArrow();
+            //寰俊銆丵Q
+            //var btnQQ = rowOther.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uWebChatAndQQ), 500);
+            var btnQQ = rowOther.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uWebChat), 500);
+            rowOther.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new OtherParty.OtherPartyAccountMenuForm();
+                form.AddForm();
+            };
+
+            var rowSysPsw = new FrameRowControl(listMidFrame.rowSpace / 2);
+            listMidFrame.AddChidren(rowSysPsw);
+            //娣诲姞搴曠嚎
+            rowSysPsw.AddBottomLine();
+            //绯荤粺瀵嗙爜
+            rowSysPsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSystemPassword), 350);
+            //娣诲姞鍚戝彸鍥炬爣
+            rowSysPsw.AddRightArrow();
+            //鍘讳慨鏀�
+            var btnPsw = rowSysPsw.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uGotoEditor), 350);
+            rowSysPsw.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new Password.EditorAccountPasswordForm();
+                form.AddForm();
+            };
+
+            var rowSecond = new FrameRowControl(listMidFrame.rowSpace / 2);
+            listMidFrame.AddChidren(rowSecond);
+            //浜屾瀹夊叏楠岃瘉
+            rowSecond.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSecondAuthentication), 350);
+            //娣诲姞鍚戝彸鍥炬爣
+            rowSecond.AddRightArrow();
+            //瀵嗙爜銆佹墜鍔裤�佹寚绾�
+            var btnSecand = rowSecond.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uPasswordGestureFingerPrint), 400);
+            rowSecond.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new SecondAuthenticationForm();
+                form.AddForm();
+            };
+        }
+        #endregion
+
+        #region 鈻� 鍒濆鍖栦笅娈垫帶浠禵____________________
+
+        /// <summary>
+        /// 鍒濆鍖栭��鍑鸿处鍙风殑FrameLayout
+        /// </summary>
+        private void InitLogoutFrameLayout()
+        {
+            var specialFrame = new FrameLayout();
+            specialFrame.Height = ControlCommonResourse.ListViewRowHeight;
+            specialFrame.Y = Application.GetRealHeight(1394) - ControlCommonResourse.ListViewRowHeight - Application.GetRealHeight(12);
+            specialFrame.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(specialFrame);
+
+            //閫�鍑虹櫥闄�
+            var btnLogout = new NormalClickButton(specialFrame.Width, specialFrame.Height);
+            btnLogout.clickStatuColor = 0xfffbfbfb;
+            btnLogout.TextID = R.MyInternationalizationString.uLogoutAccount;
+            btnLogout.TextColor = 0xff666666;
+            btnLogout.BackgroundColor = UserCenterColor.Current.White;
+            specialFrame.AddChidren(btnLogout);
+
+            btnLogout.ButtonClickEvent += (sender, e) =>
+            {
+                //纭畾閫�鍑哄綋鍓嶈处鍙凤紵
+                string msg = Language.StringByID(R.MyInternationalizationString.uLogoutAccountMsg);
+                this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+                {
+                    //閫�鍑鸿处鍙�
+                    UserCenterLogic.ReLoginAgain(Common.Config.Instance.Account);
+                });
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鏇存柊鐢ㄦ埛鍚峗________________________
+
+        /// <summary>
+        /// 鏇存柊鐢ㄦ埛鍚�
+        /// </summary>
+        /// <param name="txtName"></param>
+        private void SaveUserName(TextInputControl txtName, bool showMsg)
+        {
+            if (UserCenterResourse.UserInfo.UserName == string.Empty)
+            {
+                //鎶婂悕绉拌繕鍘熷洖鍘�
+                txtName.Text = UserCenterResourse.UserInfo.OldUserName;
+                UserCenterResourse.UserInfo.UserName = UserCenterResourse.UserInfo.OldUserName;
+                return;
+            }
+            if (UserCenterResourse.UserInfo.OldUserName == UserCenterResourse.UserInfo.UserName)
+            {
+                //鏃犻渶淇敼
+                return;
+            }
+            var pra = new SaveUserNamePra();
+            pra.UserName = UserCenterResourse.UserInfo.UserName;
+
+            bool result = UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/UpdateUserName", false, pra);
+            if (result == false)
+            {
+                return;
+            }
+
+            if (showMsg == true)
+            {
+                //鐢ㄦ埛鍚嶇О淇敼鎴愬姛!
+                string msg = Language.StringByID(R.MyInternationalizationString.uUserNameSaveSuccess);
+                this.ShowMassage(ShowMsgType.Tip, msg);
+            }
+
+            UserCenterResourse.UserInfo.OldUserName = UserCenterResourse.UserInfo.UserName;
+        }
+
+        #endregion
+
+        #region 鈻� 鏄剧ず鑾峰彇鍥剧墖鏉ユ簮鑿滃崟_______________
+
+        /// <summary>
+        /// 鏄剧ず鑾峰彇鍥剧墖鏉ユ簮鑿滃崟
+        /// </summary>
+        /// <param name="btnUser"></param>
+        private void ShowUserIconMenu(ImageView btnUser)
+        {
+            var menuContr = new BottomMenuSelectForm();
+            menuContr.AddForm(2);
+            //鎷嶇収
+            menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.uTakePictrue), () =>
+            {
+                //閫氳繃鐩告満鎷嶇収瑁佸壀
+                CropImage.TakePicture((imagePath) =>
+                {
+                    if (string.IsNullOrEmpty(imagePath) == false)
+                    {
+                        //绉诲姩鐢ㄦ埛澶村儚鏂囦欢
+                        if (this.MoveUserIconFile(imagePath) == true)
+                        {
+                            //涓婁紶鐢ㄦ埛澶村儚鏂囦欢
+                            this.UpLoadUserIconFile(btnUser, UserCenterResourse.UserInfo.UserIconFile);
+                        }
+                    }
+                }, "HdlPicture");
+            });
+            //浠庣浉鍐屼腑閫夋嫨
+            menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.uGetPictrueFromAlbum), () =>
+            {
+                //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
+                CropImage.SelectPicture((imagePath) =>
+                {
+                    if (string.IsNullOrEmpty(imagePath) == false)
+                    {
+                        //绉诲姩鐢ㄦ埛澶村儚鏂囦欢
+                        if (this.MoveUserIconFile(imagePath) == true)
+                        {
+                            //涓婁紶鐢ㄦ埛澶村儚鏂囦欢
+                            this.UpLoadUserIconFile(btnUser, UserCenterResourse.UserInfo.UserIconFile);
+                        }
+                    }
+                }, "HdlPicture");
+            });
+        }
+
+        /// <summary>
+        /// 涓婁紶鐢ㄦ埛澶村儚鏂囦欢
+        /// </summary>
+        /// <param name="btnUser"></param>
+        /// <param name="imagePath"></param>
+        private void UpLoadUserIconFile(ImageView btnUser, string imagePath)
+        {
+            var pra = new { HeadImage = Shared.IO.FileUtils.ReadFile(imagePath) };
+            var result = UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/UpdateHeadImage", false, pra);
+            if (result == true)
+            {
+                UserCenterResourse.UserInfo.UserIconFileChanged = true;
+                btnUser.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
+            }
+        }
+
+        /// <summary>
+        /// 绉诲姩鐢ㄦ埛澶村儚鏂囦欢
+        /// </summary>
+        /// <param name="imagePath"></param>
+        /// <returns></returns>
+        private bool MoveUserIconFile(string imagePath)
+        {
+            try
+            {
+                if (System.IO.File.Exists(UserCenterResourse.UserInfo.UserIconFile) == true)
+                {
+                    System.IO.File.Delete(UserCenterResourse.UserInfo.UserIconFile);
+                }
+                //绉诲姩鏂囦欢
+                System.IO.File.Move(imagePath, UserCenterResourse.UserInfo.UserIconFile);
+                return true;
+            }
+            catch (Exception ex)
+            {
+                //鍑虹幇鏈煡閿欒
+                var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
+                alert.Show();
+                //Log
+                HdlLogLogic.Current.WriteLog(ex);
+                return false;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+        /// <summary>
+        /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+        /// </summary>
+        public override int FormActionAgainEvent()
+        {
+            //鍒濆鍖栦腑閮ㄧ殑淇℃伅
+            this.InitMiddleBodyFrame();
+
+            return 1;
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0