From 18b93d511dc764b469d7c4a7e755f7274f89cdb4 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 27 四月 2020 17:55:14 +0800
Subject: [PATCH] 2020-4-27-1

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/ShowDoorLockMsgControl.cs |  125 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 111 insertions(+), 14 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/ShowDoorLockMsgControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/ShowDoorLockMsgControl.cs
index 366e7e6..8d6df41 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/ShowDoorLockMsgControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/ShowDoorLockMsgControl.cs
@@ -11,27 +11,38 @@
     public class ShowDoorLockMsgControl
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
+        /// <summary>
+        /// 鐐瑰嚮澶辨晥鍥炶皟鐨勪簨浠�
+        /// </summary>
         public Action<string> InvalidTimeAction = null;
         /// <summary>
-        /// 鐐瑰嚮鍙栨秷鐨勪簨浠�
+        /// 鐐瑰嚮鍙栨秷鐨勫洖璋冧簨浠�
         /// </summary>
         public Action CancelClickEvent = null;
         /// <summary>
-        /// 鐐瑰嚮鑷姩鍖栫殑浜嬩欢
+        /// 鐐瑰嚮鑷姩鍖栫殑鍥炶皟浜嬩欢
         /// </summary>
         public Action LogicClickEvent = null;
         /// <summary>
-        /// 鐐瑰嚮纭鐨勪簨浠�
+        /// 鐐瑰嚮纭鐨勫洖璋冧簨浠�
         /// </summary>
         public Action InvalidClickEvent = null;
         /// <summary>
-        /// 鐐瑰嚮纭鐨勪簨浠�
+        /// 鐐瑰嚮纭鐨勫洖璋冧簨浠�
         /// </summary>
         public Action ConfirmClickEvent = null;
+        /// <summary>
+        /// 鐐瑰嚮寮圭獥鑳屾櫙鍥炶皟浜嬩欢
+        /// </summary>
+        public Action MsgControlClickEvent = null;
         /// <summary>
         /// 淇℃伅绫诲瀷
         /// </summary>
         private DoorLockMsgType msgType = DoorLockMsgType.Confirm;
+        /// <summary>
+        /// 寮圭獥鑳屾櫙
+        /// </summary>
+        public FrameLayout MsgControlFrameLayout = null;
         /// <summary>
         /// 娑堟伅
         /// </summary>
@@ -96,9 +107,17 @@
                 return;
             }
             //涓绘帶浠�
-            var frameMain = new FrameLayout();
-            frameMain.BackgroundColor = UserCenterColor.Current.DialogBackColor;
-            ((ViewGroup)nowForm).AddChidren(frameMain);
+            MsgControlFrameLayout = new FrameLayout();
+            MsgControlFrameLayout.BackgroundColor = UserCenterColor.Current.DialogBackColor;
+            ((ViewGroup)nowForm).AddChidren(MsgControlFrameLayout);
+            MsgControlFrameLayout.MouseDownEventHandler += (sender, e) =>
+            {
+                //绉婚櫎鐣岄潰
+                MsgControlFrameLayout.RemoveFromParent();
+                //鍥炶皟鍑芥暟
+                this.MsgControlClickEvent?.Invoke();
+                this.MsgControlClickEvent = null;
+            };
 
             //鐧借壊鑳屾櫙妗�
             var frameBack = new FrameLayout();
@@ -117,7 +136,7 @@
                 frameBack.Width = Application.GetRealWidth(792);
                 frameBack.Y = Application.GetRealHeight(706);
             }
-            frameMain.AddChidren(frameBack);
+            MsgControlFrameLayout.AddChidren(frameBack);
 
             //鏍囬
             var btnTitle = new NormalViewControl(frameBack.Width, Application.GetRealHeight(65), false);
@@ -160,15 +179,15 @@
                 btnMsg.Text = msgText;
             }
 
-            if (msgType == DoorLockMsgType.Confirm || msgType == DoorLockMsgType.InValid || msgType == DoorLockMsgType.NomallyOpenMode)
+            if (msgType == DoorLockMsgType.Confirm || msgType == DoorLockMsgType.InValid || msgType == DoorLockMsgType.NomallyOpenMode || msgType == DoorLockMsgType.CancelNomallyOpenModeWithLogic)
             {
                 //鍒濆鍖栫‘璁ょ被鍨嬬殑搴曢儴鎸夐挳
-                this.InitBottomConfirmButton(frameMain, frameBack);
+                this.InitBottomConfirmButton(MsgControlFrameLayout, frameBack);
             }
