using System; using System.Collections.Generic; #if __ANDROID__ using Android.Content; #endif using HDL_ON.DAL.Server; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; #if __IOS__ using Shared.IOS.HDLCNVRSDK; #endif namespace HDL_ON.UI { public class AddDevciePage : FrameLayout { #if __ANDROID__ public class dddxx { } #else //大华摄像头sdk代理(Shared.IOS.HDLCNVRSDK) hdlLCNVRSDKDelegate hdlLCNVRDelegate; public class hdlLCNVRSDKDelegate : HDLLCNVRSDKDelegate { Action act; public hdlLCNVRSDKDelegate(Action action) { act = action; } public override void AddDeviceFailWithErrorCode(string errorCode) { } public override void BackFromAddDeviceView() { act?.Invoke(); } } #endif FrameLayout bodyView; IntegratedBrand brand; VerticalRefreshLayout contentView; public AddDevciePage(IntegratedBrand integratedBrand) { bodyView = this; brand = integratedBrand; } public void LoadPage(VerticalRefreshLayout refreshView) { new TopViewDiv(bodyView, Language.StringByID(StringId.AddDevice)).LoadTopView(); bodyView.BackgroundColor = CSS_Color.BackgroundColor; contentView = new VerticalRefreshLayout() { Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(667 - 64), VerticalScrollBarEnabled = false, }; bodyView.AddChidren(contentView); Load3tyBrandDeviceList(refreshView); contentView.BeginHeaderRefreshingAction = () => { contentView.EndHeaderRefreshing(); Load3tyBrandDeviceList(refreshView); }; } void Load3tyBrandDeviceList(VerticalRefreshLayout refreshView) { var waitPage = new Loading(); waitPage.Start(); new System.Threading.Thread(() => { try { var pm = new HttpServerRequest(); var pack = pm.Get3TyBrandDeviceList(brand.productPlatform, brand.productBrand); if (pack.Code == StateCode.SUCCESS) { var revData = Newtonsoft.Json.JsonConvert.DeserializeObject>(pack.Data.ToString()); Application.RunOnMainThread(() => { LoadRow(revData, refreshView); }); } else { IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); } } catch (Exception ex) { MainPage.Log("1--::" + ex.Message); } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } }) { IsBackground = true }.Start(); } void LoadRow(List deviceList, VerticalRefreshLayout refreshView) { contentView.RemoveAll(); bool isFrist = true; foreach (var device in deviceList) { FrameLayout row = new FrameLayout() { Height = Application.GetRealHeight(50), BackgroundColor = CSS_Color.MainBackgroundColor, }; contentView.AddChidren(row); if (isFrist) { isFrist = false; } else { Button btnLine = new Button() { X = Application.GetRealWidth(56), Width = Application.GetRealWidth(303), Height = 1, BackgroundColor = CSS_Color.DividingLineColor, }; row.AddChidren(btnLine); } var btnIcon = new Button() { X = Application.GetRealWidth(12), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), Radius = (uint)Application.GetRealWidth(4), UnSelectedImagePath = $"FunctionIcon/Icon/{device.IconName}.png", }; row.AddChidren(btnIcon); Button btnRight = new Button() { X = Application.GetRealWidth(339), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), UnSelectedImagePath = "Public/Right.png", }; row.AddChidren(btnRight); Button btnName = new Button() { X = Application.GetRealWidth(56), Width = Application.GetRealWidth(303), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, Text = device.ProductShowName, }; row.AddChidren(btnName); btnName.MouseUpEventHandler = (sender, e) => { switch (device.spk) { case SPK.IpCam_Imou: #if __IOS__ //初始化大华摄像头sdk Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().InitSDKWithAppKey("HDL-HOME-APP-TEST", "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss", OnAppConfig.Instance.RequestHttpsHost); Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().AccessToken = UserInfo.Current.LoginTokenString; Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().RefreshToken = UserInfo.Current.RefreshToken; Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().HomeId = DB_ResidenceData.Instance.CurrentRegion.id; //跳转添加摄像头(Shared.IOS.HDLCNVRSDK) hdlLCNVRDelegate = new hdlLCNVRSDKDelegate(() => {//添加成功返回事件 refreshView.BeginHeaderRefreshing(); this.RemoveFromParent(); }); Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().Delegate = hdlLCNVRDelegate; Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().ToAddDeviceView(); #else FunctionList.List.GetIpCamImouList(); if (string.IsNullOrEmpty(Com.Utils.HdlToLcUtils.Instance.SubAccessToken)) { var waitPage = new Loading(); MainPage.BaseView.AddChidren(waitPage); waitPage.Start(""); new System.Threading.Thread(() => { try { #if DEBUG Com.Utils.HdlToLcUtils.Instance.ShowErrorInfo(true); #endif var http = new HttpServerRequest(); var pack = http.GetLcSubAccountToken(); if (pack.Code == StateCode.SUCCESS) { if (pack.Data == null || string.IsNullOrEmpty(pack.Data.ToString())) { Application.RunOnMainThread(() => { new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), Language.StringByID(StringId.Get3tyIotInfoFailed)); return; }); } Com.Utils.HdlToLcUtils.Instance.InitData(Shared.Application.Activity, "HDL-HOME-APP-TEST", "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss", OnAppConfig.Instance.RequestHttpsHost); Com.Utils.HdlToLcUtils.Instance.HomeId = DB_ResidenceData.Instance.CurrentRegion.id; Com.Utils.HdlToLcUtils.Instance.Token = UserInfo.Current.AccessToken; Com.Utils.HdlToLcUtils.Instance.SubAccessToken = pack.Data.ToString(); #if __ANDROID__ Application.RunOnMainThread(() => { try { var result = Com.Utils.HdlToLcUtils.Instance.CheckCameraPermissions(); if (result) { var bindDeviceFeedback = new BindDeviceFeedback(); bindDeviceFeedback.tipAction = (method, msg) => { HDLUtils.WriteLine(method + "::" + msg); if(method == "bindDevice") { var bindResult = Newtonsoft.Json.JsonConvert.DeserializeObject(msg); if (bindResult != null) { string tipTitle = Language.StringByID(StringId.Tip); if (bindResult.Code == "147021") { string tipMsg = Language.StringByID(StringId.UnableToBindThisDeviceTip); new PublicAssmebly().TipMsg(tipTitle, tipMsg); } else { string tipMsg = $"{bindResult.message}({bindResult.Code})"; new PublicAssmebly().TipMsg(tipTitle, tipMsg); } } } }; Hdl.Onpro.HdlData.Instance.InitData(bindDeviceFeedback, device.productBrand); var backTemp = new AddLcCam(); backTemp.backAction = () => { refreshView.BeginHeaderRefreshing(); this.RemoveFromParent(); }; Com.Utils.HdlToLcUtils.Instance.AddCamera(backTemp); } else { Com.Utils.HdlToLcUtils.Instance.RequestCameraPermissions(); } } catch (Exception ex) { } finally { } }); #endif } else { Application.RunOnMainThread(() => { new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), Language.StringByID(StringId.huoqushujushibao) + $"({pack.Code})"); }); } } catch (Exception ex) { MainPage.Log("加载乐橙摄像头异常"); } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } }) { IsBackground = true }.Start(); } else { var result = Com.Utils.HdlToLcUtils.Instance.CheckCameraPermissions(); if (result) { var bindDeviceFeedback = new BindDeviceFeedback(); bindDeviceFeedback.tipAction = (method, msg) => { HDLUtils.WriteLine(method + "::" + msg); if (method == "bindDevice") { var bindResult = Newtonsoft.Json.JsonConvert.DeserializeObject(msg); if (bindResult != null) { string tipTitle = Language.StringByID(StringId.Tip); if (bindResult.Code == "147021") { string tipMsg = Language.StringByID(StringId.UnableToBindThisDeviceTip); new PublicAssmebly().TipMsg(tipTitle, tipMsg); } else { string tipMsg = $"{bindResult.message}({bindResult.Code})"; new PublicAssmebly().TipMsg(tipTitle, tipMsg); } } } }; Hdl.Onpro.HdlData.Instance.InitData(bindDeviceFeedback, device.productBrand); var backTemp = new AddLcCam(); backTemp.backAction = () => { refreshView.BeginHeaderRefreshing(); this.RemoveFromParent(); }; Com.Utils.HdlToLcUtils.Instance.AddCamera(backTemp); } else { Com.Utils.HdlToLcUtils.Instance.RequestCameraPermissions(); } } #endif break; case SPK.IrModule: var form = new AddMiniRemoteControlDirection1Page(); form.AddForm(); form.AddDeviceEvent = (functionObj) => { refreshView.BeginHeaderRefreshing(); }; break; case SPK.SenesorMegahealth: case SPK.SenesorMegahealth2: case SPK.SensorMmvPose: var form1 = new AddSenesorMegahealthDirection1Page(); form1.AddForm(device); form1.AddDeviceEvent = (functionObj) => { refreshView.BeginHeaderRefreshing(); this.RemoveFromParent(); }; break; case SPK.SensorEnvironment: case SPK.SensorEnvironmentHailin: var form2 = new AddSensorEnvironmentPage(); form2.AddForm(device); form2.AddDeviceEvent = (functionObj) => { refreshView.BeginHeaderRefreshing(); this.RemoveFromParent(); }; break; case SPK.SensorEnvironment2: case SPK.SensorEnvironment3: var form3 = new AddQingpingSensorEnvirTipPage(); form3.AddForm(device); form3.AddDeviceEvent = (functionObj) => { refreshView.BeginHeaderRefreshing(); this.RemoveFromParent(); }; break; case SPK.Peephole: case SPK.VideoDoorLock: case SPK.Ev_Ipcam: { //跳转到android,ios那边去 HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.SkipAddDeviceActivity(device.spk); } break; } }; } } } }