| | |
| | | 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 void LoadPage(VerticalRefreshLayout refreshView) |
| | | { |
| | | |
| | | new TopViewDiv(bodyView, Language.StringByID(StringId.AddDevice)).LoadTopView(); |
| | | bodyView.BackgroundColor = CSS_Color.BackgroundColor; |
| | | |
| | |
| | | { |
| | | var waitPage = new Loading(); |
| | | waitPage.Start(); |
| | | new System.Threading.Thread(() => { |
| | | new System.Threading.Thread(() => |
| | | { |
| | | try |
| | | { |
| | | var pm = new HttpServerRequest(); |
| | |
| | | Width = Application.GetRealWidth(32), |
| | | Height = Application.GetRealWidth(32), |
| | | Radius = (uint)Application.GetRealWidth(4), |
| | | UnSelectedImagePath = $"FunctionIcon/Icon/{device.IconName}.png", |
| | | UnSelectedImagePath = $"FunctionIcon/Icon/{device.IconName}.png", |
| | | }; |
| | | row.AddChidren(btnIcon); |
| | | Button btnRight = new Button() |
| | |
| | | }; |
| | | row.AddChidren(btnName); |
| | | |
| | | btnName.MouseUpEventHandler = (sender, e) => { |
| | | |
| | | |
| | | 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<ResponsePackNew>(msg); |
| | | if (bindResult != null) |
| | | { |
| | | if (bindResult.Code == "147021") { |
| | | string tipTitle = "提示"; |
| | | string tipMsg = "无法绑定该设备,请从河东渠道购买该类型产品"; |
| | | if (Language.CurrentLanguage != "Chinese") |
| | | { |
| | | tipTitle = "Tip"; |
| | | tipMsg = "Unable to bind this device. Please purchase this type of product from HDL"; |
| | | } |
| | | new PublicAssmebly().TipMsg(tipTitle, tipMsg); |
| | | } |
| | | else |
| | | { |
| | | string tipTitle = "提示"; |
| | | string tipMsg = $"{bindResult.message}({bindResult.Code})"; |
| | | if (Language.CurrentLanguage != "Chinese") |
| | | { |
| | | tipTitle = "Tip"; |
| | | } |
| | | 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<ResponsePackNew>(msg); |
| | | if (bindResult != null) |
| | | { |
| | | if (bindResult.Code == "147021") |
| | | { |
| | | string tipTitle = "提示"; |
| | | string tipMsg = "无法绑定该设备,请从河东渠道购买该类型产品"; |
| | | if (Language.CurrentLanguage != "Chinese") |
| | | { |
| | | tipTitle = "Tip"; |
| | | tipMsg = "Unable to bind this device. Please purchase this type of product from HDL"; |
| | | } |
| | | new PublicAssmebly().TipMsg(tipTitle, tipMsg); |
| | | } |
| | | else |
| | | { |
| | | string tipTitle = "提示"; |
| | | string tipMsg = $"{bindResult.message}({bindResult.Code})"; |
| | | if (Language.CurrentLanguage != "Chinese") |
| | | { |
| | | tipTitle = "Tip"; |
| | | } |
| | | 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) => { |
| | | 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) => { |
| | | form1.AddDeviceEvent = (functionObj) => |
| | | { |
| | | refreshView.BeginHeaderRefreshing(); |
| | | this.RemoveFromParent(); |
| | | }; |
| | | break; |
| | | case SPK.SensorEnvironment: |
| | | case SPK.SensorEnvironmentHailin: |
| | | var form2 = new AddSensorEnvironmentPage(); |
| | | form2.AddForm(device); |
| | | form2.AddDeviceEvent = (functionObj) => { |
| | | form2.AddDeviceEvent = (functionObj) => |
| | | { |
| | | refreshView.BeginHeaderRefreshing(); |
| | | this.RemoveFromParent(); |
| | | }; |
| | |
| | | case SPK.SensorEnvironment3: |
| | | var form3 = new AddQingpingSensorEnvirTipPage(); |
| | | form3.AddForm(device); |
| | | form3.AddDeviceEvent = (functionObj) => { |
| | | form3.AddDeviceEvent = (functionObj) => |
| | | { |
| | | refreshView.BeginHeaderRefreshing(); |
| | | this.RemoveFromParent(); |
| | | }; |