HDL Home App 第二版本 旧平台金堂用 正在使用
hxb
2022-08-30 25429f085093d89d543a0b90e30d0d62d1b7dac9
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayListForm.cs
@@ -2,7 +2,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.GatewayManage
@@ -39,16 +38,20 @@
            //设置标题信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uGatewayManagement));
            //添加图标
            var btnAdd = new MostRightIconControl(69, 69);
            btnAdd.UnSelectedImagePath = "Item/Add.png";
            topFrameLayout.AddChidren(btnAdd);
            btnAdd.InitControl();
            btnAdd.ButtonClickEvent += (sender, e) =>
            //展示模板不允许编辑
            if (Config.Instance.Home.IsShowTemplate == false)
            {
                var form = new GatewayAdd.NewGateWayMenuSelectForm();
                form.AddForm();
            };
                //添加图标
                var btnAdd = new MostRightIconControl(69, 69);
                btnAdd.UnSelectedImagePath = "Item/Add.png";
                topFrameLayout.AddChidren(btnAdd);
                btnAdd.InitControl();
                btnAdd.ButtonClickEvent += (sender, e) =>
                {
                    var form = new GatewayAdd.NewGateWayMenuSelectForm();
                    form.AddForm();
                };
            }
            //初始化中部控件
            this.InitMiddleFrame();
@@ -95,15 +98,18 @@
            for (int i = 0; i < listway.Count; i++)
            {
                //添加行
                var gwId = HdlGatewayLogic.Current.GetGatewayId(listway[i]);
                this.AddRowLayout(gwId, i != listway.Count - 1);
                this.AddRowLayout(listway[i].GwId, i != listway.Count - 1);
            }
            //调整列表控件的高度
            this.listview.AdjustRealHeight(Application.GetRealHeight(23));
            //开启网关在线监测的线程
            this.StartGatewayOnlieCheckThread(listway);
            //如果是展示模板的话,不需要检测
            if (Common.Config.Instance.Home.IsShowTemplate == false)
            {
                //开启网关在线监测的线程
                this.StartGatewayOnlieCheckThread(listway);
            }
        }
        #endregion
@@ -131,7 +137,7 @@
            //提示新版本
            var btnNew = new InformationTipView(gatewayRow.btnIcon);
            btnNew.Visible = false;
            gatewayRow.frameTable.AddChidren(btnNew, ChidrenBindMode.BindEventOnly);
            gatewayRow.frameTable.AddChidren(btnNew, ChidrenBindMode.BindEvent);
            gatewayRow.AddTag("btnNew", btnNew);
            //单击事件
            gatewayRow.frameTable.ButtonClickEvent += (sender, e) =>
@@ -147,36 +153,46 @@
                form.AddForm(gateway);
            };
            //切换
            var btnSwitch = new NormalViewControl(Application.GetRealWidth(184), gatewayRow.Height, false);
            btnSwitch.BackgroundColor = 0xfffb744a;
            btnSwitch.TextAlignment = TextAlignment.Center;
            btnSwitch.TextColor = UserCenterColor.Current.White;
            btnSwitch.TextSize = 12;
            btnSwitch.TextID = R.MyInternationalizationString.uSwitch1;
            if (strWayId == GatewayResourse.AppOldSelectGatewayId)
            //如果是展示模板的话,不能编辑
            if (Common.Config.Instance.Home.IsShowTemplate == true)
            {
                btnSwitch.TextID = R.MyInternationalizationString.uRefresh;
                return;
            }
            gatewayRow.AddRightView(btnSwitch);
            btnSwitch.ButtonClickEvent += (sender, e) =>
            //非虚拟住宅,才有这个功能
            if (Common.Config.Instance.Home.IsVirtually == false)
            {
                //是否切换到{0}网关?
                string msg = string.Format(Language.StringByID(R.MyInternationalizationString.uConfirmWantToSwitchTheGateway), "[" + gatewayRow.btnName.Text + "]");
                //切换
                var btnSwitch = new NormalViewControl(Application.GetRealWidth(184), gatewayRow.Height, false);
                btnSwitch.BackgroundColor = 0xfffb744a;
                btnSwitch.TextAlignment = TextAlignment.Center;
                btnSwitch.TextColor = UserCenterColor.Current.White;
                btnSwitch.TextSize = 12;
                btnSwitch.TextID = R.MyInternationalizationString.uSwitch1;
                if (strWayId == GatewayResourse.AppOldSelectGatewayId)
                {
                    //是否重新刷新{0}网关?
                    msg = string.Format(Language.StringByID(R.MyInternationalizationString.uConfirmWantToRefreshTheGateway), "[" + gatewayRow.btnName.Text + "]");
                    btnSwitch.TextID = R.MyInternationalizationString.uRefresh;
                }
                this.ShowMassage(ShowMsgType.Confirm, msg, () =>
                gatewayRow.AddRightView(btnSwitch);
                btnSwitch.ButtonClickEvent += (sender, e) =>
                {
                    HdlThreadLogic.Current.RunThread(() =>
                    //是否切换到{0}网关?
                    string msg = string.Format(Language.StringByID(R.MyInternationalizationString.uConfirmWantToSwitchTheGateway), "[" + gatewayRow.btnName.Text + "]");
                    if (strWayId == GatewayResourse.AppOldSelectGatewayId)
                    {
                        //执行切换网关操作
                        this.DoSwitchGateway(strWayId);
                        //是否重新刷新{0}网关?
                        msg = string.Format(Language.StringByID(R.MyInternationalizationString.uConfirmWantToRefreshTheGateway), "[" + gatewayRow.btnName.Text + "]");
                    }
                    this.ShowMassage(ShowMsgType.Confirm, msg, () =>
                    {
                        HdlThreadLogic.Current.RunThread(() =>
                        {
                            //执行切换网关操作
                            this.DoSwitchGateway(strWayId);
                        });
                    });
                });
            };
                };
            }
            //定位
            var btnPosition = gatewayRow.AddEditorControl(false);
