From a3313818a548d51777ae4e6cc006e9d1e2c1036e Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期五, 07 四月 2023 09:15:37 +0800
Subject: [PATCH] 群控备份

---
 HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs |  353 ++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 243 insertions(+), 110 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs
index ccca825..6613907 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs
@@ -2,6 +2,7 @@
 using HDL_ON.Entity;
 using System.Collections.Generic;
 using Shared;
+using HDL_ON.DAL.Server;
 #if __IOS__
 #else
 using Com.Videogo.Hdl;
@@ -39,49 +40,71 @@
 
         }
 
-#region  --------- 璺宠浆鍒癆ndroid閭h竟鐨勬柟娉�(钀ょ煶瑙嗛闂ㄩ攣) --------
+        #region  --------- 璺宠浆鍒癆ndroid锛宨os閭h竟鐨勬柟娉�(钀ょ煶瑙嗛闂ㄩ攣) --------
         /// <summary>
-        /// 璇诲彇浜戠鐨勪笂璁惧鍒楄〃(android婧愮敓娣诲姞璁惧鍒颁簯绔垚鍔熷悗)
-        /// <paramref name="devSerial"/>璁惧搴忓垪鍙�</param>
-        /// </summary>
+        /// android,ios婧愮敓娣诲姞璁惧鍒颁簯绔垚鍔熷悗鍥炶皟鏂规硶
+        /// 鍐嶈鍙栦簯绔殑涓婅悿鐭宠澶囧垪琛�
+        /// <paramref name="spk"/>spk</param>
         public void SkipAddDeviceActivity(string spk)
         {
+
+            this.InitializationAndroidData((isEzChildAccessToken) =>
+            {
+
+                this.MainThread(() =>
+                {
 #if __IOS__
+                    //璺宠浆娣诲姞钀ょ煶璁惧
+                    ezsdkDelegate = new IosIHdlInterface();
+                    ezsdkDelegate.mAction += (serials) =>
+                    {
+                        this.GetYingshiDeviceList(serials);
+                    };
+                    EZSDK.IOS.EZSDK.SharedInstance().Delegate = ezsdkDelegate;
+                    EZSDK.IOS.EZSDK.SharedInstance().AddEzvizMonitorWithDeviceType(spk);
 
 #else
-            this.InitializationAndroidData((isBools) =>
-            {
-                if (!isBools) {
-                    this.MainThread(()=> {
-                        this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�");
-
-                    });
-                }
                 HDLEzvizSdk.Instance.JumpToEZScanActivity(Application.Activity,spk);
-                HDLEzvizSdk.SetAddCallback(new AndroidIHdlInterface((isBool, adnroidActionDevSerial) =>
+                HDLEzvizSdk.SetAddCallback(new AndroidIHdlInterface((isBool, serials) =>
                 {
                     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);
-                            }
-                        }
-
-
+                        this.GetYingshiDeviceList(serials);
                     }
 
                 }));
+#endif
+
+                });
+
+
             });
 
 
 
-#endif
+
+
+        }
+        /// <summary>
+        /// 璇诲彇浜戠鐨勪笂钀ょ煶璁惧鍒楄〃
+        /// <paramref name="serials"/>搴忓垪鍙�</param>
+        private void GetYingshiDeviceList(string serials)
+        {
+            this.SunThread(() =>
+            {
+                var list = VideDoorLockSend.Current.GetVideoDoorLockDeviceList(SPK.VideoDoorLock);
+                this.MainThread(() =>
+                {
+                    if (list.Count > 0)
+                    {
+                        var function = list.Find((o) => o.sid == serials);
+                        if (function != null)
+                        {
+                            this.SaveFunctionFile(function);
+                        }
+                    }
+                });
+            });
 
         }
         /// <summary>
@@ -90,49 +113,69 @@
         /// <param name="deviceSerial">璁惧搴忓垪鍙�</param>
         /// <param name="deviceId">璁惧id(浜戠涓奷eviceId)</param>
         /// <param name="spk">璁惧spk(浜戦泙涓婂畾涔夊ソ鐨�)</param>
