HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2021-01-06 b2f2494386c4629cf0e0f0a3740e7672919d53a2
ZigbeeApp/Shared/Phone/Device/Logic/PublicInterface.cs
@@ -9,6 +9,7 @@
    public class PublicInterface
    {
        /// <summary>
        /// 单选择
        /// </summary>
@@ -100,32 +101,130 @@
        }
        /// <summary>
        /// 单选择
        /// </summary>
        /// <param name="frame">显示在哪个界面的父控件</param>
        /// <param name="list">显示数据源</param>
        /// <param name="titleText">标题文本</param>
        /// <param name="stateText">之前状态文本</param>
        /// <param name="completeAction">完成返回值</param>
        /// <param name="cancelAction">取消返回值</param>
        public void SingleSelectionShow(FrameLayout frame, List<string> list, int titleText, string stateText, Action<string> completeAction, Action cancelAction)
        {
            FrameLayout frameLayout = new FrameLayout
            {
                BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor,
            };
            frame.AddChidren(frameLayout);
            CompleteView view = new CompleteView();
            view.Btntitle.TextID = titleText;
            frameLayout.AddChidren(view.Show(list.Count));
            UserView.HomePage.Instance.ScrollEnabled = false;
           EventHandler<MouseEventArgs> cancelClick= (sender, e) =>
            {
                UserView.HomePage.Instance.ScrollEnabled = true;
                //移除fLayout界面
                frameLayout.RemoveFromParent();
                cancelAction();
            };
            view.Btncancel.MouseUpEventHandler += cancelClick;
            frameLayout.MouseUpEventHandler += cancelClick;
            ///定义一个Btn记录选中状态
            Button checkIconBtn = new Button
            {
                Tag = "unknown",
            };
            Button checkTextBtn = new Button
            {
                Tag = "unknown",
            };
            for (int i = 0; i < list.Count; i++)
            {
                string str = list[i];
                mFunView mFun = new mFunView();
                mFun.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                mFun.titleBtn.SelectedTextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
                mFun.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160 * i);
                view.fraView.AddChidren(mFun.Show());
                mFun.titleBtn.Text = str;
                mFun.clickviewBtn.Tag = str;//标记
                if (list.Count - 1 == i)
                {
                    //改变最后一条的颜色
                    mFun.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                }
                if (stateText == str)
                {
                    //图标改变
                    checkIconBtn.Visible = false;
                    mFun.selectedIconBtn.Visible = true;
                    checkIconBtn = mFun.selectedIconBtn;
                    checkIconBtn.Tag = mFun.clickviewBtn.Tag.ToString();
                    //字体改变
                    checkTextBtn.IsSelected = false;
                    mFun.titleBtn.IsSelected = true;
                    checkTextBtn = mFun.titleBtn;
                }
                //点击事件
                mFun.clickviewBtn.MouseUpEventHandler += (sender1, e1) =>
                {
                    //图标改变
                    checkIconBtn.Visible = false;
                    mFun.selectedIconBtn.Visible = true;
                    checkIconBtn = mFun.selectedIconBtn;
                    checkIconBtn.Tag = mFun.clickviewBtn.Tag.ToString();
                    //字体改变
                    checkTextBtn.IsSelected = false;
                    mFun.titleBtn.IsSelected = true;
                    checkTextBtn = mFun.titleBtn;
                };
            }
            view.Btncomplete.MouseUpEventHandler += (sender1, e1) =>
            {
                if (checkIconBtn.Tag.ToString() == "unknown")
                {
                    return;
                }
                completeAction(checkIconBtn.Tag.ToString());
                UserView.HomePage.Instance.ScrollEnabled = true;
                //移除fLayout界面
                frameLayout.RemoveFromParent();
            };
        }
        /// <summary>
        /// 温湿度方法
        /// </summary>
        /// <param name="frame">显示在哪个界面的父控件</param>
        /// <param name="common">当前设备</param>
        /// <param name="state1">之前状态</param>
        /// <param name="symbol">符号(%,℃)</param>
        /// <param name="state1">之前状态(比较符号)</param>
        /// <param name="state2">之前状态</param>
        /// <param name="action">返回值</param>
        public void TemperatureShow1(FrameLayout frameLayout, CommonDevice common, string state1, string state2, Action<string, string> action)
        public void TemperatureShow1(FrameLayout frame, string tlite,string symbol, string state1, string state2, Action<string, string> action, Action cancelAction)
        {
            //FrameLayout frameLayout = new FrameLayout
            //{
            //    BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor,
            //};
            //frame.AddChidren(frameLayout);
            FrameLayout frameLayout = new FrameLayout
            {
                BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor,
            };
            frame.AddChidren(frameLayout);
            CompleteView view = new CompleteView();
            view.Btntitle.Text= LocalDevice.Current.GetDeviceEpointName(common);
            view.Btntitle.Text= tlite;
            frameLayout.AddChidren(view.Show(4));
            UserView.HomePage.Instance.ScrollEnabled = false;
            view.Btncancel.MouseUpEventHandler += (sender, e) =>
            EventHandler<MouseEventArgs> cancelClick = (sender, e) =>
            {
                UserView.HomePage.Instance.ScrollEnabled = true;
                //移除fLayout界面
                frameLayout.RemoveFromParent();
                cancelAction();
            };
            view.Btncancel.MouseUpEventHandler += cancelClick;
            frameLayout.MouseUpEventHandler += cancelClick;
            #region  布局View
            var PickerViewfra = new FrameLayout
@@ -142,28 +241,12 @@
            var mList1 = new List<string> { ">", "<", "=", "≥", "≤" };
            var mList2 = new List<string>();
            var mList3 = new List<string>();
            var mList3 = new List<string>() { symbol };
            for (int i = 1; i <= 100; i++)
            {
                mList2.Add(i.ToString());
            }
            switch (common.Type)
            {
                case DeviceType.TemperatureSensor:
                    {
                        var temperatureSensor = common as TemperatureSensor;
                        if (temperatureSensor.SensorDiv == 1)
                        {
                            mList3.Add("℃");
                        }
                        else
                        {
                            mList3.Add("%");
                        }
                    }
                    break;
            }
                
            mUIPickerView.setNPicker(mList1, mList2, mList3);
@@ -214,43 +297,6 @@
                //返回索引值
                index1 = s1;
                index2 = s2;
                string relationValueStr = "";
                switch (mList1[index1])
                {
                    case ">":
                        {
                            relationValueStr = "0";
                        }
                        break;
                    case "<":
                        {
                            relationValueStr = "2";
                        }
                        break;
                    case "=":
                        {
                            relationValueStr = "1";
                        }
                        break;
                    case "≥":
                        {
                            relationValueStr = "6";
                        }
                        break;
                    case "≤":
                        {
                            relationValueStr = "7";
                        }
                        break;
                }
                ///温度进率转换*100
                string tempValueStr = (int.Parse(mList2[index2]) * 100).ToString();
                action(relationValueStr, tempValueStr);
            };
            view.Btncomplete.MouseUpEventHandler += (sender1, e1) =>
            {
@@ -296,7 +342,7 @@
            };
        }
        public void TemperatureShow(FrameLayout frameLayout, CommonDevice common, string state1, string state2, Action<string, string> action)
        public void TemperatureShow(FrameLayout frameLayout, string symbol, string state1, string state2, Action<string, string> action)
        {
            #region  布局View
            var PickerViewfra = new FrameLayout
@@ -313,27 +359,10 @@
            var mList1 = new List<string> { ">", "<", "=", "≥", "≤" };
            var mList2 = new List<string>();
            var mList3 = new List<string>();
            var mList3 = new List<string>() { symbol };
            for (int i = 1; i <= 100; i++)
            {
                mList2.Add(i.ToString());
            }
            switch (common.Type)
            {
                case DeviceType.TemperatureSensor:
                    {
                        var temperatureSensor = common as TemperatureSensor;
                        if (temperatureSensor.SensorDiv == 1)
                        {
                            mList3.Add("℃");
                        }
                        else
                        {
                            mList3.Add("%");
                        }
                    }
                    break;
            }
            mUIPickerView.setNPicker(mList1, mList2, mList3);
@@ -446,7 +475,8 @@
                            };
                    }
                    break;
                case "时间": {
                case "时间":
                    {
                        list = new List<string> {
                 Language.StringByID(MyInternationalizationString.immediateexecution),
                Language.StringByID(MyInternationalizationString.timeframe),
@@ -486,7 +516,46 @@
                            };
                    }
                    break;
                case "空气质量传感器":
                    {
                        list = new List<string> {
                            Language.StringByID(MyInternationalizationString.kongqizhiliang),
                            Language.StringByID(MyInternationalizationString.pm25),
                            Language.StringByID(MyInternationalizationString.co2),
                            Language.StringByID(MyInternationalizationString.sensortemperature),
                            Language.StringByID(MyInternationalizationString.sensorhumidity),
                            };
                    }
                    break;
                case "空气质量":
                    {
                        list = new List<string> {
                 Language.StringByID(MyInternationalizationString.you),
                Language.StringByID(MyInternationalizationString.liang),
                Language.StringByID(MyInternationalizationString.cha),
                            };
                    }
                    break;
                case "pm2.5":
                    {
                        list = new List<string> {
                            Language.StringByID(MyInternationalizationString.pmyou),
                            Language.StringByID(MyInternationalizationString.pmliang),
                            Language.StringByID(MyInternationalizationString.pmqingdu),
                            Language.StringByID(MyInternationalizationString.pmzhongdu),
                            };
                    }
                    break;
                case "co2":
                    {
                        list = new List<string> {
                            Language.StringByID(MyInternationalizationString.co2qingxin),
                            Language.StringByID(MyInternationalizationString.co2huizhuo),
                            Language.StringByID(MyInternationalizationString.co2queyang),
                            Language.StringByID(MyInternationalizationString.co2yanzhongqueyang),
                            };
                    }
                    break;
            }
            return list;