From d78515ac4ac8cf4a1785d9df18058d6724f12b79 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 14 一月 2021 19:34:59 +0800
Subject: [PATCH] 合并xm2021-01-13  wjc2021-02-06

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AirQualitySensorLogic.cs |  207 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 163 insertions(+), 44 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AirQualitySensorLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AirQualitySensorLogic.cs
index d4a05bf..66ee203 100644
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AirQualitySensorLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AirQualitySensorLogic.cs
@@ -25,7 +25,13 @@
             {
                 curLedTimeData = ledTimeData;
             }
-            setLedTimeData = curLedTimeData;
+            setLedTimeData.enable= curLedTimeData.enable;
+            setLedTimeData.endHour = curLedTimeData.endHour;
+            setLedTimeData.endMin = curLedTimeData.endMin;
+            setLedTimeData.remark = curLedTimeData.remark;
+            setLedTimeData.serialNum = curLedTimeData.serialNum;
+            setLedTimeData.startHour = curLedTimeData.startHour;
+            setLedTimeData.startMin = curLedTimeData.startMin;
             this.curNum = curNum;
         }
 
@@ -41,7 +47,7 @@
         /// <summary>
         /// 鐏缃伅鏁版嵁
         /// </summary>
-        TemperatureSensor.LedTimeData setLedTimeData = new TemperatureSensor.LedTimeData();
+        TimeData setLedTimeData = new TimeData();
         /// <summary>
         /// 褰撳墠瀛樺湪鐨勭伅鏁版嵁
         /// </summary>
@@ -51,6 +57,10 @@
         /// </summary>
         EditText nameLed;
         public Action refreshAction;
+        /// <summary>
+        /// 褰撳墠鎿嶄綔绱㈠紩
+        /// </summary>
+        private int curOperateIndex = 0;
         #endregion
 
         /// <summary>
@@ -128,11 +138,11 @@
             logicnamefl.AddChidren(nameLed);
             if (string.IsNullOrEmpty(curLedTimeData.remark))
             {
-                nameLed.PlaceholderText = Language.StringByID(MyInternationalizationString.LEDSet);
+                nameLed.Text = Language.StringByID(MyInternationalizationString.LEDSet);
             }
             else
             {
-                nameLed.PlaceholderText = curLedTimeData.remark;
+                nameLed.Text = curLedTimeData.remark;
             }
             #endregion
 
@@ -268,7 +278,7 @@
              {
                  try
                  {
-                     if (setLedTimeData.startHour == 0)
+                     if (setLedTimeData.startHour == -1)
                      {
                          Application.RunOnMainThread(() =>
                    {
@@ -276,7 +286,7 @@
                    });
                          return;
                      }
-                     if (setLedTimeData.endHour == 0)
+                     if (setLedTimeData.endHour == -1)
                      {
                          Application.RunOnMainThread(() =>
                    {
@@ -284,6 +294,13 @@
                    });
                          return;
                      }
+
+                     if (!CheckValidTime(setLedTimeData.startHour, setLedTimeData.startMin, setLedTimeData.endHour, setLedTimeData.endMin))
+                     {
+                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.LedBindTip1), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
+                         return;
+                     }
+
                      Application.RunOnMainThread(() =>
                {
                    CommonPage.Loading.Start("");
@@ -295,6 +312,19 @@
                      else
                      {
                          setLedTimeData.remark = nameLed.Text;
+                     }
+
+                     if (!string.IsNullOrEmpty(setLedTimeData.remark))
+                     {
+                         var reamarkGwBytes = System.Text.Encoding.UTF8.GetBytes(setLedTimeData.remark);
+                         if (36 < reamarkGwBytes.Length)
+                         {
+                             Application.RunOnMainThread(() =>
+                       {
+                           new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.LedNameTooLong), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
+                       });
+                             return;
+                         }
                      }
 
                      setLedTimeData.enable = 1;
@@ -315,19 +345,26 @@
                              }
                          }
                      }