-            else if (msgType == DoorLockMsgType.DoorLockLogic || msgType == DoorLockMsgType.CancelNomallyOpenModeWithLogic)
+            else if (msgType == DoorLockMsgType.DoorLockLogic)
             {
                 //澶辨晥璁剧疆鐨勫簳閮ㄦ寜閽�
-                this.InitBottomLogicButton(frameMain, frameBack);
+                this.InitBottomLogicButton(MsgControlFrameLayout, frameBack);
             }
         }
 
@@ -243,8 +262,30 @@
                 TextSize = 14,
                 Text = DoorLockCommonInfo.NormallyOpenModeInvalidTime.ToString(),
                 PlaceholderTextColor = ZigbeeColor.Current.XMGray3,
+                IsNumberKeyboardType = true,
             };
             editTextFrameLayout.AddChidren(editInvalidTime);
+            editInvalidTime.TextChangeEventHandler += (sender, e) =>
+            {
+                if (!string.IsNullOrEmpty((sender as EditText).Text))
+                {
+                    var textFir = (sender as EditText).Text.Substring(0, 1);
+                    if ((sender as EditText).Text.Length > 1)
+                    {
+                        if (textFir == "0")
+                        {
+                            editInvalidTime.Text = (sender as EditText).Text.Substring(1, 1);
+                        }
+                    }
+                    if (int.Parse((sender as EditText).Text) > 72)
+                    {
+                        string msg0 = Language.StringByID(R.MyInternationalizationString.InvalidTimeMoreThan72);
+                        var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, msg0, Language.StringByID(R.MyInternationalizationString.confrim));
+                        alert.Show();
+                        editInvalidTime.Text = "72";
+                    }
+                }
+            };
 
             var btnMsg2 = new Button()
             {
@@ -305,7 +346,7 @@
             var btnCancel = new BottomLeftClickButton(Application.GetRealWidth(396), Application.GetRealHeight(127));
             frameBack.AddChidren(btnCancel);
             var bottomLeftText = Language.StringByID(R.MyInternationalizationString.uCancel);
-            if (msgType == DoorLockMsgType.NomallyOpenMode)
+            if (msgType == DoorLockMsgType.NomallyOpenMode || msgType == DoorLockMsgType.CancelNomallyOpenModeWithLogic)
             {
                 bottomLeftText = Language.StringByID(R.MyInternationalizationString.KeepNomallyMode);
             }
@@ -325,13 +366,22 @@
             btnConfirm.InitControl(buttonOkText);
             btnConfirm.ButtonClickEvent += (sender, e) =>
             {
+                string textValue = string.Empty;
+                if (editInvalidTime != null)
+                {
+                    textValue = editInvalidTime.Text.Trim();
+                    if (this.CheckInvalidTime(textValue.TrimStart('0')) == false)
+                    {
+                        return;
+                    }
+                }
                 //绉婚櫎鐣岄潰
                 frameMain.RemoveFromParent();
                 if (msgType == DoorLockMsgType.InValid)
                 {
                     if (InvalidTimeAction != null)
                     {
-                        InvalidTimeAction(editInvalidTime.Text);
+                        InvalidTimeAction(textValue);
                     }
                 }
                 else
@@ -343,6 +393,53 @@
             };
         }
 
+        /// <summary>
+        /// 妫�娴嬪け鏁堟椂闂�
+        /// </summary>
+        /// <param name="tetxValue"></param>
+        /// <returns></returns>
+        private bool CheckInvalidTime(string tetxValue)
+        {
+            if (tetxValue == string.Empty)
+            {
+                var msg = Language.StringByID(R.MyInternationalizationString.InvalidTimeIsEmpty);
+                var msgContr = new ShowMsgControl(ShowMsgType.Error, msg);
+                msgContr.Show();
+                return false;
+            }
+            foreach (var c in tetxValue)
+            {
+                if (char.IsNumber(c) == false)
+                {
+                    return false;
+                }
+            }
+            if (tetxValue.Length >= 3)
+            {
+                var msg = Language.StringByID(R.MyInternationalizationString.InvalidTimeMoreThan72);
+                var msgContr = new ShowMsgControl(ShowMsgType.Error, msg);
+                msgContr.Show();
+                return false;
+            }
+
+            int value = Convert.ToInt32(tetxValue);
+            if (value <= 0)
+            {
+                var msg = Language.StringByID(R.MyInternationalizationString.InvalidTimeLessThan1);
+                var msgContr = new ShowMsgControl(ShowMsgType.Error, msg);
+                msgContr.Show();
+                return false;
+            }
+            if (value > 72)
+            {
+                var msg = Language.StringByID(R.MyInternationalizationString.InvalidTimeMoreThan72);
+                var msgContr = new ShowMsgControl(ShowMsgType.Error, msg);
+                msgContr.Show();
+                return false;
+            }
+            return true;
+        }
+
         #endregion
 
         /// <summary>

--
Gitblit v1.8.0