wjc
2023-03-20 39c795a5de987ad14e40ba762320b92d77130726
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs
@@ -2,6 +2,7 @@
using HDL_ON.Entity;
using System.Collections.Generic;
using Shared;
using Com.Videogo.Hdl;
namespace HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock
{
@@ -11,8 +12,15 @@
    public class CommonMethod
    {
        private Loading loading;
        private static CommonMethod commonMethod = null;
        /// <summary>
        /// 记录当前界面索引值
        /// </summary>
        private int pageLayoutIndexValue;
        private static CommonMethod commonMethod = null;
        /// <summary>
        /// 获取对象
        /// </summary>
        public static CommonMethod Current
        {
            get
@@ -30,26 +38,41 @@
        #region  --------- 跳转到Android那边的方法(萤石视频门锁) --------
        /// <summary>
        /// 添加设备到云端
        /// 读取云端的上设备列表(android源生添加设备到云端成功后)
        /// <paramref name="devSerial"/>设备序列号</param>
        /// </summary>
        public void SkipAddDeviceActivity(string devSerial)
        {
            if (string.IsNullOrEmpty(devSerial)) return;
            new System.Threading.Thread(() =>
            this.InitializationAndroidData((isBools) =>
            {
                if (!isBools) {
                    this.MainThread(()=> {
                        this.ShowTip("先获取萤石云子账号token失败。");
                    });
                }
                HDLEzvizSdk.Instance.JumpToEZScanActivity(Application.Activity);
                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 == devSerial);
                            var function = list.Find((o) => o.sid == adnroidActionDevSerial);
                    if (function != null)
                    {
                        this.SaveFunctionFile(function);
                    }
                }
            })
            { IsBackground = true }.Start();
            //未实现
                    }
                }));
            });
#if __IOS__
#else
@@ -65,33 +88,66 @@
        /// <param name="spk">设备spk(云雀上定义好的)</param>
        public void SkipRTVActivity(string deviceSerial, string deviceId, string spk)
        {
            this.InitializationAndroidData((isBools) =>
            {
                if (!isBools)
                {
                    this.MainThread(() => {
                        this.ShowTip("先获取萤石云子账号token失败。");
                    });
                }
            Video.View.ShowDialog.Currnet.ClickBox(Language.StringByID(StringId.laizimenlinghujiao), (dialog) =>
            {
                dialog.Close();
                    HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk);
            }, (dialog) =>
            {
                dialog.Close();
            });
            });
#if __IOS__
#else
#endif
            //jumpToEZRealPlayActivity(Shared.Application.Activity,  deviceId,  deviceSerial,  spk)
        }
        /// <summary>
        /// 浏览历史记录
        /// </summary>
        public void SkipRecordActivity()
        public void SkipRecordActivity(string deviceId)
        {
            this.InitializationAndroidData((s)=> {
                HDLEzvizSdk.Instance.JumpLockHistoryActivity(Application.Activity, deviceId);
            });
            //未实现
            //this.InitializationAndroidData();
            //
        }
        /// <summary>
        /// 临时密码开门
        /// <paramref name="deviceId"/>
        /// </summary>
        public void SkipPSWActivity()
        public void SkipPSWActivity(string deviceId)
        {
            //jumpTempPasswordActivity(Application.Activity, deviceId);
            this.InitializationAndroidData((isBools) =>
            {
                if (!isBools)
                {
                    this.MainThread(() =>
                    {
                        this.ShowTip("先获取萤石云子账号token失败。");
                    });
                }
                HDLEzvizSdk.Instance.JumpTempPasswordActivity(Application.Activity, deviceId);
            });
        }
        /// <summary>
@@ -99,6 +155,8 @@
        /// </summary>
        public void InitializationAndroidData(Action<bool> action)
        {
            bool isBool = true;
            this.SunThread(() =>
            {
@@ -131,36 +189,8 @@
                                //info.de
                                //EZSDK.IOS.EZSDK.Play(info);
#else
                            //Android
                            //1.设置所需河东的token、域名地址
                            //2.设置萤石子账号的token
                            //3.打开摄像头设备列表页面
                            ((BaseActivity)Shared.Application.Activity).SetCamera(b =>
                            {
                                if (b)
                                {
                                    ((BaseActivity)Shared.Application.Activity).SetPermission(result =>
                                    {
                                        if (result)
                                        {
                                            Android.Content.Intent intent = new Android.Content.Intent();
                                            var bundle = new Android.OS.Bundle();
                                            //传递name参数为tinyphp
                                            bundle.PutString("EzChildAccessToken", ezChildAccessToken);
                                            bundle.PutString("HdlToken", UserInfo.Current.LoginTokenString);
                                            bundle.PutString("HdlrefreshToken", UserInfo.Current.RefreshToken);
                                            bundle.PutString("Url", OnAppConfig.Instance.RequestHttpsHost);
                                            bundle.PutString("EzvizAppKey", "1aa98a90489b4838b966b57018b4b04b");
                                            bundle.PutInt("Platform", 1);
                                            bundle.PutString("HomeId", DB_ResidenceData.Instance.CurrentRegion.id);
                                            intent.PutExtras(bundle);
                                            //intent.SetComponent(new Android.Content.ComponentName(Shared.Application.Activity, "com.videogo.MainActivity"));
                                            //Shared.Application.Activity.StartActivity(intent);
                                        }
                                    }, "android.permission.RECORD_AUDIO");
                            HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, "1aa98a90489b4838b966b57018b4b04b", 1, DB_ResidenceData.Instance.CurrentRegion.id);
                                }
                            });
#endif
                        });
@@ -179,6 +209,7 @@
                }
            });
        }
        /// <summary>
        /// 更换住宅
        /// </summary>
@@ -239,27 +270,31 @@
        {
            get
            {
                if (loading == null)
                this.MainThread(() =>
                {
                    //if (loading != null && this.pageLayoutIndexValue == MainPage.BasePageView.ChildrenCount - 1)
                    //{
                    //    //防止二重添加对象
                    //    return;
                    //}
                    if (loading == null)//|| MainPage.BasePageView.ChildrenCount < 1)
                {
                    loading = new Loading();
                }
                if (MainPage.BasePageView.ChildrenCount < 1)
                {
                    return loading;
                }
                View view = MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1);
                if (view is FrameLayout)
                {
                    ((FrameLayout)view).AddChidren(loading);
                }
                else if (view is PageLayout)
                {
                    ((PageLayout)view).AddChidren(loading);
                }
                    //loading.BringToFront();
                    Application.MainPage.AddChidren(loading);
                    //View view = MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1);
                    //if (view is ViewGroup)
                    //{
                    //    pageLayoutIndexValue = MainPage.BasePageView.ChildrenCount - 1;
                    //    ((ViewGroup)view).AddChidren(loading);
                    //}
                });
                return loading;
            }
        }
        /// <summary>
        /// 获取萤石视频门锁列表
        /// </summary>
@@ -376,5 +411,34 @@
            room,//房间
            push,//推送
        }
        /// <summary>
        ///
        /// </summary>
        public class AndroidIHdlInterface : Java.Lang.Object, IHdlInterface
        {
            Action<bool,string> mAction;
            public AndroidIHdlInterface(Action<bool,string> action)
            {
                mAction = action;
    }
            /// <summary>
            ///
            /// </summary>
            /// <param name="p0">true是入网成功(源生回调返回)</param>
            /// <param name="p1">设备的序列化(源生回调返回)</param>
            public void AddCallback(bool p0, string p1)
            {
                mAction?.Invoke(p0,p1);
            }
        }
    }
}