-
-                     var result = await sensor.SetAirQualitySensorLedTime(setLedTimeData);
+                     TemperatureSensor.LedTimeData ledTimeDataTemp = new TemperatureSensor.LedTimeData();
+                     ledTimeDataTemp.enable = setLedTimeData.enable;
+                     ledTimeDataTemp.endHour = setLedTimeData.endHour;
+                     ledTimeDataTemp.endMin = setLedTimeData.endMin;
+                     ledTimeDataTemp.remark = setLedTimeData.remark;
+                     ledTimeDataTemp.serialNum = setLedTimeData.serialNum;
+                     ledTimeDataTemp.startHour = setLedTimeData.startHour;
+                     ledTimeDataTemp.startMin = setLedTimeData.startMin;
+                     var result = await sensor.SetAirQualitySensorLedTime(ledTimeDataTemp);
                      if (result != null && result.responseData != null)
                      {
                          if (result.responseData.status == 0)
                          {
                              if (sensor.AirQualitySensorLedTimeList.ContainsKey(setLedTimeData.serialNum))
                              {
-                                 sensor.AirQualitySensorLedTimeList[setLedTimeData.serialNum] = setLedTimeData;
+                                 sensor.AirQualitySensorLedTimeList[setLedTimeData.serialNum] = ledTimeDataTemp;
                              }
                              else
                              {
-                                 sensor.AirQualitySensorLedTimeList.Add(setLedTimeData.serialNum, setLedTimeData);
+                                 sensor.AirQualitySensorLedTimeList.Add(setLedTimeData.serialNum, ledTimeDataTemp);
                              }
                              Application.RunOnMainThread(() =>
                        {
@@ -370,6 +407,7 @@
             Action okAction = null;
             for (int i = 0; i < 2; i++)
             {
+                int curIndex = i;
                 var timeFrameLayout = new FrameLayout
                 {
                     Width = Application.GetRealWidth(867),
@@ -398,6 +436,7 @@
                     Height = Application.GetRealHeight(58),
                     X = Application.GetRealWidth(429),
                     Y = Application.GetRealHeight(32),
+                    Tag = curIndex,
                     TextAlignment = TextAlignment.CenterRight,
                     TextID = MyInternationalizationString.LEDSetTime,
                     TextColor = ZigbeeColor.Current.XMGray3,
@@ -413,12 +452,12 @@
                     BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
                 };
                 timeFrameLayout.AddChidren(line2);
-                int curIndex = i;
+
                 if (i == 1)
                 {
                     timeFrameLayout.Y = Application.GetRealHeight(331);
                     timeLeftText.TextID = MyInternationalizationString.endtime;
-                    if (curLedTimeData.endHour != 0)
+                    if (curLedTimeData.endHour != -1)
                     {
                         string em = curLedTimeData.endMin.ToString();
                         if (curLedTimeData.endMin < 10)
@@ -430,7 +469,7 @@
                 }
                 else
                 {
-                    if (curLedTimeData.startHour != 0)
+                    if (curLedTimeData.startHour != -1)
                     {
                         string sm = curLedTimeData.startMin.ToString();
                         if (curLedTimeData.startMin < 10)
@@ -462,7 +501,7 @@
             this.bottomRadiusFrameLayout.Y = Application.GetRealHeight(930 + 127);
             this.bottomRadiusFrameLayout.RemoveAll();
             this.BottomRadiusFrameLayout(this);
-
+            curOperateIndex = curIndex;
             var mUIPickerView = new UIPickerView()
             {
                 X = Application.GetRealWidth(0),
@@ -494,6 +533,13 @@
                 {
                     cur1 = 1;
                 }
+                else
+                {
+                    if (curLedTimeData.startHour ==0)
+                    {
+                        cur1 = 1;
+                    }
+                }
                 if (curLedTimeData.startHour != 0)
                 {
                     cur2 = curLedTimeData.startHour - 1;
@@ -501,6 +547,10 @@
                     {
                         cur2 = curLedTimeData.startHour - 13;
                     }
+                }
+                else
+                {
+                    cur2 = 11;
                 }
 
                 cur3 = curLedTimeData.startMin;
@@ -511,6 +561,13 @@
                 {
                     cur1 = 1;
                 }
+                else
+                {
+                    if (curLedTimeData.endHour == 0)
+                    {
+                        cur1 = 1;
+                    }
+                }
                 if (curLedTimeData.endHour != 0)
                 {
                     cur2 = curLedTimeData.endHour - 1;
@@ -518,6 +575,10 @@
                     {
                         cur2 = curLedTimeData.endHour - 13;
                     }
+                }
+                else
+                {
+                    cur2 = 11;
                 }
 
                 cur3 = curLedTimeData.endMin;
@@ -563,15 +624,61 @@
             };
             btnFinish.MouseUpEventHandler += (sender1, e1) =>
             {
-                if (setLedTimeData.endHour != 0)
+                if (curOperateIndex == 0)
                 {
-                    if (curIndex == 0)
+                    if (setLedTimeData.startHour == -1)
+                    {
+                        setLedTimeData.startHour = 1;
+                    }
+                    if (setLedTimeData.startHour == 24)
+                    {
+                        setLedTimeData.startHour = 0;
+                    }
+
+                    string sm = setLedTimeData.startMin.ToString();
+                    if (setLedTimeData.startMin < 10)
+                    {
+                        sm = "0" + setLedTimeData.startMin;
+                    }
+
+                    if (int.Parse(timeRightText.Tag.ToString()) == curOperateIndex)
+                    {
+                        timeRightText.Text = setLedTimeData.startHour + ":" + sm;
+                    }
+                }
+                else
+                {
+                    if (setLedTimeData.endHour == -1)
+                    {
+                        setLedTimeData.endHour = 1;
+                    }
+                    if (setLedTimeData.endHour == 24)
+                    {
+                        setLedTimeData.endHour = 0;
+                    }
+
+                    string em = setLedTimeData.endMin.ToString();
+                    if (setLedTimeData.endMin < 10)
+                    {
+                        em = "0" + setLedTimeData.endMin;
+                    }
+                    if (int.Parse(timeRightText.Tag.ToString()) == curOperateIndex)
+                    {
+                        timeRightText.Text = setLedTimeData.endHour + ":" + em;
+                    }
+                }
+
+                if (setLedTimeData.endHour != -1)
+                {
+                    //棣栨杈撳叆 聽聽聽聽
+                    if (curOperateIndex == 0)
                     {
                         if (!CheckValidTime(setLedTimeData.startHour, setLedTimeData.startMin, setLedTimeData.endHour, setLedTimeData.endMin))
                         {
                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.LedBindTip1), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
                             return;
                         }
+                        this.shadowRadiusFrameLayout.RemoveFromParent();
                     }
                     else
                     {
@@ -580,36 +687,13 @@
                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.LedBindTip2), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
                             return;
                         }
+                        this.shadowRadiusFrameLayout.RemoveFromParent();
                     }
-                }
-
-                if (curIndex == 0)
-                {
-                    if (setLedTimeData.startHour == 0)
-                    {
-                        setLedTimeData.startHour = 1;
-                    }
-                    string sm = setLedTimeData.startMin.ToString();
-                    if (setLedTimeData.startMin < 10)
-                    {
-                        sm = "0" + setLedTimeData.startMin;
-                    }
-                    timeRightText.Text = setLedTimeData.startHour + ":" + sm;
                 }
                 else
                 {
-                    if (setLedTimeData.endHour == 0)
-                    {
-                        setLedTimeData.endHour = 1;
-                    }
-                    string em = setLedTimeData.endMin.ToString();
-                    if (setLedTimeData.endMin < 10)
-                    {
-                        em = "0" + setLedTimeData.endMin;
-                    }
-                    timeRightText.Text = setLedTimeData.endHour + ":" + em;
+                    this.shadowRadiusFrameLayout.RemoveFromParent();
                 }
-                this.shadowRadiusFrameLayout.RemoveFromParent();
             };
             this.shadowRadiusFrameLayout.MouseUpEventHandler += (sender1, e1) =>
             {
@@ -623,16 +707,51 @@
         /// </summary>
         /// <returns></returns>
         private bool CheckValidTime(int st, int sm, int et, int em)
-        {
+        { 
             //寮�濮嬫椂闂�
-            string nowValue1 = st.ToString() + sm.ToString().PadLeft(2, '0');
+            string nowValue1 = "";
+            nowValue1 = st.ToString().PadLeft(2, '0') + sm.ToString().PadLeft(2, '0');
             //缁撴潫鏃堕棿
-            string nowValue2 = et.ToString() + em.ToString().PadLeft(2, '0');
+            string nowValue2 = "";
+            nowValue2 = et.ToString().PadLeft(2, '0') + em.ToString().PadLeft(2, '0');
             if (nowValue1.CompareTo(nowValue2) == 1)
             {
                 return false;
             }
             return true;
         }
+       
+        public class TimeData
+        {
+            /// <summary>
+            /// 搴忓彿(姝e父搴忓彿0锝�4锛屽叡5涓級
+            /// </summary>
+            public int serialNum = -1;
+            /// <summary>
+            /// 浣胯兘浣�
+            /// <para>0-鏃犳晥 1--鏈夋晥</para>
+            /// </summary>
+            public int enable = 0;
+            /// <summary>
+            /// 璧峰鏃�
+            /// </summary>
+            public int startHour = -1;
+            /// <summary>
+            /// 璧峰鍒�
+            /// </summary>
+            public int startMin;
+            /// <summary>
+            /// 缁撴潫鏃�
+            /// </summary>
+            public int endHour = -1;
+            /// <summary>
+            /// 缁撴潫鍒�
+            /// </summary>
+            public int endMin;
+            /// <summary>
+            /// 澶囨敞
+            /// </summary>
+            public string remark;
+        }
     }
 }

--
Gitblit v1.8.0