陈嘉乐
2020-05-06 f11472b25796a83f70d526b13f2b0cba24c665f2
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -21,18 +21,10 @@
        /// </summary>
        /// <param name="action">给徐梅刷新界面用的</param>
        /// <param name="bool_If"></param>
        public async void Show(Action action, bool bool_If = false)
        public Action<bool> action;
        public async void Show()
        {
            #region  徐梅叫这样做的
            string key = Send.CurrentDoorLock.DeviceAddr + "_" + Send.CurrentDoorLock.DeviceEpoint;
            if (Send.CurrentDoorLock.IsDoorLockNormallyMode.ContainsKey(key))
            {
                if (Send.CurrentDoorLock.IsDoorLockNormallyMode[key] == true)
                {
                    bool_If = true;
                }
            }
            #endregion
            #region  界面的布局代码
            UserView.HomePage.Instance.ScrollEnabled = false;//锁住左滑
            TopView view = new TopView();
@@ -43,7 +35,7 @@
                UserView.HomePage.Instance.ScrollEnabled = true;
                if (action != null)
                {
                    action();
                    action(Send.CurrentDoorLock.IsDoorLockNormallyMode);
                }
                RemoveFromParent();
@@ -80,7 +72,7 @@
            };
            fLayout.AddChidren(modeIconBtn);
            if (bool_If)
            if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
            {
                /// 查找是否存在时效性自动化;有的话就返回自动化对象;
                var logic = await SkipView.GetLogicIfon();
@@ -108,48 +100,29 @@
                    TextSize = 16,
                };
                openModeFl.AddChidren(closeBtn);
                closeBtn.MouseUpEventHandler += (sender, e) =>
                closeBtn.MouseUpEventHandler += async (sender, e) =>
                {
                    var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm,
                   Language.StringByID(MyInternationalizationString.doyouwanttodelete),
                   Language.StringByID(MyInternationalizationString.confrim));
                    alert.Show();
                    alert.ConfirmClickEvent += async () =>
                    var result = await UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
                    if (result)
                    {
                        if (logic != null)
                        {
                            ///有可能只有常开模式,没有时效性自动化
                            ///没有判断的话,逻辑会为空,抛出异常;
                            Send.DelLogic(logic.LogicId);
                        }
                        Send.CurrentDoorLock.IsDoorLockNormallyMode = false;
                        this.RemoveFromParent();
                        var soneLogicList = new SoneLogicList();
                        UserView.HomePage.Instance.AddChidren(soneLogicList);
                        UserView.HomePage.Instance.PageIndex += 1;
                        soneLogicList.Show();
                    }
                    else
                    {
                        LogicView.TipView.ShowFlashTip("关闭失败");
                    }
                     Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock, action);
                     Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.LogicAction += (d) => {
                            this.RemoveFromParent();
                            var soneLogicList = new SoneLogicList();
                            UserView.HomePage.Instance.AddChidren(soneLogicList);
                            UserView.HomePage.Instance.PageIndex += 1;
                            soneLogicList.Show(() => { }, false);
                        };
                        /////xm
                        //var result = await SkipView.OpenMode(false, Send.CurrentDoorLock);
                        //if (result)
                        //{
                        //    if (logic != null)
                        //    {
                        //        ///有可能只有常开模式,没有时效性自动化
                        //        ///没有判断的话,逻辑会为空,抛出异常;
                        //        Send.DelLogic(logic.LogicId);
                        //    }
                        //    this.RemoveFromParent();
                        //    var soneLogicList = new SoneLogicList();
                        //    UserView.HomePage.Instance.AddChidren(soneLogicList);
                        //    UserView.HomePage.Instance.PageIndex += 1;
                        //    soneLogicList.Show(()=>{ },false);
                        //}
                        //else {
                        //    ///提示失败
                        //}
                    };
                };
                ///显示失效设置时间文本控件