@@ -207,7 +223,7 @@
                {
                    HdlThreadLogic.Current.RunThread(() =>
                    {
                        this.DeleteGateway(strWayId, gatewayRow);
                        this.DeleteGateway(strWayId);
                    });
                });
            };
@@ -226,7 +242,7 @@
                btnNow.Y = Application.GetMinReal(23) + gatewayRow.frameTable.chidrenYaxis;
                btnNow.UnSelectedImagePath = "Item/NowAcctionTip.png";
                btnNow.X = gatewayRow.btnName.X + gatewayRow.btnName.GetRealWidthByText();
                gatewayRow.frameTable.AddChidren(btnNow, ChidrenBindMode.BindEventOnly);
                gatewayRow.frameTable.AddChidren(btnNow, ChidrenBindMode.BindEvent);
            }
        }
@@ -239,12 +255,12 @@
        /// </summary>
        /// <param name="strWayId"></param>
        /// <param name="row"></param>
        private async void DeleteGateway(string strWayId, GatewayRowControl row)
        private void DeleteGateway(string strWayId)
        {
            //打开进度条
            this.ShowProgressBar();
            //删除云端网关
            bool result = await HdlGatewayLogic.Current.DeleteGateway(strWayId);
            bool result = HdlGatewayLogic.Current.DeleteGateway(strWayId);
            //关闭进度条
            this.CloseProgressBar();
            if (result == false)
@@ -274,9 +290,9 @@
        /// </summary>
        /// <param name="gatewayId"></param>
        /// <param name="online"></param>
        private async void DoSwitchGateway(string gatewayId)
        private void DoSwitchGateway(string gatewayId)
        {
            var result = await HdlGatewayLogic.Current.DoSwitchGateway(gatewayId);
            var result = HdlGatewayLogic.Current.DoSwitchGateway(gatewayId);
            if (result == false)
            {
                return;
@@ -339,8 +355,8 @@
                    {
                        return;
                    }
                    bool online = HdlGatewayLogic.Current.CheckGatewayOnlineByFlag(way);
                    this.GatewayOnlinePush(way, online);
                    bool online = HdlGatewayLogic.Current.CheckGatewayOnlineByMemory(way);
                    this.GatewayOnlinePush(way, online, true);
                }
                //网关新版本检测
                this.CheckGatewayNewVersion(listway);
@@ -352,20 +368,21 @@
        /// </summary>
        /// <param name="gateWay">网关对象</param>
        /// <param name="online">在线状态变更后的状态</param>
        public override void GatewayOnlinePush(ZbGateway gateWay, bool online)
        /// <param name="hadGwOnline">2020.05.25追加:此住宅是否拥有网关在线</param>
        public override void GatewayOnlinePush(ZbGateway gateWay, bool online, bool hadGwOnline)
        {
            Application.RunOnMainThread(() =>
            HdlThreadLogic.Current.RunMain(() =>
            {
                if (this.Parent == null)
                {
                    return;
                }
                string gwid = HdlGatewayLogic.Current.GetGatewayId(gateWay);
                string gwid = gateWay.GwId;
                if (this.dicRowContr.ContainsKey(gwid) == true && this.dicRowContr[gwid] != null)
                {
                    this.dicRowContr[gwid].IsOnline = online;
                }
            });
            }, ShowErrorMode.NO);
        }
        #endregion
@@ -376,7 +393,7 @@
        /// 网关新版本检测
        /// </summary>
        /// <param name="listWays"></param>
        private async void CheckGatewayNewVersion(List<ZbGateway> listWays)
        private void CheckGatewayNewVersion(List<ZbGateway> listWays)
        {
            foreach (var way in listWays)
            {
@@ -384,13 +401,13 @@
                {
                    return;
                }
                if (HdlGatewayLogic.Current.CheckGatewayOnlineByFlag(way) == false)
                if (HdlGatewayLogic.Current.CheckGatewayOnlineByMemory(way) == false)
                {
                    //不在线的不用理它
                    continue;
                }
                //获取最新版本
                var result = await HdlGatewayLogic.Current.GetGatewayAllNewVersion(way, ShowErrorMode.NO);
                var result = HdlGatewayLogic.Current.GetGatewayAllNewVersion(way, ShowErrorMode.NO);
                if (result == null)
                {
                    continue;
@@ -398,8 +415,8 @@
                if (result[0] != null || result[1] != null || result[2] != null)
                {
                    //有新版本
                    string gwid = HdlGatewayLogic.Current.GetGatewayId(way);
                    Application.RunOnMainThread(() =>
                    string gwid = way.GwId;
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        if (this.dicRowContr.ContainsKey(gwid) == true && this.dicRowContr[gwid] != null)
                        {