陈嘉乐
2021-01-07 d297fddadd429ffffbeb3f623f5ad860c33b3e5a
20201-1-7-1

完成日出日落正午等功能
10个文件已修改
423 ■■■■ 已修改文件
.vs/HDL_APP_Project/xs/UserPrefs.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/SpeciaTime.cs 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/Time3.cs 137 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -3,51 +3,39 @@
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/3-Intelligence/Automation/Time3.cs">
    <Files>
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs" Line="268" Column="79" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs" Line="358" Column="10" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs" Line="192" Column="24" />
      <File FileName="HDL-ON_Android/Assets/Language.ini" Line="512" Column="5" />
      <File FileName="HDL_ON/Common/R.cs" Line="505" Column="47" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/SpeciaTime.cs" Line="56" Column="41" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputTextView.cs" Line="37" Column="35" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs" Line="157" Column="31" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TopView.cs" Line="33" Column="30" />
      <File FileName="HDL_ON/UI/CSS/CSS.cs" Line="102" Column="42" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SelectTypeView.cs" Line="88" Column="34" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs" Line="454" Column="28" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs" Line="10" Column="16" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/Time3.cs" Line="122" Column="63" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs" Line="93" Column="72" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs" />
      <File FileName="HDL-ON_Android/Assets/Language.ini" Line="547" Column="5" />
      <File FileName="HDL_ON/Common/R.cs" Line="541" Column="32" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/SpeciaTime.cs" Line="89" Column="43" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputTextView.cs" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs" Line="109" Column="34" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SelectTypeView.cs" Line="5" Column="18" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/Time3.cs" Line="9" Column="16" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
        <State name="__root__">
          <Node name="HDL_APP_Project" expanded="True">
            <Node name="HDL_ON" expanded="True">
              <Node name="Common" expanded="True" />
              <Node name="UI" expanded="True">
                <Node name="CSS" expanded="True" />
                <Node name="UI2" expanded="True">
                  <Node name="3-Intelligence" expanded="True">
                    <Node name="Automation" expanded="True">
                      <Node name="LogicView" expanded="True" />
                      <Node name="Time3.cs" selected="True" />
                    </Node>
                  </Node>
                  <Node name="FuntionControlView" expanded="True" />
                </Node>
              </Node>
            </Node>
            <Node name="HDL-ON_Android" expanded="True">
              <Node name="Assets" expanded="True">
                <Node name="Phone" expanded="True">
                  <Node name="LogicIcon" expanded="True" />
                </Node>
              </Node>
              <Node name="Assets" expanded="True" />
            </Node>
            <Node name="HDL-ON_iOS" expanded="True">
              <Node name="Resources" expanded="True">
                <Node name="Phone" expanded="True">
                  <Node name="LogicIcon" expanded="True" />
                </Node>
                <Node name="Phone" expanded="True" />
              </Node>
            </Node>
          </Node>
.vs/HDL_APP_Project/xs/sqlite3/storage.ide
Binary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm
Binary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal
Binary files differ
HDL-ON_Android/Assets/Language.ini
@@ -544,6 +544,7 @@
7083=正午
7084=正点
7085=提前
7086=分钟
HDL-ON_iOS/Resources/Language.ini
@@ -538,6 +538,14 @@
7077=时间未设置,请设置时间。
7078=条件或者目标为空。
7079=网关不在线
7080=日出/日落/正午
7081=日出
7082=日落
7083=正午
7084=正点
7085=提前
7086=分钟
9000=请使用新的手机账号登录APP
9001=请使用新的邮箱账号登录APP
HDL_ON/Common/R.cs
@@ -538,6 +538,7 @@
        public const int at = 7083;
        public const int punctually = 7084;
        public const int advanced = 7085;
        public const int minute = 7086;
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -38,8 +38,75 @@
                            inputView.btnIcon.UnSelectedImagePath = "LogicIcon/time.png";
                            foreach (var dic in dicList)
                            {
                                string keyValue = dic["key"];
                                string value = dic["value"];
                                inputView.btnText.Text = Language.StringByID(StringId.hour) + ": " + value;
                                if (keyValue == "timepoint")
                                {
                                    inputView.btnText.Text = Language.StringByID(StringId.hour) + ": " + value;
                                }
                                else
                                {
                                    string strtext = "";
                                    string statetext = "";
                                    switch (keyValue)
                                    {
                                        case "before_sunrise":
                                            {
                                                strtext = Language.StringByID(StringId.sunrise);
                                                statetext = Language.StringByID(StringId.advanced);
                                            }
                                            break;
                                        case "before_sunset":
                                            {
                                                strtext = Language.StringByID(StringId.sunset);
                                                statetext = Language.StringByID(StringId.advanced);
                                            } break;
                                        case "before_noon":
                                            {
                                                strtext = Language.StringByID(StringId.at);
                                                statetext = Language.StringByID(StringId.advanced);
                                            }
                                            break;
                                        case "after_sunrise":
                                            {
                                                strtext = Language.StringByID(StringId.sunrise);
                                                statetext = Language.StringByID(StringId.delayLogic);
                                            } break;
                                        case "after_sunset":
                                            {
                                                strtext = Language.StringByID(StringId.sunset);
                                                statetext = Language.StringByID(StringId.delayLogic);
                                            } break;
                                        case "after_noon":
                                            {
                                                strtext = Language.StringByID(StringId.at);
                                                statetext = Language.StringByID(StringId.delayLogic);
                                            }
                                            break;
                                    }
                                    if (value != "0")
                                    {
                                        if (value == "30")
                                        {
                                            statetext += value + Language.StringByID(StringId.s);
                                        }
                                        else
                                        {
                                            statetext += value + Language.StringByID(StringId.minute);
                                        }
                                    }
                                    else
                                    {
                                        statetext = "";
                                    }
                                    inputView.btnText.Text = strtext;
                                    inputView.btnState.Text = statetext;
                                }
                            }
                        }
                        break;