@@ -222,71 +195,58 @@
                    Height = Application.GetMinRealAverage(104),
                    X = Application.GetRealWidth(861),
                    Y = Application.GetRealHeight(17),
                    UnSelectedImagePath = "ZigeeLogic/next.png",
                    UnSelectedImagePath = "ZigeeLogic/nextIconSone.png",
                };
                modeFl.AddChidren(nextIconBtn);
              nextIconBtn.MouseUpEventHandler += (sender, e) =>
               {
                   Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidTimeDialog(Send.CurrentDoorLock, action);
                   Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.LogicAction += (d) => {
                       this.RemoveFromParent();
                       var soneLogicList = new SoneLogicList();
                       UserView.HomePage.Instance.AddChidren(soneLogicList);
                       UserView.HomePage.Instance.PageIndex += 1;
                       soneLogicList.Show(() => { }, true);
                nextIconBtn.MouseUpEventHandler += (sender, e) =>
                 {
                   };
                   #region
                   /*
                   LogicView.TipView.ShowConfrimTip(() =>
                   {///再次确认
                     LogicView.TipView.ShowConfrimTip(() =>
                     {///再次确认
                       LogicView.TipView.ShowInputTip(true, async (str) =>
                       {///确认发送命令
                         {///确认发送命令
                           try
                           {
                             {
                               ///xm
                               var result = await SkipView.OpenMode(true,Send.CurrentDoorLock);
                               if (!result)
                               {
                                   Application.RunOnMainThread(() =>
                                   {
                                     ///提示失败
                                   });
                                   return;
                               }
                               else
                               {
                               var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
                                 if (!result)
                                 {
                                     LogicView.TipView.ShowFlashTip("开启失败");
                                     return;
                                 }
                                 else
                                 {
                                   ///因为有常开模式下才可以创建失效逻辑;
                                   SkipView.GetLogicAll();//删除之前所有失效逻辑
                                   var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//添加一条失效逻辑
                                   if (!addResult)
                                   {
                                       ///提示失败
                                       return;
                                   }
                                   this.RemoveFromParent();
                                   var soneLogicList = new SoneLogicList();
                                   UserView.HomePage.Instance.AddChidren(soneLogicList);
                                   UserView.HomePage.Instance.PageIndex += 1;
                                   soneLogicList.Show(() => { }, true);
                                     {
                                         ///提示失败
                                         LogicView.TipView.ShowFlashTip("添加失败");
                                         return;
                                     }
                                     Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
                                     this.RemoveFromParent();
                                     var soneLogicList = new SoneLogicList();
                                     UserView.HomePage.Instance.AddChidren(soneLogicList);
                                     UserView.HomePage.Instance.PageIndex += 1;
                                     soneLogicList.Show();
                               }
                           }
                           catch
                           {
                                 }
                             }
                             catch
                             {
                           }
                       });
                             }
                         });
                   });
                  */
                     });
                   #endregion
               };
                 };
            }
            #endregion
@@ -437,14 +397,11 @@
        /// 加载自动化列表
        /// </summary>
        /// <param name="verticalRefresh"></param>
        RowLayout selectedRow = new RowLayout() { Tag = "0" };//记录左滑状态
        int i = 1;
        private void RefreshView(VerticalRefreshLayout verticalRefresh)
        {
            verticalRefresh.RemoveAll();
            for (int i = 0; i < 6; i++)
            {
                Common.Logic.SoneLogicList.Add(new Common.Logic { LogicName = i.ToString() });
            }
            foreach (var logic in Common.Logic.SoneLogicList)
            {
                #region  自动化布局View
@@ -461,17 +418,19 @@
                    LineColor = ZigbeeColor.Current.LogicBackgroundColor,
                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
                    SubViewWidth = Application.GetRealWidth(184),//改变编辑控件宽度多少;
                    Tag = i.ToString(),
                };
                fLayout.AddChidren(logicRow);
                //左滑菜单事件
                logicRow.OpenMenuAction += () =>
                {
                    //if (selectedRow.Tag.ToString() != logicRowlayout.Tag.ToString())
                    //{   //保留左滑只有一个;
                    //    selectedRow.HideMenu();//
                    //}
                    //selectedRow = logicRowlayout;
                    if (selectedRow.Tag.ToString() != logicRow.Tag.ToString())
                    {   //保留左滑只有一个;
                        selectedRow.HideMenu();//
                    }
                    selectedRow = logicRow;
                };
                i++;
                ///显示逻辑名称的控件
                var nameBtn = new Button
                {