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/CommonBase/Controls/MessageControls/ShowMsgControl.cs |  138 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 131 insertions(+), 7 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs
index c4d31b4..a0dcd82 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs
@@ -19,6 +19,10 @@
         /// </summary>
         public Action CancelClickEvent = null;
         /// <summary>
+        /// 鐐瑰嚮鑳屾櫙鏄惁鍏抽棴寮圭獥
+        /// </summary>
+        public bool CloseByClickBack = true;
+        /// <summary>
         /// 淇℃伅绫诲瀷
         /// </summary>
         private ShowMsgType msgType = ShowMsgType.Confirm;
@@ -38,6 +42,10 @@
         /// 鎻愮ず鎺т欢
         /// </summary>
         private Tip myTip = null;
+        /// <summary>
+        /// 绛夊緟鏃堕棿
+        /// </summary>
+        private int WaitTime = -1;
 
         #endregion
 
@@ -50,13 +58,15 @@
         /// <param name="i_msg">淇℃伅</param>
         /// <param name="i_buttonOkText">纭鎸夐挳鐨勬枃鏈�</param>
         /// <param name="i_buttonCancelText">鍙栨秷鎸夐挳鐨勬枃鏈�</param>
-        public ShowMsgControl(ShowMsgType i_msgType, string i_msg, string i_buttonOkText = null, string i_buttonCancelText = null)
+        /// <param name="i_waitTime">绛夊緟鏃堕棿,鍗曚綅涓虹,璁剧疆纭鎸夐挳鍦ㄥ闀挎椂闂村悗鎵嶈兘澶熺偣鍑�</param>
+        public ShowMsgControl(ShowMsgType i_msgType, string i_msg, string i_buttonOkText = null, string i_buttonCancelText = null, int i_waitTime = -1)
         {
             //纭鎸夐挳鏂囨湰
             this.buttonOkText = i_buttonOkText == null ? Language.StringByID(R.MyInternationalizationString.OkMsg) : i_buttonOkText;
             this.buttonCancelText = i_buttonCancelText == null ? Language.StringByID(R.MyInternationalizationString.uCancel) : i_buttonCancelText;
             this.msgType = i_msgType;
             this.msgText = i_msg;
+            this.WaitTime = i_waitTime;
 
             if (i_msgType == ShowMsgType.Tip)
             {
@@ -100,14 +110,18 @@
         private void InitMsgControl()
         {
             //涓绘帶浠�
-            var frameMain = new FrameLayout();
+            var frameMain = new NormalFrameLayout();
+            frameMain.MainKey = "ShowMsg";
             frameMain.BackgroundColor = UserCenterColor.Current.DialogBackColor;
             Common.CommonPage.Instance.AddChidren(frameMain);
             frameMain.MouseUpEventHandler += (sender, e) =>
             {
-                //绉婚櫎鐣岄潰
-                frameMain.RemoveFromParent();
-                this.ConfirmClickEvent = null;
+                if (this.CloseByClickBack == true)
+                {
+                    //绉婚櫎鐣岄潰
+                    frameMain.RemoveFromParent();
+                    this.ConfirmClickEvent = null;
+                }
             };
 
             //鐧借壊鑳屾櫙妗�
@@ -170,7 +184,7 @@
         /// </summary>
         /// <param name="frameMain"></param>
         /// <param name="frameBack"></param>
-        private void InitBottomConfirmButton(FrameLayout frameMain, FrameLayout frameBack)
+        private void InitBottomConfirmButton(NormalFrameLayout frameMain, FrameLayout frameBack)
         {
             //鍙栨秷鎸夐挳
             var btnCancel = new BottomLeftClickButton(Application.GetRealWidth(396), Application.GetRealHeight(127));
@@ -199,6 +213,8 @@
                 this.ConfirmClickEvent = null;
                 this.CancelClickEvent = null;
             };
+            //寮�鍚瓑寰呮椂闂�
+            this.StartWaitTime(btnConfirm);
         }
 
         /// <summary>
@@ -206,7 +222,7 @@
         /// </summary>
         /// <param name="frameMain"></param>
         /// <param name="frameBack"></param>
-        private void InitBottomNormalButton(FrameLayout frameMain, FrameLayout frameBack)
+        private void InitBottomNormalButton(NormalFrameLayout frameMain, FrameLayout frameBack)
         {
 #if Android
             //纭
@@ -272,6 +288,114 @@
                 this.ConfirmClickEvent = null;
             };
 #endif
+            //寮�鍚瓑寰呮椂闂�
+            this.StartWaitTime(btnConfirm);
+        }
+
+        #endregion
+
+        #region 鈻� 寮�鍚瓑寰呮椂闂確______________________
+
+        /// <summary>
+        /// 寮�鍚瓑寰呮椂闂�(姝ゅ嚱鏁板彧鐢ㄤ簬瀹夊崜)
+        /// </summary>
+        /// <param name="btnConfirm">纭鎸夐挳</param>
+        private void StartWaitTime(BottomRightClickButton btnConfirm)
+        {
+            if (this.WaitTime <= 0)
+            {
+                return;
+            }
+
+            btnConfirm.CanClick = false;
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鏄剧ず鍓╀綑绛夊緟鏃堕棿
+                while (btnConfirm.Parent != null && this.WaitTime >= 0)
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        btnConfirm.SetButtonText(this.buttonOkText + "(" + this.WaitTime + ")");
+                    }, ShowErrorMode.NO);
+                    System.Threading.Thread.Sleep(1000);
+                    this.WaitTime--;
+                }
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍙互鐐瑰嚮
+                    btnConfirm.SetButtonText(this.buttonOkText);
+                    btnConfirm.CanClick = true;
+                }, ShowErrorMode.NO);
+            });
+        }
+
+        /// <summary>
+        /// 寮�鍚瓑寰呮椂闂�
+        /// </summary>
+        /// <param name="btnConfirm">纭鎸夐挳</param>
+        private void StartWaitTime(ButtonBase btnConfirm)
+        {
+            if (this.WaitTime <= 0)
+            {
+                return;
+            }
+#if Android
+            ((FrameLayoutStatuControl)btnConfirm.Parent).CanClick = false;
+#endif
+#if iOS
+            btnConfirm.CanClick = false;
+#endif
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鏄剧ず鍓╀綑绛夊緟鏃堕棿
+                while (btnConfirm.Parent != null && this.WaitTime >= 0)
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        btnConfirm.Text = this.buttonOkText + "(" + this.WaitTime + ")";
+                    }, ShowErrorMode.NO);
+                    System.Threading.Thread.Sleep(1000);
+                    this.WaitTime--;
+                }
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍙互鐐瑰嚮
+                    btnConfirm.Text = this.buttonOkText;
+#if Android
+                    ((FrameLayoutStatuControl)btnConfirm.Parent).CanClick = true;
+#endif
+#if iOS
+                    btnConfirm.CanClick = true;
+#endif
+                }, ShowErrorMode.NO);
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鍏抽棴寮圭獥(澶栭儴璋冪敤)_________________
+
+        /// <summary>
+        /// 鍏抽棴鍏ㄩ儴鐨勫脊绐�
+        /// </summary>
+        public static void CloseAllMsgDialog()
+        {
+            while (true)
+            {
+                var myView = Common.CommonPage.Instance.GetChildren(Common.CommonPage.Instance.ChildrenCount - 1);
+                if (myView == null) { return; }
+                if (myView is NormalFrameLayout)
+                {
+                    if (((NormalFrameLayout)myView).MainKey != "ShowMsg")
+                    {
+                        return;
+                    }
+                    //绉婚櫎
+                    myView.RemoveFromParent();
+                    continue;
+                }
+                return;
+            }
         }
 
         #endregion

--
Gitblit v1.8.0