@@ -127,15 +194,44 @@
                    {
                        case "1":
                            {
                                FrameLayout fLayout = new FrameLayout
                                bool is_bool = false;
                                Input _input = Logic.currlogic.input[indexVulae];
                                if (_input.condition_type == "1")
                                {
                                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                                };
                                thisView.AddChidren(fLayout);
                                TimeTpye timeTpye = new TimeTpye();
                                timeTpye.TimePoint(fLayout, edit, indexVulae);
                                    var dicLists = _input.condition as List<Dictionary<string, string>>;
                                    foreach (var dic in dicLists)
                                    {
                                        string keyValue = dic["key"];
                                        if (keyValue != "timepoint")
                                        {
                                            //通过键值查找键值是否是
                                            //(日出/日落/正午)
                                            is_bool = true;
                                            break;
                                        }
                                    }
                                }
                                if (is_bool)
                                {
                                    //跳转到(日出/日落/正午)界面
                                    SpeciaTime speciaTime = new SpeciaTime();
                                    MainPage.BasePageView.AddChidren(speciaTime);
                                    speciaTime.Show(edit, indexVulae);
                                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                                }
                                else
                                {
                                    //跳转到(时间点)界面
                                    FrameLayout fLayout = new FrameLayout
                                    {
                                        BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                                    };
                                    thisView.AddChidren(fLayout);
                                    TimeTpye timeTpye = new TimeTpye();
                                    timeTpye.TimePoint(fLayout, edit, indexVulae);
                                }
                            }
                            break;
                        case "2":
@@ -159,8 +255,6 @@
                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                            }
                            break;
                    }
                };
                ///删除控件