-        public void SkipRTVActivity(string deviceSerial, string deviceId, string spk)
+        /// <param name="isDialog">鏄惁闇�瑕佸脊妗�</param>
+        public void SkipRTVActivity(string deviceSerial, string deviceId, string spk, bool isDialog)
         {
-#if __IOS__
-#else
-            this.InitializationAndroidData((isBools) =>
+
+            this.InitializationAndroidData((isEzChildAccessToken) =>
             {
-                if (!isBools)
+                this.MainThread(() =>
                 {
-                    this.MainThread(() => {
-                        this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�");
+                    if (isDialog)
+                    {
+                        Video.View.ShowDialog.Currnet.ClickBox(Language.StringByID(StringId.laizimenlinghujiao), (dialog) =>
+                        {
+                            dialog.Close();
+                            this.SkipRTVActivity(deviceSerial, deviceId, spk);
+                        }, (dialog) => { dialog.Close(); });
+                    }
+                    else
+                    {
+                        this.SkipRTVActivity(deviceSerial, deviceId, spk);
+                    }
 
-                    });
-                }
-                Video.View.ShowDialog.Currnet.ClickBox(Language.StringByID(StringId.laizimenlinghujiao), (dialog) =>
-                {
-                    dialog.Close();
-                    HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk);
-                }, (dialog) =>
-                {
-                    dialog.Close();
                 });
-               
             });
-          
 
-#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>
         public void SkipRecordActivity(string deviceId)
         {
-            this.InitializationAndroidData((s)=> {
-
+            this.InitializationAndroidData((s) =>
+            {
+                this.MainThread(() =>
+                {
 #if __IOS__
+                    //鎵撳紑钀ょ煶鍘嗗彶璁板綍鐣岄潰
+                    EZSDK.IOS.EZSDK.SharedInstance().ToDeviceMsgListView(deviceId);
 #else
                 HDLEzvizSdk.Instance.JumpLockHistoryActivity(Application.Activity, deviceId);
 #endif
-
+                });
             });
-            //鏈疄鐜�
-            //this.InitializationAndroidData();
-            //
+
         }
         /// <summary>
         /// 涓存椂瀵嗙爜寮�闂�
@@ -140,22 +183,17 @@
         /// </summary>
         public void SkipPSWActivity(string deviceId)
         {
-
             this.InitializationAndroidData((isBools) =>
             {
-                if (!isBools)
+                this.MainThread(() =>
                 {
-                    this.MainThread(() =>
-                    {
-                        this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�");
-
-                    });
-                }
 #if __IOS__
+                    //鎵撳紑钀ょ煶涓存椂瀵嗙爜鐣岄潰
+                    EZSDK.IOS.EZSDK.SharedInstance().ToTemPassView(deviceId);
 #else
-                HDLEzvizSdk.Instance.JumpTempPasswordActivity(Application.Activity, deviceId);
+                HDLEzvizSdk.Instance.JumpTempPasswordActivity(Application.Activity, deviceId); 
 #endif
-
+                });
             });
         }
 
@@ -164,8 +202,6 @@
         /// </summary>
         public void InitializationAndroidData(Action<bool> action)
         {
-           
-   
             bool isBool = true;
             this.SunThread(() =>
             {
@@ -179,29 +215,29 @@
                         {
                             //Token
                             isBool = false;
-                            return; 
+                            this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�");
+                            return;
                         }
-                        Application.RunOnMainThread(() =>
-                        {
+
 #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("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);
 #else
                             HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, "1aa98a90489b4838b966b57018b4b04b", 1, DB_ResidenceData.Instance.CurrentRegion.id);
 
 #endif
-                        });
+
 
                     });
 
@@ -225,28 +261,97 @@
         /// <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
+        #endregion
 
         /// <summary>
-        /// 钀ょ煶瑙嗛闂ㄩ攣鐨勫浘鏍�
-        /// <param name="comerom">鏉ヨ嚜閭i噷</param>
+        /// 鑾峰彇銆愰棬閿佸瀷鍙枫�戝垪琛�
         /// </summary>
-        public string GetVideoDoorLockIcon(Comerom comerom)
+        /// <returns>杩斿洖缁撴灉涓嶄細涓簄ull</returns>
+        public List<string> GetVideoDoorLockLockModelsList()
         {
-            if (comerom == Comerom.collect)
+            return VideDoorLockSend.Current.GetVideoDoorLockLockModelsList();
+        }
+        /// <summary>
+        /// 闂ㄩ攣鎺ㄩ��
+        /// </summary>
+        /// <param name="pushMessageType"></param>
+        /// <param name="jPushMessageInfo"></param>
+        public void DoorLockPush(JPushMessageInfo jpushMessageInfo)
+        {
+            this.MainThread(() =>
             {
-                return "FunctionIcon/DoorLock/VideoDoorLockOpen.png";
-            }
-            else
+                if (string.IsNullOrEmpty(jpushMessageInfo.expantContent)) return;
+                //{ "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 != SPK.VideoDoorLock)
+                {
+                    return;
+                }
+                if (jpushMessageInfo.messageType.Contains(PushMessageType.DOOR_BELL.ToString()))
+                {
+                    ///鎵撳紑瑙嗛闂ㄩ攣
+                    this.SkipRTVActivity(expantContent.devSerial, expantContent.deviceId, expantContent.spk, true);
+                }
+                else if (jpushMessageInfo.messageType.Contains(PushMessageType.Alarm.ToString()))
+                {
+                    //浣庣數閲忔帹閫�
+                    this.UpdateDoorLockState(PushMessageType.Alarm);
+                }
+                else if (jpushMessageInfo.messageType.Contains(PushMessageType.Prompt.ToString()))
+                {
+                    //寮�闂ㄦ帹閫�
+                    this.UpdateDoorLockState(PushMessageType.Prompt);
+                }
+            });
+
+        }
+        /// <summary>
+        /// 鏇存柊寮�閿佸浘鏍囧拰鐢垫睜鐘舵��
+        /// </summary>
+        private void UpdateDoorLockState(PushMessageType pushMessageType)
+        {
+            int childrenCount = MainPage.BasePageView.ChildrenCount - 1;
+            for (int i = childrenCount; childrenCount > i; i--)
             {
-                return "FunctionIcon/DoorLock/VideoDoorlockClose.png";
+                View view = MainPage.BasePageView.GetChildren(i);
+                if (view is VideoDoorLockPage)
+                {
+                    VideoDoorLockPage videoDoorLockPage = (VideoDoorLockPage)view;
+                    if (videoDoorLockPage != null)
+                    {
+                        videoDoorLockPage.UpdateState(pushMessageType);
+                    }
+
+                }
             }
 
         }
-#region  --------- 鍔熻兘鏂囦欢淇濆瓨锛屽垹闄� --------
+        /// <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>
         /// 淇濆瓨鏈湴鏂囦欢
         /// </summary>
@@ -270,7 +375,24 @@
             FunctionList.List.DeleteFunction(function);
             MainPage.Log($"鏂囦欢鍒犻櫎->{function.name}-->{function.spk}");
         }
-#endregion
+        #endregion
+        /// <summary>
+        /// 钀ょ煶瑙嗛闂ㄩ攣鐨勫浘鏍�
+        /// <param name="comerom">鏉ヨ嚜閭i噷</param>
+        /// </summary>
+        public string GetVideoDoorLockIcon(Comerom comerom)
+        {
+            if (comerom == Comerom.collect)
+            {
+                return "FunctionIcon/DoorLock/VideoDoorLockOpen.png";
+            }
+            else
+            {
+                return "FunctionIcon/DoorLock/VideoDoorlockClose.png";
+            }
+
+        }
+
         /// <summary>
         /// 鑾峰彇Loading瀵硅薄
         /// </summary>
@@ -304,20 +426,8 @@
 
         }
 
