From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 09:07:13 +0800 Subject: [PATCH] 新云端Ver1.3 --- ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs | 260 ++++++++++++++++++++++++++++++++------------------- 1 files changed, 163 insertions(+), 97 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs index 8870208..7d18dd2 100755 --- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs @@ -10,99 +10,81 @@ public LockLogicList() { - Tag = "LockLogicList"; + Tag = "LockListView"; } - VerticalScrolViewLayout middle; - public async void Show() + VerticalRefreshLayout middle; + public void Show() { - #region 鏈�涓婇潰鐨勫竷灞�浠g爜 - var topRowLayout = new RowLayout + #region 涓婇潰鐨勫竷灞�浠g爜 + TopView view = new TopView(); + this.AddChidren(view.TopRowView()); + view.toptitleNameBtn.TextID = MyInternationalizationString.linkageevent; + view.clickBtn.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); }; + //鍔犲ぇ鐐瑰嚮鐑敭 + var addiocnclick = new Button { - BackgroundColor = ZigbeeColor.Current.LogicTopBackgroundColor, - Height = Application.GetRealHeight(184), - LineColor = ZigbeeColor.Current.LogicRowLayoutTopLineColor, + Width = Application.GetRealWidth(108+58), + Height = Application.GetRealHeight(72+20), + X = Application.GetRealWidth(1080 - 108 - 58), + Y = Application.GetRealHeight(184 - 72), }; - this.AddChidren(topRowLayout); - - var titleName = new Button - { - TextSize = 16, - TextColor = ZigbeeColor.Current.LogicTextBlackColor, - TextAlignment = TextAlignment.CenterLeft, - X = Application.GetRealWidth(176), - Width = Application.GetRealWidth(400), - Height = Application.GetRealHeight(69), - Y = Application.GetRealHeight(92), - TextID = MyInternationalizationString.linkageevent, - }; - topRowLayout.AddChidren(titleName); - - var clickBtn = new Button - { - Width = Application.GetRealWidth(81 + 51), - Height = Application.GetRealHeight(58 + 40), - Y = Application.GetRealHeight(98 - 40), - }; - topRowLayout.AddChidren(clickBtn); - clickBtn.MouseDownEventHandler += (sender, e) => - { - RemoveFromParent(); - }; - - var back = new Button - { - Width = Application.GetRealWidth(30), - Height = Application.GetRealHeight(51), - X = Application.GetRealWidth(81), - Y = Application.GetRealHeight(98), - //Gravity = Gravity.CenterVertical; - UnSelectedImagePath = "ZigeeLogic/back.png", - }; - topRowLayout.AddChidren(back); - back.MouseDownEventHandler += (sender, e) => - { - RemoveFromParent(); - }; + view.topRowLayout.AddChidren(addiocnclick); var addiocn = new Button { - Width = Application.GetRealWidth(72), - Height = Application.GetRealHeight(72), + Width = Application.GetMinRealAverage(72), + Height = Application.GetMinRealAverage(72), X = Application.GetRealWidth(1080 - 108 - 58), UnSelectedImagePath = "ZigeeLogic/lockadd.png", Y = Application.GetRealHeight(184 - 72 - 20), }; - topRowLayout.AddChidren(addiocn); - addiocn.MouseUpEventHandler += (sender, e) => + view.topRowLayout.AddChidren(addiocn); + + EventHandler<MouseEventArgs> addclick = (sender, e) => { //new涓�涓柊閫昏緫瀵硅薄锛� Common.Logic.CurrentLogic = new Common.Logic(); Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑 - Common.Logic.CurrentLogic.LogicType = 1; + Common.Logic.CurrentLogic.LogicType = 1;//鏍囪鑷姩鍖栫被鍨� Common.Logic.CurrentLogic.Relationship = 1; - //Config.Instance.Guid鐢ㄦ潵璇嗗埆璐﹀彿韬唤锛� - var accounts = new System.Collections.Generic.Dictionary<string, string>(); - accounts.Add("Account", Config.Instance.Guid); - Common.Logic.CurrentLogic.Accounts.Add(accounts); - Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1); + Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.linkageevent); var lockLogicCommunalPage = new LockLogicCommunalPage(); UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage); UserView.HomePage.Instance.PageIndex += 1; lockLogicCommunalPage.Show(() => { }); }; - #endregion - middle = new VerticalScrolViewLayout + addiocnclick.MouseUpEventHandler += addclick; + addiocn.MouseUpEventHandler += addclick; + + #endregion + middle = new VerticalRefreshLayout { - Y = topRowLayout.Bottom, - Height = Application.GetRealHeight(1920 - 184), + Y = view.topRowLayout.Bottom, + Height = Application.GetRealHeight(Method.H - 184), BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, }; this.AddChidren(middle); + middle.BeginHeaderRefreshingAction += () => + { + //閲嶆柊鍒锋柊logic鍒楄〃 + Common.Logic.LockLogicList.Clear(); + Read(); + //鍏抽棴鍒锋柊View锛� + middle.EndHeaderRefreshing(); + }; + Read(); + } + + /// <summary> + /// 璇诲彇鑷姩鍖栨暟鎹� + /// </summary> + public async void Read() + { CommonPage.Loading.Start(); - if (Common.Logic.LockLogicList.Count == 0) + if (!BoolExist()) { var Idlist = await Send.GetLogicId(1); if (Idlist.Count != 0) @@ -112,44 +94,77 @@ for (int j = 0; j < listlogic.Count; j++) { var logic = listlogic[j]; - if (logic.LogicType == 0) + if (logic.LogicType != 1) { continue; } - bool yes = false; - for (int a = 0; a < logic.Accounts.Count; a++) - { - if (logic.Accounts[a]["Account"].ToString() == Config.Instance.Guid) - { - //鏌ユ壘鑷繁璐﹀彿涓嬬殑鍒涘缓鑱斿姩浜嬩欢锛� - yes = true; - break; - } - } - if (yes) - { - Common.Logic.LockLogicList.Add(listlogic[j]); - } + Common.Logic.LockLogicList.Add(logic); + } } } - //鑷姩鍖� Automationview(); CommonPage.Loading.Hide(); } - - void Automationview() + /// <summary> + /// 鍔犺浇鑷姩鍖栧垪琛ㄧ殑鐣岄潰 + /// </summary> + public void Automationview() { middle.RemoveAll(); + + //if (Common.Logic.LockLogicList.Count == 0) + if (!BoolExist()) + { + //灏辨槸涓轰簡鏄剧ず寮曞娣诲姞鍥炬爣; + var noFrameLayout = new FrameLayout + { + Height = Application.GetRealHeight(434 + 200 + 32 + 320), + //BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, + }; + middle.AddChidren(noFrameLayout); + + + var noIconBtn = new Button + { + Y = Application.GetRealHeight(320), + Width = Application.GetMinRealAverage(756), + Height = Application.GetMinRealAverage(434), + UnSelectedImagePath = "Item/NoFunction.png", + X = Application.GetRealWidth(162), + }; + noFrameLayout.AddChidren(noIconBtn); + + var noTextBtn = new Button() + { + Y = noIconBtn.Bottom, + Height = Application.GetRealHeight(200) + Application.GetRealHeight(32), + Width = Application.GetRealWidth(700), + //Gravity = Gravity.CenterHorizontal, + Text = Language.StringByID(MyInternationalizationString.tiplocktextnull).Replace("{\\r\\n}", "\r\n"), + TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, + TextAlignment = TextAlignment.Center, + IsMoreLines = true, + X = Application.GetRealWidth(190), + }; + noFrameLayout.AddChidren(noTextBtn); + + } for (int i = 0; i < Common.Logic.LockLogicList.Count; i++) { var logic = Common.Logic.LockLogicList[i]; + if (!Exist(logic)) + { + continue; + } + var logicRowlayout = new RowLayout { Width = Application.GetRealWidth(1080), Height = Application.GetRealHeight(190), - LineColor = ZigbeeColor.Current.LogicBackgroundColor, + LineColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, + SubViewWidth = Application.GetRealWidth(184),//鏀瑰彉缂栬緫鎺т欢瀹藉害澶氬皯锛� }; middle.AddChidren(logicRowlayout); @@ -163,14 +178,15 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicTextBlackColor, Gravity = Gravity.CenterVertical, + TextSize = 15, }; logicRowlayout.AddChidren(logicnameBtn); var logicswitchBtn = new Button { - Width = Application.GetMinRealAverage(104), - Height = Application.GetMinRealAverage(63), + Width = Application.GetRealWidth(104), + Height = Application.GetRealHeight(63), UnSelectedImagePath = "ZigeeLogic/logicclose.png", SelectedImagePath = "ZigeeLogic/logicopen.png", X = logicRowlayout.Width - Application.GetRealWidth(104 + 58), @@ -194,6 +210,14 @@ Send.LogicControlSwitch(logic); }; + if (logic.IsEnable == 1) + { + logicswitchBtn.IsSelected = true; + } + else if (logic.IsEnable == 0) + { + logicswitchBtn.IsSelected = false; + } ///缂栬緫 var edit = new Button { @@ -212,7 +236,6 @@ }; - ///鍒犻櫎 var del = new Button { @@ -223,22 +246,65 @@ logicRowlayout.AddRightView(del); del.MouseUpEventHandler += (sender, e) => { - var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete), - Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim)); - alert.ResultEventHandler += (sender1, e1) => - { - if (e1) - { - Common.Logic.LogicList.Remove(logic); - Automationview(); - Send.DelLogic(logic.LogicId); - } - }; + var alert = new ShowMsgControl(ShowMsgType.Confirm, + Language.StringByID(MyInternationalizationString.doyouwanttodelete), + Language.StringByID(MyInternationalizationString.confrim)); alert.Show(); + alert.ConfirmClickEvent += () => + { + Common.Logic.LockLogicList.Remove(logic); + Automationview(); + Send.DelLogic(logic.LogicId); + }; }; } } + + + /// <summary> + /// 鏌ユ壘璇ラ棬閿佹槸鍚﹀瓨鍦ㄨ嚜鍔ㄥ寲 + /// </summary> + /// <returns></returns> + private bool BoolExist() + { + bool yes = false; + for (int i = 0; i < Common.Logic.LockLogicList.Count; i++) + { + var logic = Common.Logic.LockLogicList[i]; + if (logic.LogicType != 1) + { + continue; + } + + if (Exist(logic)) + { + yes = true; + //瀛樺湪灏遍��鍑� + break; + } + } + return yes; + } + + /// <summary> + /// 鏌ユ壘杩欎竴鏉¤嚜鍔ㄥ寲鏄惁灞炰簬璇ラ棬閿� + /// </summary> + /// <returns></returns> + private bool Exist(Common.Logic logic) + { + for (int j = 0; j < logic.Accounts.Count; j++) + { + //Option4鏄澶噈ac锛汷ption2鏄澶囩鍙o紱 + if (logic.Accounts[j]["Option4"].ToString() == Send.CurrentDoorLock.DeviceAddr) + { + //鏌ユ壘鏄惁鏄偅涓棬閿侊紱 + //濡傛灉涓嶆槸璇ラ棬閿佽仈鍔ㄤ簨浠朵笉鏄剧ず鍑烘潵; + return true; + } + } + return false; + } } } -- Gitblit v1.8.0