using System;
|
using System.Collections.Generic;
|
using HDL_ON.DAL.Server;
|
using HDL_ON.Entity;
|
using HDL_ON.UI.CSS;
|
#if __Android__
|
using Java.Interop;
|
#endif
|
using Shared;
|
namespace HDL_ON.UI
|
{
|
public class DeviceListPage : FrameLayout
|
{
|
FrameLayout bodyView;
|
VerticalRefreshLayout contentView;
|
|
IntegratedBrand brand;
|
|
|
public DeviceListPage(IntegratedBrand integratedBrand)
|
{
|
bodyView = this;
|
brand = integratedBrand;
|
}
|
|
|
public void LoadPage()
|
{
|
Action<string, string> action = (s, a) =>
|
{
|
var page = new AddDevciePage(brand);
|
MainPage.BasePageView.AddChidren(page);
|
page.LoadPage(contentView);
|
page.addDeviceCallback = () => {
|
try
|
{
|
Load3tyBrandDeviceList();
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log("error", "DeviceListPage : " + ex.Message);
|
}
|
};
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
};
|
var topView = new TopViewDiv(bodyView, Language.StringByID(StringId.Devices));
|
topView.maginY = 10;
|
topView.LoadTopView_AddIcon("3ty", action);
|
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
|
|
contentView = new VerticalRefreshLayout()
|
{
|
Y = Application.GetRealHeight(64+10),
|
Height = Application.GetRealHeight(667 - 64-10),
|
VerticalScrollBarEnabled = false,
|
};
|
bodyView.AddChidren(contentView);
|
|
Load3tyBrandDeviceList();
|
|
contentView.BeginHeaderRefreshingAction = () =>
|
{
|
contentView.EndHeaderRefreshing();
|
Load3tyBrandDeviceList();
|
};
|
|
//contentView.BeginHeaderRefreshing();
|
}
|
|
void Load3tyBrandDeviceList()
|
{
|
var waitPage = new Loading();
|
waitPage.Start();
|
new System.Threading.Thread(() =>
|
{
|
try
|
{
|
var pm = new HttpServerRequest();
|
var pack = pm.Get3TyBrandBindDeviceList(brand.productPlatform, brand.productBrand);
|
if (pack.Code == DAL.Server.StateCode.SUCCESS)
|
{
|
var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<Function3tyBrandObj>(pack.Data.ToString());
|
|
Application.RunOnMainThread(() =>
|
{
|
contentView.RemoveAll();
|
if (revData.list.Count > 0)
|
{
|
LoadRow(revData.list);
|
}
|
else
|
{
|
var tipView = new EmptyTipView(Language.StringByID(StringId.NotAddedAnyDevices), 160)
|
{
|
Gravity = Gravity.CenterHorizontal,
|
};
|
contentView.AddChidren(tipView);
|
}
|
});
|
}
|
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<Function> deviceList)
|
{
|
bool isFrist = true;
|
foreach (var device in deviceList)
|
{
|
var row = new RowLayout()
|
{
|
Height = Application.GetRealHeight(50),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
LineColor = 0x00000000,
|
};
|
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",
|
};
|
if (device.spk.Contains(SPK.PeepholeEz)
|
|| device.spk.Contains(SPK.Peephole)
|
|| device.spk.Contains(SPK.Ev_Ipcam)
|
|| device.spk.Contains(SPK.VideoDoorLock)
|
) { }
|
else
|
{
|
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.name,
|
};
|
row.AddChidren(btnName);
|
|
btnName.MouseUpEventHandler = (sender, e) =>
|
{
|
switch (device.spk)
|
{
|
case SPK.IrModule:
|
new UI2.PersonalCenter.PirDevice.PirMethod().MainView(this, device, () =>
|
{
|
contentView.BeginHeaderRefreshing();
|
});
|
break;
|
case SPK.SensorMmvPose:
|
case SPK.SenesorMegahealth:
|
case SPK.SenesorMegahealth2:
|
var smPage = new SenesorMegahealthManagerPage();
|
smPage.AddForm(device);
|
smPage.DelDeviceEvent = () =>
|
{
|
contentView.BeginHeaderRefreshing();
|
};
|
break;
|
case SPK.SensorEnvironment:
|
case SPK.SensorEnvironmentHailin:
|
case SPK.SensorEnvironment2:
|
case SPK.SensorEnvironment3:
|
var smPage1 = new SensorEnvironmentManagerPage();
|
smPage1.AddForm(device);
|
smPage1.DelDeviceEvent = () =>
|
{
|
contentView.BeginHeaderRefreshing();
|
};
|
break;
|
default:
|
btnRight.Visible = false;
|
break;
|
}
|
};
|
|
}
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
/// 云端返回的第三方设备列表数据
|
/// </summary>
|
public class Function3tyBrandObj
|
{
|
public List<Function> list = new List<Function>();
|
}
|
|
|
|
|
|
}
|