using System;
|
using System.Collections.Generic;
|
using HDL_ON.DriverLayer;
|
using HDL_ON.Entity;
|
using HDL_ON.UI.CSS;
|
using Shared;
|
|
namespace HDL_ON.UI
|
{
|
public partial class IntelligencePage : FrameLayout
|
{
|
FrameLayout bodyView;
|
/// <summary>
|
/// 场景/自动化分页区域
|
/// </summary>
|
PageLayout contentPageView;
|
Button btnAutomationTitle;
|
#region 场景区域
|
FrameLayout scenePageView;
|
/// <summary>
|
/// 场景内容显示区域
|
/// </summary>
|
FrameLayout floorChangeView;
|
/// <summary>
|
/// 楼层房间选择的下拉对象
|
/// </summary>
|
FloorRoomSelectPopupView floorRoomSelectView = null;
|
Button btnSceneTilte;
|
|
#region 场景底部切换显示区域
|
FrameLayout topView;
|
/// <summary>
|
/// 楼层选择下拉图标
|
/// </summary>
|
Button btnFloorDownIcon;
|
/// <summary>
|
/// 楼层显示
|
/// </summary>
|
Button btnFloor;
|
/// <summary>
|
/// 添加场景按钮
|
/// </summary>
|
Button btnAddIcon;
|
|
#endregion
|
/// <summary>
|
/// 场景功能控制区域
|
/// </summary>
|
VerticalScrolViewLayout sceneFunctionView;
|
#endregion
|
#region 自动化区域
|
/// <summary>
|
/// 自动化内容显示区域
|
/// </summary>
|
FrameLayout automationPage;
|
#endregion
|
public IntelligencePage()
|
{
|
bodyView = this;
|
}
|
|
public void LoadPage()
|
{
|
MainPage.CurPageIndex = 2;
|
bodyView.BackgroundColor = CSS_Color.MainBackgroundColor;
|
#region top
|
topView = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(64),
|
BackgroundColor = CSS_Color.TopViewColor,
|
};
|
bodyView.AddChidren(topView);
|
|
//不是A网关或者是成员 只允许添加场景隐藏自动化
|
var HideAutoPage = DB_ResidenceData.Instance.GatewayType != 1|| DB_ResidenceData.Instance.CurrentRegion.IsOthreShare;
|
//判断是否需要隐藏自动化
|
if (HideAutoPage)
|
{
|
btnSceneTilte = new Button()
|
{
|
Y = Application.GetRealHeight(30),
|
//Width = Application.GetRealWidth(170),
|
Height = Application.GetRealHeight(25),
|
TextAlignment = TextAlignment.Center,
|
TextSize = CSS_FontSize.HeadlineFontSize,
|
TextColor = CSS_Color.PromptingColor1,
|
SelectedTextColor = CSS_Color.MainColor,
|
TextID = StringId.Scenes,
|
IsSelected = true
|
};
|
topView.AddChidren(btnSceneTilte);
|
btnAutomationTitle = new Button();
|
}
|
else
|
{
|
|
btnSceneTilte = new Button()
|
{
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(170),
|
Height = Application.GetRealHeight(25),
|
TextAlignment = TextAlignment.CenterRight,
|
TextSize = CSS_FontSize.HeadlineFontSize,
|
TextColor = CSS_Color.PromptingColor1,
|
SelectedTextColor = CSS_Color.MainColor,
|
TextID = StringId.Scenes,
|
IsSelected = true
|
};
|
topView.AddChidren(btnSceneTilte);
|
|
btnAutomationTitle = new Button()
|
{
|
X = Application.GetRealWidth(209),
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(170),
|
Height = Application.GetRealHeight(25),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = CSS_FontSize.TextFontSize,
|
TextColor = CSS_Color.PromptingColor1,
|
SelectedTextColor = CSS_Color.MainColor,
|
TextID = StringId.Automation,
|
};
|
topView.AddChidren(btnAutomationTitle);
|
}
|
var btnAddIconBg = new Button()
|
{
|
X = Application.GetRealWidth(337),
|
Y = Application.GetRealHeight(29),
|
Width = Application.GetMinRealAverage(28),
|
Height = Application.GetMinRealAverage(28),
|
UnSelectedImagePath = "Public/AddIcon.png",
|
};
|
if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
|
{
|
topView.AddChidren(btnAddIconBg);
|
}
|
btnAddIcon = new Button()
|
{
|
X = Application.GetRealWidth(337-20),
|
Width = Application.GetMinRealAverage(28+30),
|
Height = Application.GetMinRealAverage(28+29),
|
};
|
if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
|
{
|
topView.AddChidren(btnAddIcon);
|
}
|
#endregion
|
|
contentPageView = new PageLayout()
|
{
|
Y = Application.GetRealHeight(64),
|
Height = Application.GetRealHeight(667 - 64 - 49 + 30),
|
BackgroundColor = CSS_Color.BackgroundColor,
|
IsShowPoint = false
|
};
|
bodyView.AddChidren(contentPageView);
|
|
LoadScenePageView();
|
//判断是否需要隐藏自动化
|
if (!HideAutoPage)
|
{
|
LoadAutomationPageView();
|
}
|
LoadEventList();
|
|
}
|
#region 场景部分
|
/// <summary>
|
/// 加载场景列表界面
|
/// </summary>
|
void LoadScenePageView()
|
{
|
scenePageView = new FrameLayout();
|
contentPageView.AddChidren(scenePageView);
|
/// <summary>
|
/// 场景内容显示区域
|
/// </summary>
|
floorChangeView = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(53),
|
};
|
scenePageView.AddChidren(floorChangeView);
|
#region 场景底部切换显示区域
|
/// <summary>
|
/// 楼层选择下拉图标
|
/// </summary>
|
btnFloorDownIcon = new Button()
|
{
|
Width = Application.GetMinRealAverage(16),
|
Height = Application.GetMinRealAverage(16),
|
X = Application.GetRealWidth(16),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "Public/DownIcon.png",
|
};
|
floorChangeView.AddChidren(btnFloorDownIcon);
|
/// <summary>
|
/// 楼层显示
|
/// </summary>
|
btnFloor = new Button()
|
{
|
X = btnFloorDownIcon.Right,
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetRealWidth(200),
|
Height = Application.GetMinRealAverage(16),
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = DB_ResidenceData.Instance.CurFloor.roomName,
|
};
|
floorChangeView.AddChidren(btnFloor);
|
|
string nowSelectId = null;
|
btnFloor.MouseUpEventHandler += (sender, e) =>
|
{
|
if (this.floorRoomSelectView == null)
|
{
|
//先初始化
|
this.floorRoomSelectView = new FloorRoomSelectPopupView();
|
}
|
//显示下拉列表
|
this.floorRoomSelectView.ShowSceneView(btnFloor, (selectId, listScene) =>
|
{
|
nowSelectId = selectId;
|
//重新刷新场景列表
|
this.LoadSceneFunctionControlZone(listScene);
|
}, nowSelectId);
|
};
|
|
#endregion
|
|
sceneFunctionView = new VerticalScrolViewLayout()
|
{
|
Y = Application.GetRealHeight(53),
|
Height = Application.GetRealHeight(667 - 64 - 49 - 52 + 30),
|
};
|
scenePageView.AddChidren(sceneFunctionView);
|
LoadSceneFunctionControlZone(null);
|
}
|
|
/// <summary>
|
/// 加载场景功能显示区域
|
/// </summary>
|
void LoadSceneFunctionControlZone(List<Scene> listScene)
|
{
|
//topView.AddChidren(btnAddIcon);
|
|
sceneFunctionView.RemoveAll();
|
var rowView = new FrameLayout();
|
try
|
{
|
int index = 0;
|
//获取能够显示的场景
|
if (listScene == null)
|
{
|
//初始值
|
if (this.floorRoomSelectView == null)
|
{
|
//先初始化
|
this.floorRoomSelectView = new FloorRoomSelectPopupView();
|
}
|
listScene = this.floorRoomSelectView.GetCanShowListScene();
|
}
|
foreach (var scene in listScene)
|
{
|
//if (scene.roomIds.Count == 0)//如何在房间已经移除了这个功能,则收藏界面也不会再显示
|
//{
|
// scene.collect = false;
|
// continue;
|
//}
|
if (index % 2 == 0)
|
{
|
rowView = new FrameLayout()
|
{
|
Height = Application.GetRealWidth(122),
|
};
|
sceneFunctionView.AddChidren(rowView);
|
sceneFunctionView.AddChidren(new Button()
|
{
|
Height = Application.GetRealHeight(7 + 7),
|
});
|
}
|
var functionView_X = Application.GetRealWidth((16 + 164) * (index % 2) + 16);
|
|
var functionView = new FrameLayout()
|
{
|
X = functionView_X,
|
Width = Application.GetRealWidth(164),
|
Height = Application.GetRealWidth(122),
|
Tag = scene.sid,
|
//BackgroundImagePath = (scene as Scene).ImagePath,
|
};
|
rowView.AddChidren(functionView);
|
//2020-12-03 修改图片加载方法
|
ImageUtlis.Current.LoadLocalOrNetworkImages((scene as Scene).ImagePath, functionView);
|
|
LoadSceneFunctionDiv(functionView, scene);
|
index++;
|
}
|
|
if (index == 0)
|
{
|
var view = new FrameLayout();
|
sceneFunctionView.AddChidren(view);
|
|
var btnNoCollectionBg = new Button()
|
{
|
Y = Application.GetRealHeight(120),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(180),
|
Height = Application.GetRealWidth(180),
|
UnSelectedImagePath = "Collection/NoCollectionBg.png",
|
};
|
view.AddChidren(btnNoCollectionBg);
|
|
var btnNoCollectionTip = new Button()
|
{
|
Height = Application.GetRealHeight(42),
|
Y = btnNoCollectionBg.Bottom,
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
TextID = StringId.TipNoScene,
|
};
|
view.AddChidren(btnNoCollectionTip);
|
}
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log("homepage erorr : " + ex.Message);
|
}
|
sceneFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) });
|
|
}
|
|
/// <summary>
|
/// 加载场景控制卡片
|
/// </summary>
|
void LoadSceneFunctionDiv(FrameLayout view, Scene scene)
|
{
|
try
|
{
|
Button btnCoverd = new Button()
|
{
|
UnSelectedImagePath = "Collection/SceneCovered.png",
|
};
|
view.AddChidren(btnCoverd);
|
|
Button btnShowDelay;
|
btnShowDelay = new Button()
|
{
|
X = Application.GetRealWidth(40),
|
Y = Application.GetRealWidth(4),
|
Height = Application.GetRealWidth(32),
|
Width = Application.GetRealWidth(100),
|
TextColor = CSS_Color.AuxiliaryColor1,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
};
|
view.AddChidren(btnShowDelay);
|
|
Button btnName;
|
btnName = new Button()
|
{
|
X = Application.GetRealWidth(12),
|
Y = Application.GetRealWidth(68),
|
Width = Application.GetRealWidth(150),
|
Height = Application.GetRealHeight(24),
|
Text = scene.name,
|
TextSize = CSS_FontSize.TextFontSize,
|
TextColor = CSS_Color.MainBackgroundColor,
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
view.AddChidren(btnName);
|
|
Button btnZone;
|
btnZone = new Button()
|
{
|
X = Application.GetRealWidth(12),
|
Y = btnName.Bottom,
|
Height = Application.GetRealWidth(18),
|
Width = Application.GetRealWidth(113),
|
TextColor = CSS_Color.MainBackgroundColor,
|
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
|
TextAlignment = TextAlignment.CenterLeft,
|
SelectedTextColor = CSS_Color.MainBackgroundColor,
|
Text = scene.GetRoomListName(),
|
};
|
view.AddChidren(btnZone);
|
|
Button btnSettingIcon;
|
btnSettingIcon = new Button()
|
{
|
X = Application.GetRealWidth(4),
|
Y = Application.GetRealWidth(4),
|
Height = Application.GetRealWidth(32),
|
Width = Application.GetRealWidth(32),
|
UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png",
|
};
|
if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
|
{
|
view.AddChidren(btnSettingIcon);
|
}
|
|
Button btnCollection;
|
btnCollection = new Button()
|
{
|
X = Application.GetRealWidth(116),
|
Y = Application.GetRealWidth(8),
|
Width = Application.GetMinRealAverage(32),
|
Height = Application.GetMinRealAverage(32),
|
UnSelectedImagePath = "Collection/CollectionWhiteIcon.png",
|
SelectedImagePath = "Collection/CollectionIcon.png",
|
IsSelected = scene.collect,
|
};
|
//view.AddChidren(btnCollection);
|
//2020-12-16 如果是成员隐藏收藏功能
|
if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
|
{
|
view.AddChidren(btnCollection);
|
}
|
btnCollection.MouseUpEventHandler = (sender, e) => {
|
scene.collect = btnCollection.IsSelected = !btnCollection.IsSelected;
|
scene.CollectScene();
|
};
|
LoadEvent_ControlScene(btnCoverd, btnName, btnZone, btnShowDelay, scene);
|
btnSettingIcon.MouseUpEventHandler = (sender, e) => {
|
Action backAction = () => {
|
LoadSceneFunctionControlZone(null);
|
};
|
Action refreshAction = () => {
|
btnName.Text = scene.name;
|
btnZone.Text = scene.GetRoomListName();
|
//2020-12-03 修改图片加载方法
|
ImageUtlis.Current.LoadLocalOrNetworkImages((scene as Scene).ImagePath, view);
|
};
|
var aep = new SceneEditPage(scene, backAction);
|
MainPage.BasePageView.AddChidren(aep);
|
aep.LoadPage(refreshAction);
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
};
|
//场景正在倒计时执行中
|
scene.SceneCountDown(btnShowDelay);
|
|
//if (scene.LastExecutionTime == "" || Convert.ToDouble(scene.LastExecutionTime) + Convert.ToDouble(scene.delay) < Convert.ToDouble(Utlis.GetTimestamp(false)))
|
//{
|
// int time = 0;
|
// int.TryParse(Convert.ToInt32(
|
// Convert.ToDouble(scene.LastExecutionTime) + Convert.ToDouble(scene.delay) - Convert.ToDouble(Utlis.GetTimestamp(false))
|
// ).ToString(),out time);
|
// if (time > 0)
|
// {
|
// new System.Threading.Thread(() =>
|
// {
|
// //int time = Convert.ToInt32(scene.delay);
|
// if (time > 0)
|
// {
|
// while (time > 0)
|
// {
|
// Application.RunOnMainThread(() =>
|
// {
|
// if (time / 60 > 1)
|
// {
|
// btnShowDelay.Text = (time / 60).ToString() + "min";
|
// }
|
// else
|
// {
|
// btnShowDelay.Text = (time--).ToString() + "s";
|
// }
|
// });
|
// if (time / 60 > 1)
|
// {
|
// System.Threading.Thread.Sleep(time / 60 * 60000);
|
// }
|
// else
|
// {
|
// System.Threading.Thread.Sleep(1000);
|
// }
|
// }
|
// Application.RunOnMainThread(() =>
|
// {
|
// btnShowDelay.Text = "";
|
// });
|
// }
|
// })
|
// { IsBackground = true, Priority = System.Threading.ThreadPriority.BelowNormal }.Start();
|
// }
|
//}
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log("homepage LoadControlView error : " + ex.Message);
|
}
|
}
|
#endregion
|
|
#region 自动化部分
|
/// <summary>
|
/// 加载自动化列表界面
|
/// </summary>
|
void LoadAutomationPageView()
|
{
|
automationPage = new FrameLayout();
|
contentPageView.AddChidren(automationPage);
|
UI2.Intelligence.Automation.MainView.automationPage = automationPage;
|
UI2.Intelligence.Automation.MainView.MainShow();
|
}
|
#endregion
|
}
|
|
|
//-------------
|
public partial class IntelligencePage
|
{
|
void LoadEventList()
|
{
|
LoadEvent_SkipAddScenePage();
|
LoadEvent_ShowedChange();
|
}
|
|
#region 顶部导航栏事件
|
/// <summary>
|
/// 显示界面切换
|
/// </summary>
|
void LoadEvent_ShowedChange()
|
{
|
contentPageView.PageChange = (sender, e) =>
|
{
|
if (contentPageView.PageIndex == 0)
|
{
|
btnSceneTilte.IsSelected = true;
|
btnSceneTilte.TextSize = CSS_FontSize.HeadlineFontSize;
|
btnSceneTilte.IsBold = true;
|
btnAutomationTitle.IsSelected = false;
|
btnAutomationTitle.TextSize = CSS_FontSize.TextFontSize;
|
btnAutomationTitle.IsBold = false;
|
}
|
else
|
{
|
btnAutomationTitle.IsSelected = true;
|
btnAutomationTitle.TextSize = CSS_FontSize.HeadlineFontSize;
|
btnAutomationTitle.IsBold = true;
|
btnSceneTilte.IsSelected = false;
|
btnSceneTilte.TextSize = CSS_FontSize.TextFontSize;
|
btnSceneTilte.IsBold = false;
|
}
|
};
|
|
btnSceneTilte.MouseUpEventHandler = (sender, e) =>
|
{
|
if (btnSceneTilte.IsSelected)
|
{
|
return;
|
}
|
btnSceneTilte.IsSelected = true;
|
btnSceneTilte.TextSize = CSS_FontSize.HeadlineFontSize;
|
btnAutomationTitle.IsSelected = false;
|
btnAutomationTitle.TextSize = CSS_FontSize.TextFontSize;
|
contentPageView.PageIndex = 0;
|
};
|
//逻辑点击事件
|
btnAutomationTitle.MouseUpEventHandler = (sender, e) => {
|
if (btnAutomationTitle.IsSelected)
|
{
|
return;
|
}
|
btnAutomationTitle.IsSelected = true;
|
btnAutomationTitle.TextSize = CSS_FontSize.HeadlineFontSize;
|
btnSceneTilte.IsSelected = false;
|
btnSceneTilte.TextSize = CSS_FontSize.TextFontSize;
|
contentPageView.PageIndex = 1;
|
|
};
|
}
|
#endregion
|
|
/// <summary>
|
/// 跳转至添加场景的界面
|
/// </summary>
|
void LoadEvent_SkipAddScenePage()
|
{
|
btnAddIcon.MouseUpEventHandler = (sender, e) =>
|
{
|
if (!btnAutomationTitle.IsSelected)
|
{
|
//如果是成员
|
if (DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
|
{
|
//如果没有场景权限
|
if (!DB_ResidenceData.Instance.CurrentRegion.isAllowCreateScene)
|
{
|
//提示没有场景的创建权限
|
Utlis.ShowTip(Language.StringByID(StringId.PermissionDenied));
|
return;
|
}
|
}
|
|
Action action = () =>
|
{
|
LoadSceneFunctionControlZone(null);
|
};
|
var aep = new NewSceneMenuListPage(action);
|
MainPage.BasePageView.AddChidren(aep);
|
aep.LoadPage();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
}
|
else
|
{
|
//跳转到逻辑界面
|
UI2.Intelligence.Automation.MainView logicMainView = new UI2.Intelligence.Automation.MainView();
|
logicMainView.SkipAddLogicPage();
|
}
|
};
|
}
|
|
|
/// <summary>
|
/// 加载场景控制事件
|
/// </summary>
|
void LoadEvent_ControlScene(Button btnCoverd, Button btnName, Button btnZone,Button btnShowDelay, Scene scene)
|
{
|
|
EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
|
{
|
//场景正在倒计时执行中,不允许再点击
|
if (scene.LastExecutionTime == "" || Convert.ToDouble(scene.LastExecutionTime) + Convert.ToDouble(scene.delay) < Convert.ToDouble(Utlis.GetTimestamp(false)))
|
{
|
scene.LastExecutionTime = Utlis.GetTimestamp(false);
|
}
|
else
|
{
|
return;
|
}
|
string msg = scene.name + Language.StringByID(StringId.AlreadyOpened);
|
new PublicAssmebly().TipMsgAutoClose(msg, true);
|
Control.Ins.ControlScene(scene);
|
scene.SceneCountDown(btnShowDelay);
|
};
|
btnCoverd.MouseUpEventHandler = eventHandler;
|
btnName.MouseUpEventHandler = eventHandler;
|
btnZone.MouseUpEventHandler = eventHandler;
|
}
|
|
}
|
|
}
|