-        /// <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  ---------鑷畾涔夌嚎绋�(瀛愮嚎绋嬶紝涓荤嚎绋�)--------
+       
+        #region  ---------鑷畾涔夌嚎绋�(瀛愮嚎绋嬶紝涓荤嚎绋�)--------
         /// <summary>
         /// 瀛愮嚎绋�
         /// </summary>
@@ -359,8 +469,8 @@
             });
 
         }
-#endregion
-#region  --------- 鎻愮ず妗嗭紝纭妗� --------
+        #endregion
+        #region  --------- 鎻愮ず妗嗭紝纭妗� --------
         /// <summary>
         /// 瀵硅瘽妗�(鍙绋嬪簭鎶ラ敊鐨勬椂鍊欐墠鐢ㄥ埌)
         /// </summary>
@@ -400,7 +510,9 @@
                 new PublicAssmebly().TipMsgAutoClose(msg, false, time * 1000);
             });
         }
-#endregion
+
+     
+        #endregion
         /// <summary>
         /// 寮规绫诲瀷
         /// </summary>
@@ -422,9 +534,30 @@
         }
 
 #if __IOS__
+        IosIHdlInterface ezsdkDelegate;
+        /// <summary>
+        /// 涓撻棬瀹氫箟缁橧os鍥炶皟鐢ㄧ潃,娌℃湁鐗规畩鍚箟
+        /// </summary>
+        public class IosIHdlInterface : EZSDK.IOS.EZSDKDelegate
+        {
+            public Action<string> mAction;
+            public IosIHdlInterface()
+            {
+
+            }
+            /// <summary>
+            /// 
+            /// </summary>
+            /// <param name="p0">true鏄叆缃戞垚鍔�(婧愮敓鍥炶皟杩斿洖)</param>
+            /// <param name="p1">璁惧鐨勫簭鍒楀寲(婧愮敓鍥炶皟杩斿洖)</param>
+            public override void AddDeviceSuccessed(string deviceSerial)
+            {
+                mAction?.Invoke(deviceSerial);
+            }
+        }
 #else
         /// <summary>
-        /// 
+        /// 涓撻棬瀹氫箟缁欏畨鍗撳洖璋冪敤鐫�,娌℃湁鐗规畩鍚箟
         /// </summary>
         public class AndroidIHdlInterface : Java.Lang.Object, IHdlInterface
         {
@@ -451,5 +584,5 @@
 
     }
 
- 
+
 }

--
Gitblit v1.8.0