From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 28 二月 2020 15:25:13 +0800
Subject: [PATCH] 2020.2.28
---
ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs | 187 ++++++++++++++++++++++++++++++++++++----------
1 files changed, 147 insertions(+), 40 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
old mode 100755
new mode 100644
index e1e988d..5f8edaa
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
@@ -1,5 +1,9 @@
锘縰sing System;
+using System.Collections.Generic;
using Shared.Common;
+using Shared.Phone.Device.Category;
+using Shared.Phone.UserCenter;
+
namespace Shared.Phone.Device.CommonForm
{
public class SceneCategoryView : FrameLayout
@@ -56,6 +60,7 @@
/// </summary>
private void InitFrame()
{
+ RemoveAll();
var sceneRowLayout = new RowLayout
{
Y = Application.GetRealHeight(46),
@@ -64,6 +69,7 @@
Tag= scene
};
AddChidren(sceneRowLayout);
+ sceneRowLayout.SubViewWidth = Application.GetRealWidth(199);
sceneImg = new ImageView()
{
@@ -164,8 +170,10 @@
var delayBtn = new RowLayoutDeleteButton
{
TextID = R.MyInternationalizationString.Delay,
- Tag = scene.SceneDelayTime
+ Tag = scene.SceneDelayTime,
+ BackgroundColor=ZigbeeColor.Current.GXCTextSelectedColor,
};
+ delayBtn.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
sceneRowLayout.AddLeftView(delayBtn);
//缂栬緫
var settingBtn = new Device.CommonForm.RowLayoutEditButton()
@@ -173,12 +181,13 @@
TextID = R.MyInternationalizationString.Editor,
Tag = scene.SceneDelayTime
};
+ settingBtn.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerTopLeft);
//鍒犻櫎
var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton
{
Tag = scene
};
-
+ deleteBtn.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
if (room.IsSharedRoom)
{
@@ -193,6 +202,7 @@
{
sceneRowLayout.AddRightView(settingBtn);
sceneRowLayout.AddRightView(deleteBtn);
+
}
}
@@ -206,52 +216,146 @@
}
else
{
- var tip = new CustomAlert { };
- Common.CommonPage.Instance.AddChidren(tip);
- tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete));
-
- tip.ResultEventHandler += async (e1) =>
+ var alert = new UserCenter.ShowMsgControl(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.ConfirmDelete));
+ alert.Show();
+ alert.ConfirmClickEvent += async () =>
{
- if (e1)
+ //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅�
+ var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id);
+ if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null)
{
- //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅�
- var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id);
- if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null)
- {
- CommonPage.Instance.FailureToServer();
- return;
- }
- //1鎴愬姛
- if (removeSceneAllData.removeSceneData.Result == 1)
- {
- room.RemoveScene(scene);
- //RefreshBodyView();
- RemoveFromParent();
- }
- //0 绉婚櫎澶辫触
- else if (removeSceneAllData.removeSceneData.Result == 0)
- {
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
- return;
- }
- //2 娌℃湁璇ュ満鏅�
- else if (removeSceneAllData.removeSceneData.Result == 2)
- {
- room.RemoveScene(scene);
- //RefreshBodyView();
- RemoveFromParent();
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull);
- return;
- }
+ CommonPage.Instance.FailureToServer();
+ return;
+ }
+ //1鎴愬姛
+ if (removeSceneAllData.removeSceneData.Result == 1)
+ {
+ room.RemoveScene(scene);
+ //RefreshBodyView();
+ RemoveFromParent();
+ }
+ //0 绉婚櫎澶辫触
+ else if (removeSceneAllData.removeSceneData.Result == 0)
+ {
+ CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
+ return;
+ }
+ //2 娌℃湁璇ュ満鏅�
+ else if (removeSceneAllData.removeSceneData.Result == 2)
+ {
+ room.RemoveScene(scene);
+ //RefreshBodyView();
+ RemoveFromParent();
+ CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneIsNull));
+ return;
}
};
}
};
deleteBtn.MouseUpEventHandler += delEvent;
//缂栬緫鍦烘櫙
- settingBtn.MouseUpEventHandler += (sender, e) =>
+ settingBtn.MouseUpEventHandler += async (sender, e) =>
{
- SceneUI.EditScene(scene, room);
+ try
+ {
+ var targetList = new List<SceneTargetDeviceUI> { };
+ CommonPage.Loading.Start();
+ //浠庣綉鍏充腑鍙嶅簭鍒楀寲鍑哄搴旂殑鎴块棿璁惧
+ var sceneDeviceList = await ZigBee.Device.Scene.GetSceneDeviceListAsync(scene.Id);
+ if (sceneDeviceList == null)
+ {
+ CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheMainGatewayIsNotOnLine));
+ return;
+ }
+
+ if (sceneDeviceList.getSceneDeviceListInfo != null)
+ {
+ var deviceList = sceneDeviceList.getSceneDeviceListInfo.DeviceList;
+ var allDevice = Common.Room.AllRoomDeviceUIList;
+ var allScene = Common.Room.AllRoomSceneUIList;
+
+ if (deviceList != null && allDevice.Count != 0)
+ {
+ foreach (var sceneDev in deviceList)
+ {
+ if (sceneDev.Type == 0)
+ {
+ var dev = allDevice.Find((obj) => obj.DeviceEpoint == sceneDev.Epoint && obj.DeviceAddr == sceneDev.DeviceAddr);
+ if (dev != null)
+ {
+ var sceneTargetDevice = new SceneTargetDeviceUI
+ {
+ Type = 0,
+ DeviceUI = dev,
+ TaskList = sceneDev.TaskList,
+ DelayTimeSerialNumber = deviceList.IndexOf(sceneDev) + 1
+ };
+
+ targetList.Add(sceneTargetDevice);
+ }
+ }
+ else if (sceneDev.Type == 1)
+ {
+ var localScene = allScene.Find((obj) => obj.Id == sceneDev.ElseScenesId);
+ if (localScene != null)
+ {
+ var sceneTargetDeviceScene = new SceneTargetDeviceUI
+ {
+ Type = 1,
+ ElseScenesId = sceneDev.ElseScenesId,
+ SceneName = localScene.Name,
+ SceneUI = localScene,
+ DelayTimeSerialNumber = deviceList.IndexOf(sceneDev) + 1
+ };
+ targetList.Add(sceneTargetDeviceScene);
+ }
+ }
+ else
+ {
+ var sceneTargetDeviceScene = new SceneTargetDeviceUI
+ {
+ Type = 2,
+ DelayTime = sceneDev.DelayTime,
+ DelayTimeSerialNumber = deviceList.IndexOf(sceneDev) + 1
+ };
+ targetList.Add(sceneTargetDeviceScene);
+ }
+ }
+ }
+ }
+ else
+ {
+ CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
+ }
+
+ var sceneView = new CategoryAddScene();
+ Phone.UserView.HomePage.Instance.AddChidren(sceneView);
+ Phone.UserView.HomePage.Instance.PageIndex += 1;
+ sceneView.isModify = true;
+ sceneView.modifyRoom = room;
+ sceneView.modifySceneUI = scene;
+ sceneView.modifySceneTargetDevicesList = targetList;
+ sceneView.Show();
+ sceneView.EditorAction = (s, r) =>
+ {
+ if(r.Id!=room.Id)
+ {
+ RemoveFromParent();
+ }
+ else
+ {
+ Init(s, r);
+ }
+ };
+ }
+ catch (Exception ex)
+ {
+ System.Console.WriteLine($"缂栬緫鍦烘櫙鍑洪敊---{ex.Message}");
+ }
+ finally
+ {
+ CommonPage.Loading.Hide();
+ }
};
//缂栬緫寤舵椂
delayBtn.MouseUpEventHandler += (sender, e) =>
@@ -269,6 +373,8 @@
{
scene.SceneDelayTime = t;
delayTimeBtn.Text = CommonFormResouce.GetTimeString(t);
+
+ room.ModifySceneDelayTime(scene);
};
};
}
@@ -313,11 +419,12 @@
{
return;
}
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ControlSceneFail);
+ CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.ControlSceneFail));
}
scene.RemainTime = scene.SceneDelayTime;
scene.SceneDelayTime = 0;
+ room.ModifySceneDelayTime(scene);
new System.Threading.Thread(() =>
{
while (scene.RemainTime > 0)
--
Gitblit v1.8.0