From c1de48884fa145a16a0f8bcee93274dcfaa0ff82 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 07 五月 2020 10:40:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev-tzy' into dev-2020xm --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs | 223 +++++++++++++++++++++++++------------------------------ 1 files changed, 103 insertions(+), 120 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs old mode 100755 new mode 100644 index bb30fa1..9d2ce5c --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs @@ -11,6 +11,10 @@ { #region 鏈湴鍙橀噺 /// <summary> + /// 鏇存柊鈥滈�昏緫甯稿紑鈥濈晫闈㈢殑鍥炶皟 + /// </summary> + public static Action<bool> LogicAction = null; + /// <summary> /// 缃戝叧锛堥棬閿侊級鎵�鍦ㄧ殑鏃堕棿 /// </summary> public static DateTime DoorlockZoneTime = DateTime.Now; @@ -97,10 +101,10 @@ #region 甯稿紑妯″紡 API /// <summary> - /// 鑾峰彇褰撳墠闂ㄩ攣鐨勫父寮�妯″紡 + /// 鑾峰彇褰撳墠闂ㄩ攣鐨勫父寮�妯″紡 /// </summary> - /// <param name="doorLock:褰撳墠闂ㄩ攣"></param> - /// <returns>null:娌℃湁鍥炲 锛� true:闂ㄩ攣甯稿紑锛沠alse锛氶棬閿佸父鍏�</returns> + /// <param name="doorLock:褰撳墠闂ㄩ攣"></param> + /// <returns>null:娌℃湁鍥炲 锛� true:闂ㄩ攣甯稿紑锛沠alse锛氶棬閿佸父鍏�</returns> public static async System.Threading.Tasks.Task<bool?> GetNormallyOpenMode(ZigBee.Device.DoorLock doorLock) { bool? IsDoorLockNormallyMode = null; @@ -127,8 +131,8 @@ /// <summary> /// 闂ㄩ攣鏄惁鏀寔甯稿紑[杩欓噷鏆傛椂鍙湁S-One闂ㄩ攣鏀寔锛孒06C涓嶆敮鎸�, 鍚庢湡閫氳繃鑳藉姏鍊兼敮鎸乚 /// </summary> - /// <param name="doorLock:褰撳墠闂ㄩ攣"></param> - /// <returns></returns> + /// <param name="doorLock:褰撳墠闂ㄩ攣"></param> + /// <returns>true:鏀寔甯稿紑锛沠alse锛� 涓嶆敮鎸佸父寮�</returns> public static bool CanNormallyOpen(ZigBee.Device.DoorLock doorLock) { var listDevice = new List<CommonDevice> { }; @@ -146,14 +150,11 @@ /// </summary> public static void NormallyOpenModeValue(ZigBee.Device.DoorLock doorLock, bool value) { - string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) + doorLock.IsDoorLockNormallyMode = value; + + if (LogicAction != null) { - doorLock.IsDoorLockNormallyMode[key] = value; - } - else - { - doorLock.IsDoorLockNormallyMode.Add(key, value); + LogicAction(value); } } @@ -193,7 +194,7 @@ { if (doorLockMessType == DoorLockMessType.DeviceReport || doorLockMessType == DoorLockMessType.ServicePush) { - //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑堬紝app榛樿浜嗏�滃父寮�妯″紡鈥濊鍙栨秷 + //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑堬紝app榛樿浜嗏�滃父寮�妯″紡鈥濊鍙栨秷 DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); } else @@ -210,17 +211,9 @@ { //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑� Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); - //鍏堝垹闄ゅ凡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫 - //if (resTemp == 1) - //{ - // var restulTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3); - // //if (restulTemp == 3) - // //{ - // // string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed2); - // // this.ShowTipMsg(msg0); - // // return; - // //} - //} + + //娓╁眳鍩庢柟娉曪紵锛燂紵 + //姝ゅ鏄惁瑕佸垹闄ゆ俯灞呭煄鐨勭壒娈婇�昏緫 //app閲嶆柊寮�鍚�滃父寮�妯″紡鈥� var result = await doorLock.SetNormallyOpenModeFuncAsync(true); @@ -232,7 +225,6 @@ ShowTipMsg(msg0); NormallyOpenModeValue(doorLock, false); CommonPage.Loading.Hide(); - //new Tip() { MaxWidth = 150, Text = msg0, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); }); action?.Invoke(); return; @@ -245,14 +237,13 @@ ShowTipMsg(msg1); NormallyOpenModeValue(doorLock, false); CommonPage.Loading.Hide(); - //new Tip() { MaxWidth = 150, Text = msg1, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); }); action?.Invoke(); return; } else { - //鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 + //鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 var resu = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock); Application.RunOnMainThread(() => { @@ -260,13 +251,12 @@ ShowTipMsg(msg0); NormallyOpenModeValue(doorLock, true); CommonPage.Loading.Hide(); - //new Tip() { MaxWidth = 150, Text = msg0, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); }); } } else { - //app鎿嶄綔涓嶅彇娑堚�滃父寮�妯″紡鈥� + //app鎿嶄綔涓嶅彇娑堚�滃父寮�妯″紡鈥� DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true); } action?.Invoke(); @@ -279,12 +269,8 @@ NormallyOpenModeValue(doorLock, false); if (haveLogic) { - var resTemp2 = await Shared.Phone.Device.Logic.SkipView.Exist(3); - //if (resTemp2 == 3) - //{ - // string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed); - // this.ShowTipMsg(msg0); - //} + //娓╁眳鍩庢柟娉曪紵锛燂紵 + //姝ゅ鏄惁瑕佸垹闄ゆ俯灞呭煄鐨勭壒娈婇�昏緫 } } else @@ -298,7 +284,6 @@ { ShowTipMsg(Language.StringByID(R.MyInternationalizationString.GwResponseOvertime)); CommonPage.Loading.Hide(); - //new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); }); action?.Invoke(); return; @@ -310,7 +295,6 @@ string msg1 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeFailed); ShowTipMsg(msg1); CommonPage.Loading.Hide(); - //new Tip() { MaxWidth = 150, Text = msg1, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); }); action?.Invoke(); return; @@ -319,28 +303,14 @@ { //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰� HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(doorLock, 9002, string.Empty); - //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔� + //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔� NormallyOpenModeValue(doorLock, false); //鍒犻櫎璁剧疆甯稿紑妯″紡鍒涘缓鐨勯�昏緫 if (haveLogic) { var resTemp1 = await Shared.Phone.Device.Logic.SkipView.Exist(3); - //鍥犱负鐩墠鏈哄埗闂锛岄�昏緫缁忓父澶辫触锛屾墍浠ヤ笉鎻愮ず锛屽悗鏈熸満鍒惰鏀癸紝閲嶆柊鍋氫竴涓繖涓晫闈� - //if (resTemp1 == 3) - //{ - //Application.RunOnMainThread(() => - //{ - // string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed); - // ShowTipMsg(msg0); - //}); - //} - //else if (resTemp1 == 2) - //{ - //Application.RunOnMainThread(() => - //{ - // string msg0 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess); - // ShowTipMsg(msg0); - //}); + //娓╁眳鍩庢柟娉曪紵锛燂紵 + //姝ゅ鏄惁瑕佸垹闄ゆ俯灞呭煄鐨勭壒娈婇�昏緫 } Application.RunOnMainThread(() => { @@ -354,30 +324,54 @@ }; } - /// <summary> - /// 鍒犻櫎甯稿紑妯″紡 - /// </summary> - /// <param name="doorLock">褰撳墠闂ㄩ攣</param> - /// <param name="action">鍥炶皟澶勭悊鏇存柊鍐呭</param> - /// <returns></returns> - public static async System.Threading.Tasks.Task<bool> DelNormallyOpenMode(ZigBee.Device.DoorLock doorLock, Action action = null) - { - //app鎿嶄綔鍙栨秷鈥滃父寮�妯″紡鈥� - var result = await doorLock.SetNormallyOpenModeFuncAsync(false); - if (result == null || result.defaultControlResponseData == null || result.defaultControlResponseData.status != 0) - { - action?.Invoke(); - return false; - } - - if (result.defaultControlResponseData.status == 0) - { - //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔� - NormallyOpenModeValue(doorLock, false); - action?.Invoke(); - return true; - } - return false; + /// <summary> + /// 鍒犻櫎甯稿紑妯″紡 + /// </summary> + /// <param name="doorLock">褰撳墠闂ㄩ攣</param> + /// <param name="action">鍥炶皟澶勭悊鏇存柊鍐呭</param> + /// <returns></returns> + public static async System.Threading.Tasks.Task<bool> DelNormallyOpenMode(ZigBee.Device.DoorLock doorLock, Action action = null) + { + //app鎿嶄綔鍙栨秷鈥滃父寮�妯″紡鈥� + var result = await doorLock.SetNormallyOpenModeFuncAsync(false); + if (result == null || result.defaultControlResponseData == null || result.defaultControlResponseData.status != 0) + { + action?.Invoke(); + return false; + } + + if (result.defaultControlResponseData.status == 0) + { + //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔� + NormallyOpenModeValue(doorLock, false); + action?.Invoke(); + return true; + } + return false; + } + + /// <summary> + /// 璁剧疆甯稿紑妯″紡 + /// </summary> + /// <param name="doorLock">褰撳墠闂ㄩ攣</param> + /// <param name="action">鍥炶皟澶勭悊鏇存柊鍐呭</param> + /// <returns></returns> + public static async System.Threading.Tasks.Task<bool> SetNormallyOpenModeFuncAsync(ZigBee.Device.DoorLock doorLock) + { + //app璁剧疆鈥滃父寮�妯″紡鈥濆け璐� + var result = await doorLock.SetNormallyOpenModeFuncAsync(false); + if (result == null || result.defaultControlResponseData == null || result.defaultControlResponseData.status != 0) + { + return false; + } + + if (result.defaultControlResponseData.status == 0) + { + //app璁剧疆鈥滃父寮�妯″紡鈥濇垚鍔� + NormallyOpenModeValue(doorLock, false); + return true; + } + return false; } /// <summary> @@ -398,7 +392,7 @@ return; } - //璁剧疆甯稿紑妯″紡鍚庯紝鎮ㄧ殑闂ㄩ攣灏嗗缁堝浜庢墦寮�鐘舵�侊紝纭寮�鍚紵 + //璁剧疆甯稿紑妯″紡鍚庯紝鎮ㄧ殑闂ㄩ攣灏嗗缁堝浜庢墦寮�鐘舵�侊紝纭寮�鍚紵 string msg = Language.StringByID(R.MyInternationalizationString.SetDoorLockNomallyOpen).Replace("{0}", "\r\n"); var confirm = Language.StringByID(R.MyInternationalizationString.Confrim); var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, confirm); @@ -406,6 +400,27 @@ alert.ConfirmClickEvent += async () => { + NomallyOpenModeInvalidTimeDialog(doorLock, action); + }; + } + + /// <summary> + /// 甯稿紑妯″紡澶辨晥鏃堕棿澶勭悊銆愬脊绐椼�� + /// </summary> + public static async void NomallyOpenModeInvalidTimeDialog(ZigBee.Device.DoorLock doorLock, Action action) + { + //澶辨晥璁剧疆 + string msgTimeInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime); + var timeConfrim = Language.StringByID(R.MyInternationalizationString.Confrim); + var alertTimeInValidSetting = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting, timeConfrim); + alertTimeInValidSetting.Show(); + + alertTimeInValidSetting.InvalidTimeAction += async (obj) => + { + //甯稿紑妯″紡澶辨晥鏃堕棿璁剧疆鎴愬姛 + var temp = int.Parse(obj); + DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp; + Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); var result = await doorLock.SetNormallyOpenModeFuncAsync(true); if (result == null || result.defaultControlResponseData == null) @@ -436,43 +451,12 @@ action?.Invoke(); Application.RunOnMainThread(() => { - NomallyOpenModeInvalidTimeDialog(doorLock); CommonPage.Loading.Hide(); }); } - }; - } - /// <summary> - /// 甯稿紑妯″紡澶辨晥鏃堕棿澶勭悊銆愬脊绐椼�� - /// </summary> - public static async void NomallyOpenModeInvalidTimeDialog(ZigBee.Device.DoorLock doorLock) - { - //澶辨晥璁剧疆 - string msgTimeInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime); - var timeConfrim = Language.StringByID(R.MyInternationalizationString.Confrim); - var alertTimeInValidSetting = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting, timeConfrim); - alertTimeInValidSetting.Show(); - - alertTimeInValidSetting.InvalidTimeAction += async (obj) => - { - //甯稿紑妯″紡澶辨晥鏃堕棿璁剧疆鎴愬姛 - var temp = int.Parse(obj); - DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp; - //榛樿鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 - var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock); - if (!res) - { - Application.RunOnMainThread(() => - { - //榛樿鍒涘缓甯稿紑妯″紡澶辫触 - string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed); - var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, msg0, Language.StringByID(R.MyInternationalizationString.confrim)); - alert.Show(); - //浜屾鍔犺浇寮圭獥 甯稿紑妯″紡寮�鍚彁绀� - NomallyOpenModeInvalidTimeDialog(doorLock); - }); - } + //娓╁眳鍩庢柟娉曪紵锛燂紵 + //姝ゅ鏄惁瑕佸垱寤哄父寮�妯″紡鐨勭壒娈婇�昏緫 }; } #endregion @@ -481,8 +465,8 @@ /// <summary> /// 闂ㄩ攣鏄惁鏀寔闊抽噺[杩欓噷鏆傛椂鍙湁S-One闂ㄩ攣鏀寔锛孒06C涓嶆敮鎸侊紝鍚庢湡閫氳繃鑳藉姏鍊兼敮鎸乚 /// </summary> - /// <param name="doorLock:褰撳墠闂ㄩ攣"></param> - /// <returns></returns> + /// <param name="doorLock:褰撳墠闂ㄩ攣"></param> + /// <returns></returns> public static bool CanVolume(ZigBee.Device.DoorLock doorLock) { var listDevice = new List<CommonDevice> { }; @@ -497,7 +481,7 @@ #endregion - #region 浠庝簯绔幏鍙栫殑鏂规硶 + #region 浠庝簯绔幏鍙栫殑鏂规硶 /// <summary> /// 鑾峰彇褰撳墠璐︽埛闂ㄩ攣鎿嶄綔鏉冮檺锛堟槸鍚﹁鍐荤粨锛� /// </summary> @@ -649,7 +633,7 @@ } - //2銆佽鍙栦簯绔棬閿佷俊鎭� + //2銆佽鍙栦簯绔棬閿佷俊鎭� var getDoorLockInfoAllList = new List<ZigBee.Device.DoorLock.CloudDoorLockObj> { }; var getDoorLockInfoList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAccountInfolist(doorLock); if (getDoorLockInfoList != null) @@ -1135,7 +1119,7 @@ /// <returns></returns> public static DateTime GetDoorLockZoneTime() { - //閫氳繃缁忓害鑾峰彇鏃跺尯 + //閫氳繃缁忓害鑾峰彇鏃跺尯 var gwZone = int.Parse(CaculateTimeZone(Common.Config.Instance.Home.Longitude)); //灏嗘湰鍦版椂闂磋浆鎹㈡垚涓栫晫鏃� var utc = DateTime.Now.AddHours(-gwZone); @@ -1149,7 +1133,7 @@ } /// <summary> - /// 鑾峰彇鏃跺尯 + /// 鑾峰彇鏃跺尯 /// </summary> /// <param name="currentLon">currentLon:"+"涓轰笢鍖猴紝鈥�-鈥濅负瑗垮尯</param> /// <returns></returns> @@ -1210,7 +1194,7 @@ #endregion - #region 涓�鑸柟娉� + #region 涓�鑸柟娉� /// <summary> /// 鏄剧ず閿欒淇℃伅绐楀彛 /// </summary> @@ -1238,6 +1222,5 @@ } #endregion - } } -- Gitblit v1.8.0