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<List<IntegratedBrandDevice>>(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<IntegratedBrandDevice> 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<ResponsePackNew>(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<ResponsePackNew>(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;
|
}
|
};
|
}
|
|
}
|
|
}
|
}
|