From 3f6685c77beeb12baf840733fb890860f4c26e7c Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 25 七月 2024 17:25:59 +0800 Subject: [PATCH] 2024年07月25日17:24:45 --- HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs | 407 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 269 insertions(+), 138 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs index fc60e23..e9393fd 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs @@ -2,7 +2,9 @@ using HDL_ON.Entity; using System.Collections.Generic; using Shared; +using HDL_ON.DAL.Server; #if __IOS__ +using Foundation; #else using Com.Videogo.Hdl; #endif @@ -14,6 +16,7 @@ /// </summary> public class CommonMethod { + private Loading loading; /// <summary> /// 璁板綍褰撳墠鐣岄潰绱㈠紩鍊� @@ -47,20 +50,65 @@ public void SkipAddDeviceActivity(string spk) { - this.InitializationAndroidData((isBools) => + this.InitializationAndroidData((isEzChildAccessToken) => { + this.SunThread(() => + { + var list = this.GetVideoDoorLockLockModelsList("notAllowedConfigNetworkModels"); + this.MainThread(() => + { +#if __IOS__ + //璺宠浆娣诲姞钀ょ煶璁惧 + ezsdkDelegate = new IosIHdlInterface(); + ezsdkDelegate.mAction += (serials) => + { + this.GetYingshiDeviceList(serials); + }; + EZSDK.IOS.EZSDK.SharedInstance().Delegate = ezsdkDelegate; + NSObject[] nSObject = new NSObject[list.Count]; + for (int i = 0; i < list.Count; i++) + { + string strValue = list[i]; + nSObject[i] = new NSString(strValue); + } + EZSDK.IOS.EZSDK.SharedInstance().ConnectTipModels = nSObject; + EZSDK.IOS.EZSDK.SharedInstance().AddEzvizMonitorWithDeviceType(spk); + +#else + HDLEzvizSdk.Instance.JumpToEZScanActivity(Application.Activity, spk,list); + HDLEzvizSdk.SetAddCallback(new + AndroidIHdlInterface((isBool, serials) => + { + if (isBool) + { + this.GetYingshiDeviceList(serials); + } + + })); +#endif + + }); + + + }); + }); + + + + + + } + /// <summary> + /// 璇诲彇浜戠鐨勪笂钀ょ煶璁惧鍒楄〃 + /// <paramref name="serials"/>搴忓垪鍙�</param> + private void GetYingshiDeviceList(string serials) + { + this.SunThread(() => + { + var list = VideDoorLockSend.Current.GetVideoDoorLockDeviceList(SPK.VideoDoorLock); this.MainThread(() => { - if (!isBools) - { - this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�"); - } -#if __IOS__ - //璺宠浆娣诲姞钀ょ煶璁惧 - ezsdkDelegate = new IosIHdlInterface(); - ezsdkDelegate.mAction += (serials) => { - var list = VideDoorLockSend.Current.GetVideoDoorLockDeviceList(SPK.VideoDoorLock); if (list.Count > 0) { var function = list.Find((o) => o.sid == serials); @@ -69,41 +117,8 @@ this.SaveFunctionFile(function); } } - }; - EZSDK.IOS.EZSDK.SharedInstance().Delegate= ezsdkDelegate; - EZSDK.IOS.EZSDK.SharedInstance().AddEzvizMonitorWithDeviceType(spk); - -#else - HDLEzvizSdk.Instance.JumpToEZScanActivity(Application.Activity,spk); - HDLEzvizSdk.SetAddCallback(new AndroidIHdlInterface((isBool, adnroidActionDevSerial) => - { - if (isBool) - { - - var list = VideDoorLockSend.Current.GetVideoDoorLockDeviceList(SPK.VideoDoorLock); - if (list.Count > 0) - { - var function = list.Find((o) => o.sid == adnroidActionDevSerial); - if (function != null) - { - this.SaveFunctionFile(function); - } - } - - - } - - })); -#endif - - }); - - + }); }); - - - - } /// <summary> @@ -115,51 +130,69 @@ /// <param name="isDialog">鏄惁闇�瑕佸脊妗�</param> public void SkipRTVActivity(string deviceSerial, string deviceId, string spk, bool isDialog) { - - this.InitializationAndroidData((isBools) => + this.Loading.Start(); + this.InitializationAndroidData((isEzChildAccessToken) => { - if (!isBools) + this.MainThread(() => { - this.MainThread(() => + this.Loading.Hide(); + if (isDialog) { - this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�"); - - }); - } - - if (isDialog) - { - Video.View.ShowDialog.Currnet.ClickBox(Language.StringByID(StringId.laizimenlinghujiao), (dialog) => + Video.View.ShowDialog.Currnet.ClickBox(Language.StringByID(StringId.laizimenlinghujiao), (dialog) => + { + dialog.Close(); + this.SkipRTVActivity(deviceSerial, deviceId, spk); + }, (dialog) => { dialog.Close(); }); + } + else { - dialog.Close(); -#if __IOS__ - //鎵撳紑钀ょ煶瑙嗛鐣岄潰 - EZSDK.IOS.EZSDK.SharedInstance().PlayWithDeviceSerial(deviceSerial, deviceId, spk); -#else - HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk); -#endif - }, (dialog) => - { - dialog.Close(); - }); - } - else - { -#if __IOS__ - //鎵撳紑钀ょ煶瑙嗛鐣岄潰 - EZSDK.IOS.EZSDK.SharedInstance().PlayWithDeviceSerial(deviceSerial, deviceId, spk); + this.SkipRTVActivity(deviceSerial, deviceId, spk); + } -#else - HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk); -#endif - } - - + }); }); + } + /// <summary> + /// 鎵撳紑瀹炴椂瑙嗛鐢婚潰 + /// </summary> + /// <param name="deviceSerial">璁惧搴忓垪鍙�</param> + /// <param name="deviceId">璁惧id(浜戠涓奷eviceId)</param> + /// <param name="spk">璁惧spk(浜戦泙涓婂畾涔夊ソ鐨�)</param> + private void SkipRTVActivity(string deviceSerial, string deviceId, string spk) + { + +#if __IOS__ + //鎵撳紑钀ょ煶瑙嗛鐣岄潰 + EZSDK.IOS.EZSDK.SharedInstance().PlayWithDeviceSerial(deviceSerial, deviceId, spk); + +#else + HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk,""); +#endif } + /// <summary> + /// 鎵撳紑瀹炴椂瑙嗛鐢婚潰 + /// </summary> + /// <param name="deviceSerial">璁惧搴忓垪鍙�</param> + /// <param name="deviceId">璁惧id(浜戠涓奷eviceId)</param> + /// <param name="spk">璁惧spk(浜戦泙涓婂畾涔夊ソ鐨�)</param> + /// <param name="msgId">娑堟伅id</param> + private void SkipRTVActivity(string deviceSerial, string deviceId, string spk, string msgId) + { + +#if __IOS__ + //鎵撳紑钀ょ煶瑙嗛鐣岄潰 + EZSDK.IOS.EZSDK.SharedInstance().PlayWithDeviceSerial(deviceSerial, deviceId, spk, msgId); + +#else + HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk,msgId); +#endif + + + } + /// <summary> /// 娴忚鍘嗗彶璁板綍 /// </summary> @@ -167,16 +200,17 @@ { this.InitializationAndroidData((s) => { - + this.MainThread(() => + { #if __IOS__ - //鎵撳紑钀ょ煶鍘嗗彶璁板綍鐣岄潰 - EZSDK.IOS.EZSDK.SharedInstance().ToDeviceMsgListView(deviceId); + //鎵撳紑钀ょ煶鍘嗗彶璁板綍鐣岄潰 + EZSDK.IOS.EZSDK.SharedInstance().ToDeviceMsgListView(deviceId); #else HDLEzvizSdk.Instance.JumpLockHistoryActivity(Application.Activity, deviceId); #endif - + }); }); - + } /// <summary> /// 涓存椂瀵嗙爜寮�闂� @@ -186,21 +220,15 @@ { this.InitializationAndroidData((isBools) => { - if (!isBools) + this.MainThread(() => { - this.MainThread(() => - { - this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�"); - - }); - } #if __IOS__ - //鎵撳紑钀ょ煶涓存椂瀵嗙爜鐣岄潰 - EZSDK.IOS.EZSDK.SharedInstance().ToTemPassView(deviceId); + //鎵撳紑钀ょ煶涓存椂瀵嗙爜鐣岄潰 + EZSDK.IOS.EZSDK.SharedInstance().ToTemPassView(deviceId); #else HDLEzvizSdk.Instance.JumpTempPasswordActivity(Application.Activity, deviceId); #endif - + }); }); } @@ -209,9 +237,8 @@ /// </summary> public void InitializationAndroidData(Action<bool> action) { - - bool isBool = true; + //this.Loading.Start(); this.SunThread(() => { try @@ -224,29 +251,38 @@ { //Token isBool = false; + //this.ShowTip("鑾峰彇钀ょ煶浜戝瓙璐﹀彿token澶辫触銆�"); return; } - Application.RunOnMainThread(() => - { + + string appKey = "1aa98a90489b4838b966b57018b4b04b";//姝e紡鏈嶅姟鍣� + //if (OnAppConfig.Instance.RequestHttpsHost == "https://test-gz.hdlcontrol.com") + //{ + // appKey = "941b1b72b6294998acfd36c14931b675";//鐢ㄥ湪娴嬭瘯鏈嶅姟鍣ㄦ帹閫佺殑 + //} + + #if __IOS__ - //iOS - //鍒濆鍖栬悿鐭充簯SDK锛屼腑鏂囧浗鍐卥ey銆佽嫳鏂囨捣澶杒ey 寮�鍙戣�呰处鍙蜂娇鐢ㄥ簲鐢ㄥ寘鍚嶇敵璇风殑APPKEY锛屼笉鍚屽寘鍚嶅簲鐢ㄩ渶閰嶇疆涓嶅悓鐨凙PPKEY - EZSDK.IOS.EZSDK.SharedInstance().InitLibWithAppKey("1aa98a90489b4838b966b57018b4b04b", "1aa98a90489b4838b966b57018b4b04b"); - //1.璁剧疆鎵�闇�娌充笢鐨凙ccessToken鍜孯efreshToken銆佸煙鍚嶅湴鍧� - EZSDK.IOS.EZSDK.SharedInstance().SetHDlAccessToken(UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken); - EZSDK.IOS.EZSDK.SharedInstance().SetRequestHttpsHostAndPlatform(OnAppConfig.Instance.RequestHttpsHost, 1, DB_ResidenceData.Instance.CurrentRegion.id); - //2.璁剧疆钀ょ煶瀛愯处鍙风殑AccessToken鍒癝DK - EZSDK.IOS.EZSDK.SharedInstance().SetEZAccessToken(ezChildAccessToken); - //////3.鎵撳紑鎽勫儚澶磋澶囧垪琛ㄩ〉闈� - //EZSDK.IOS.EZSDK.SharedInstance().Go2EZvizMonitor(); - //EZSDK.IOS.EZDeviceInfo info = new EZSDK.IOS.EZDeviceInfo(); - //info.de - //EZSDK.IOS.EZSDK.Play(info); + //iOS + //鍒濆鍖栬悿鐭充簯SDK锛屼腑鏂囧浗鍐卥ey銆佽嫳鏂囨捣澶杒ey 寮�鍙戣�呰处鍙蜂娇鐢ㄥ簲鐢ㄥ寘鍚嶇敵璇风殑APPKEY锛屼笉鍚屽寘鍚嶅簲鐢ㄩ渶閰嶇疆涓嶅悓鐨凙PPKEY + EZSDK.IOS.EZSDK.SharedInstance().InitLibWithAppKey(appKey, appKey); + //1.璁剧疆鎵�闇�娌充笢鐨凙ccessToken鍜孯efreshToken銆佸煙鍚嶅湴鍧� + EZSDK.IOS.EZSDK.SharedInstance().SetHDlAccessToken(UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken); + EZSDK.IOS.EZSDK.SharedInstance().SetRequestHttpsHostAndPlatform(OnAppConfig.Instance.RequestHttpsHost, 1, DB_ResidenceData.Instance.CurrentRegion.id); + //2.璁剧疆钀ょ煶瀛愯处鍙风殑AccessToken鍒癝DK + EZSDK.IOS.EZSDK.SharedInstance().SetEZAccessToken(ezChildAccessToken); + //////3.鎵撳紑鎽勫儚澶磋澶囧垪琛ㄩ〉闈� + //EZSDK.IOS.EZSDK.SharedInstance().Go2EZvizMonitor(); + //EZSDK.IOS.EZDeviceInfo info = new EZSDK.IOS.EZDeviceInfo(); + //info.de + //EZSDK.IOS.EZSDK.Play(info); #else - HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, "1aa98a90489b4838b966b57018b4b04b", 1, DB_ResidenceData.Instance.CurrentRegion.id); + + HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, appKey, 1, DB_ResidenceData.Instance.CurrentRegion.id, + HttpUtil.APP_KEY, HttpUtil.SECRET_KEY); #endif - }); + }); @@ -258,6 +294,7 @@ { this.MainThread(() => { + //this.Loading.Hide(); action?.Invoke(isBool); }); } @@ -270,26 +307,124 @@ /// <param name="home">瀵硅薄</param> public void ChangeCurrHome(RegionInfoRes home) { - + if (DB_ResidenceData.Instance.CurrentRegion.id == home.id || string.IsNullOrEmpty(home.id)) return; #if __IOS__ #else HDLEzvizSdk.Instance.SetHomeId(home.id); + #endif } #endregion /// <summary> - /// 鑾峰彇闂ㄩ攣鍨嬪彿鍒楄〃 + /// 鑾峰彇銆愰棬閿佸瀷鍙枫�戝垪琛� /// </summary> /// <returns>杩斿洖缁撴灉涓嶄細涓簄ull</returns> - public List<string> GetVideoDoorLockLockModelsList() + public List<string> GetVideoDoorLockLockModelsList(string mode = "lockModels") { - return VideDoorLockSend.Current.GetVideoDoorLockLockModelsList(); + var lockModels = VideDoorLockSend.Current.GetVideoDoorLockLockModelsList(); + if (mode == "lockModels") + { + return lockModels.lockModels; + } + else + { + return lockModels.notAllowedConfigNetworkModels; + } } + /// <summary> + /// 闂ㄩ攣鎺ㄩ�� + /// </summary> + /// <param name="pushMessageType"></param> + /// <param name="jPushMessageInfo"></param> + public void DoorLockPush(JPushMessageInfo jpushMessageInfo) + { + this.MainThread(() => + { + if (string.IsNullOrEmpty(jpushMessageInfo.expantContent)) return; + try + { + //{ "deviceSid":"J92513662","type":"opendoormsg","extDevId":"J92513662","deviceId":"1641010144999936001","spk":"security.door.ezviz"} + var expantContent = Newtonsoft.Json.JsonConvert.DeserializeObject<ExpantContent>(jpushMessageInfo.expantContent); + if (expantContent == null) + { + return; + } + if (expantContent.spk == null) + { + return; + } + if ( expantContent.spk != SPK.VideoDoorLock) + { + return; + } + if (jpushMessageInfo.messageType.Contains(PushMessageType.DOOR_BELL.ToString())) + { + ///鎵撳紑瑙嗛闂ㄩ攣 + string currentTimeStr = Utlis.GetTimestamp(); // 褰撳墠鏃堕棿 + if (string.IsNullOrEmpty(expantContent.currentTime) && string.IsNullOrEmpty(currentTimeStr) && (long.Parse(currentTimeStr) - long.Parse(expantContent.currentTime)) > 30000) + { // 瓒呮椂30s + this.SkipRTVActivity(expantContent.devSerial, expantContent.deviceId, expantContent.spk, true); + } + else + { + this.SkipRTVActivity(expantContent.devSerial, expantContent.deviceId, expantContent.spk, expantContent.msgId); + } + } + else if (jpushMessageInfo.messageType.Contains(PushMessageType.Alarm.ToString())) + { + //浣庣數閲忔帹閫� + this.UpdateDoorLockState(PushMessageType.Alarm); + } + else if (jpushMessageInfo.messageType.Contains(PushMessageType.Prompt.ToString())) + { + //寮�闂ㄦ帹閫� + this.UpdateDoorLockState(PushMessageType.Prompt); + } + }catch(Exception ex) + { + + } + }); + } + /// <summary> + /// 鏇存柊寮�閿佸浘鏍囧拰鐢垫睜鐘舵�� + /// </summary> + private void UpdateDoorLockState(PushMessageType pushMessageType) + { + int childrenCount = MainPage.BasePageView.ChildrenCount - 1; + for (int i = childrenCount; childrenCount > i; i--) + { + View view = MainPage.BasePageView.GetChildren(i); + if (view is VideoDoorLockPage) + { + VideoDoorLockPage videoDoorLockPage = (VideoDoorLockPage)view; + if (videoDoorLockPage != null) + { + videoDoorLockPage.UpdateState(pushMessageType); + } + + } + } + + } + /// <summary> + /// 鑾峰彇钀ょ煶瑙嗛銆愰棬閿併�戝垪琛� + /// </summary> + /// <returns></returns> + public List<Function> GetVideoDoorLockList() + { + var list = FunctionList.List.GetVideoDoorLockList(); +#if DEBUG + //list.Add(new Function { name = "瑙嗛闂ㄩ攣涓�", sid = "23456789", spk = SPK.VideoDoorLock }); + //list.Add(new Function { name = "瑙嗛闂ㄩ攣浜�", sid = "2345678922", spk = SPK.VideoDoorLock }); +#endif + return list; + } #region --------- 鍔熻兘鏂囦欢淇濆瓨锛屽垹闄� -------- /// <summary> /// 淇濆瓨鏈湴鏂囦欢 @@ -321,17 +456,18 @@ /// </summary> public string GetVideoDoorLockIcon(Comerom comerom) { + if (comerom == Comerom.collect) { - return "FunctionIcon/DoorLock/VideoDoorLockOpen.png"; + return "FunctionIcon/DoorLock/VideoDoorLockOpen1.png"; } else { - return "FunctionIcon/DoorLock/VideoDoorlockClose.png"; + return "FunctionIcon/DoorLock/VideoDoorlockClose1.png"; } } - + /// <summary> /// 鑾峰彇Loading瀵硅薄 /// </summary> @@ -365,19 +501,7 @@ } - /// <summary> - /// 鑾峰彇钀ょ煶瑙嗛闂ㄩ攣鍒楄〃 - /// </summary> - /// <returns></returns> - public List<Function> GetVideoDoorLockList() - { - var list = FunctionList.List.GetVideoDoorLockList(); -#if DEBUG - //list.Add(new Function { name = "瑙嗛闂ㄩ攣涓�", sid = "23456789", spk = SPK.VideoDoorLock }); - //list.Add(new Function { name = "瑙嗛闂ㄩ攣浜�", sid = "2345678922", spk = SPK.VideoDoorLock }); -#endif - return list; - } + #region ---------鑷畾涔夌嚎绋�(瀛愮嚎绋嬶紝涓荤嚎绋�)-------- /// <summary> /// 瀛愮嚎绋� @@ -461,6 +585,8 @@ new PublicAssmebly().TipMsgAutoClose(msg, false, time * 1000); }); } + + #endregion /// <summary> /// 寮规绫诲瀷 @@ -480,19 +606,20 @@ collect,//鏀惰棌 room,//鎴块棿 push,//鎺ㄩ�� + sanfan,//娣诲姞绗笁鏂硅澶� } #if __IOS__ IosIHdlInterface ezsdkDelegate; /// <summary> - /// 涓撻棬瀹氫箟缁橧os鍥炶皟鐢ㄧ潃,娌℃湁鐗规畩鍚箟 + /// 涓撻棬瀹氫箟缁橧os鍥炶皟鐢�,娌℃湁鐗规畩鍚箟 /// </summary> public class IosIHdlInterface : EZSDK.IOS.EZSDKDelegate { - public Action<string> mAction; + public Action<string> mAction; public IosIHdlInterface() { - + } /// <summary> /// @@ -506,12 +633,13 @@ } #else /// <summary> - /// 涓撻棬瀹氫箟缁欏畨鍗撳洖璋冪敤鐫�,娌℃湁鐗规畩鍚箟 + /// 涓撻棬瀹氫箟缁欏畨鍗撳洖璋冪敤,娌℃湁鐗规畩鍚箟 /// </summary> public class AndroidIHdlInterface : Java.Lang.Object, IHdlInterface { Action<bool,string> mAction; + Action<string> mDoorlockAnswer; public AndroidIHdlInterface(Action<bool,string> action) { mAction = action; @@ -526,7 +654,10 @@ mAction?.Invoke(p0,p1); } - + public void DoorlockAnswer(string p0) + { + mDoorlockAnswer?.Invoke(p0); + } } #endif -- Gitblit v1.8.0