HDL_ON/UI/UI2/3-Intelligence/Automation/SpeciaTime.cs
@@ -3,15 +3,15 @@
using System.Collections.Generic;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
    public class SpeciaTime:FrameLayout
    public class SpeciaTime : FrameLayout
    {
        public SpeciaTime()
        {
            Tag = "Logic";
        }
        public void Show(bool edit=false, int index=-1)
        public void Show(bool edit = false, int index = -1)
        {
            #region  界面布局
            LogicView.TopView topView = new LogicView.TopView();
@@ -30,13 +30,30 @@
                BackgroundColor = CSS.CSS_Color.viewMiddle,
            };
            this.AddChidren(viewLayout);
            #endregion
            //(日出时,日落时,正午时)
            string str1 = "";
            //(提前,延时)
            string str2 = "";
            //(提前,延时多少分钟)
            string value= "";
            if (edit)
            {
                GetText(index, (s1, s2, s3) => {
                    str1 = s1;
                    str2 = s2;
                    value = s3;
                });
            }
            var list = new List<string> {
                Language.StringByID(StringId.sunrise)+Language.StringByID(StringId.h),
                Language.StringByID(StringId.sunset)+Language.StringByID(StringId.h),
                Language.StringByID(StringId.at)+Language.StringByID(StringId.h),
            };
            for (int i = 0; i < list.Count; i++)
            {
                LogicView.SelectTypeView timeView = new LogicView.SelectTypeView();
@@ -45,22 +62,111 @@
                timeView.btnText.X = Application.GetRealWidth(16);
                timeView.btnLine.X = Application.GetRealWidth(16);
                timeView.btnLine.Width = Application.GetRealWidth(375 - 16 - 16);
                timeView.btnText.Text= list[i];
                timeView.btnClick.Tag= list[i];
                timeView.btnText.Text = list[i];
                timeView.btnClick.Tag = list[i];
                if (str1 == list[i])
                {
                    string s = "";
                    if (value != "0")
                    {
                        if (value == "30")
                        {
                           s= str2 +value+ Language.StringByID(StringId.s);
                        }
                        else
                        {
                            s = str2 + value + Language.StringByID(StringId.minute);
                        }
                    }
                    timeView.btnState.Visible = true;
                    timeView.btnState.Text = s;
                }
                viewLayout.AddChidren(timeView.FLayoutView());
                timeView.btnClick.MouseUpEventHandler += (sen, e) =>
                {
                    Time3 time3 = new Time3();
                    MainPage.BasePageView.AddChidren(time3);
                    time3.Show(timeView.btnClick.Tag.ToString(),edit,index);
                    time3.Show(timeView.btnClick.Tag.ToString(), edit, index);
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                };
            }
            #endregion
        }
        /// <summary>
        /// 获之前状态值
        /// </summary>
        /// <param name="index"></param>
        /// <param name="action"></param>
        public void GetText(int index, Action<string, string, string> action) {
            //(日出时,日落时,正午时)
            string str1 = "";
            //(提前,延时)
            string str2 = "";
            //(提前,延时多少分钟)
            string valuestr = "";
            Input _input = Logic.currlogic.input[index];
            if (_input.condition_type == "1")
            {
                var dicLists = _input.condition as List<Dictionary<string, string>>;
                foreach (var dic in dicLists)
                {
                    string keyValue = dic["key"];
                    valuestr = dic["value"];
                    if (keyValue != "timepoint")
                    {
                        switch (keyValue)
                        {
                            case "before_sunrise":
                                {
                                    str1 = Language.StringByID(StringId.sunrise) + Language.StringByID(StringId.h);
                                    str2 = Language.StringByID(StringId.advanced);
                                }
                                break;
                            case "before_sunset":
                                {
                                    str1 = Language.StringByID(StringId.sunset) + Language.StringByID(StringId.h);
                                    str2 = Language.StringByID(StringId.advanced);
                                }
                                break;
                            case "before_noon":
                                {
                                    str1 = Language.StringByID(StringId.at) + Language.StringByID(StringId.h);
                                    str2 = Language.StringByID(StringId.advanced);
                                }
                                break;
                            case "after_sunrise":
                                {
                                    str1 = Language.StringByID(StringId.sunrise) + Language.StringByID(StringId.h);
                                    str2 = Language.StringByID(StringId.delayLogic);
                                }
                                break;
                            case "after_sunset":
                                {
                                    str1 = Language.StringByID(StringId.sunset) + Language.StringByID(StringId.h);
                                    str2 = Language.StringByID(StringId.delayLogic);
                                }
                                break;
                            case "after_noon":
                                {
                                    str1 = Language.StringByID(StringId.at) + Language.StringByID(StringId.h);
                                    str2 = Language.StringByID(StringId.delayLogic);
                                }
                                break;
                        }
                    }
                }
            }
            action(str1,str2, valuestr);
        }
    }
}
HDL_ON/UI/UI2/3-Intelligence/Automation/Time3.cs
@@ -11,11 +11,11 @@
            Tag = "Logic";
        }
        public void Show(string titelText,bool edit,int index)
        public void Show(string titelText, bool edit, int index)
        {
            #region  界面布局
            LogicView.TopView topView = new LogicView.TopView();
            topView.frameLayout.Height = Application.GetRealHeight(64+20);
            topView.frameLayout.Height = Application.GetRealHeight(64 + 20);
            this.AddChidren(topView.FLayoutView());
            Button locationBtn = new Button
            {
@@ -32,7 +32,7 @@
            {
                Height = Application.GetRealHeight(14),
                Y = Application.GetRealHeight(57),
                TextSize =LogicView.TextSize.text10,
                TextSize = LogicView.TextSize.text10,
                TextColor = CSS.CSS_Color.textCancelColor,
                Text = "广东广州市番禺区石楼镇",
            };
@@ -41,17 +41,35 @@
            {
                RemoveFromParent();
            };
            topView.topNameBtn.Text=titelText;
            topView.topNameBtn.Text = titelText;
            FrameLayout viewLayout = new FrameLayout
            {
                Y = Application.GetRealHeight(64+20),
                Y = Application.GetRealHeight(64 + 20),
                Width = Application.GetRealWidth(LogicView.TextSize.view375),
                Height = Application.GetRealHeight(LogicView.TextSize.view667 - 64-20),
                Height = Application.GetRealHeight(LogicView.TextSize.view667 - 64 - 20),
                BackgroundColor = CSS.CSS_Color.viewMiddle,
            };
            this.AddChidren(viewLayout);
            #endregion
            //(日出时,日落时,正午时)
            string str1 = "";
            //(提前,延时)
            string str2 = "";
            //(提前,延时多少分钟)
            string value = "";
            if (edit)
            {
                new SpeciaTime().GetText(index, (s1, s2, s3) =>
                {
                    str1 = s1;
                    str2 = s2;
                    value = s3;
                });
            }
            var list = new List<string> {
                Language.StringByID(StringId.punctually),
                Language.StringByID(StringId.advanced),
@@ -67,12 +85,35 @@
                timeView.btnLine.X = Application.GetRealWidth(16);
                timeView.btnLine.Width = Application.GetRealWidth(375 - 16 - 16);
                timeView.btnText.Text = list[i];
                timeView.btnClick.Tag= list[i];
                if (i==0) {
                timeView.btnClick.Tag = list[i];
                if (i == 0)
                {
                    timeView.btnNextIcon.Visible = false;
                }
                viewLayout.AddChidren(timeView.FLayoutView());
                //判断是(日出,日落,正午)
                if (str1 == titelText)
                {
                    //判断是(提前,延时)
                    if (str2 == list[i])
                    {
                        string s = "";
                        if (value != "0")
                        {
                            if (value == "30")
                            {
                                s = value + Language.StringByID(StringId.s);
                            }
                            else
                            {
                                s =value + Language.StringByID(StringId.minute);
                            }
                        }
                        timeView.btnState.Visible = true;
                        timeView.btnState.Text = s;
                    }
                }
                viewLayout.AddChidren(timeView.FLayoutView());
                timeView.btnClick.MouseUpEventHandler += (sen, e) =>
                {
                    string clickText = timeView.btnClick.Tag.ToString();
@@ -84,13 +125,39 @@
                    }
                    else
                    {
                        //提前/延时
                        //定义一个局部变量
                        string stateValue = "";
                        //判断是(日出,日落,正午)
                        if (str1 == titelText)
                        {
                            //判断是(提前,延时)
                            if (str2 == clickText)
                            {
                                string s = "";
                                if (value != "0")
                                {
                                    if (value == "30")
                                    {
                                        s = value + " s";
                                    }
                                    else
                                    {
                                        s = value + " min";
                                    }
                                }
                                //更新值stateValue
                                //为了显示之前的状态
                                stateValue = s;
                            }
                        }
                        PublicInterface timePublicInterface = new PublicInterface();
                        var timelist = timePublicInterface.GetViewList("time");
                        timePublicInterface.SingleSelectionShow(this, timelist, clickText, ""
                           , (value) =>
                        timePublicInterface.SingleSelectionShow(this, timelist, clickText, stateValue
                           , (value1) =>
                           {
                               string timeValue = value.Split(" ")[0];
                               string timeValue = value1.Split(" ")[0];
                               AddDic(keyValue, timeValue, edit, index);
                           });
@@ -98,7 +165,7 @@
                };
            }
            #endregion
        }
        /// <summary>
@@ -111,38 +178,56 @@
        {
            string keyValue = "";
            if (clickText == Language.StringByID(StringId.advanced))
            if (titelText == Language.StringByID(StringId.sunrise) + Language.StringByID(StringId.h))
            {
                if (titelText == Language.StringByID(StringId.sunrise) + Language.StringByID(StringId.h))
                if (clickText == Language.StringByID(StringId.advanced))
                {
                    keyValue = "before_sunrise";
                }
                else if (titelText == Language.StringByID(StringId.sunset) + Language.StringByID(StringId.h))
                else if (clickText == Language.StringByID(StringId.delayLogic))
                {
                    keyValue = "before_sunset";
                    keyValue = "after_sunrise";
                }
                else
                {
                    keyValue = "at_sunrise";
                    keyValue = "after_sunrise";
                }
            }
            else if (titelText == Language.StringByID(StringId.sunset) + Language.StringByID(StringId.h))
            {
                if (clickText == Language.StringByID(StringId.advanced))
                {
                    keyValue = "before_sunset";
                }
                else if (clickText == Language.StringByID(StringId.delayLogic))
                {
                    keyValue = "after_sunset";
                }
                else
                {
                    keyValue = "after_sunset";
                }
            }
            else
            {
                if (clickText == Language.StringByID(StringId.advanced))
                {
                    keyValue = "before_noon";
                if (titelText == Language.StringByID(StringId.sunrise) + Language.StringByID(StringId.h))
                {
                    keyValue = "after_sunrise";
                }
                else if (titelText == Language.StringByID(StringId.sunset) + Language.StringByID(StringId.h))
                else if (clickText == Language.StringByID(StringId.delayLogic))
                {
                    keyValue = "“after_sunset";
                    keyValue = "after_noon";
                }
                else
                {
                    keyValue = "at_sunset";
                    keyValue = "after_noon";
                }
            }
            return keyValue;
        }