| | |
| | | using 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 |
| | |
| | | /// </summary> |
| | | private void InitFrame() |
| | | { |
| | | RemoveAll(); |
| | | var sceneRowLayout = new RowLayout |
| | | { |
| | | Y = Application.GetRealHeight(46), |
| | |
| | | Tag= scene |
| | | }; |
| | | AddChidren(sceneRowLayout); |
| | | sceneRowLayout.SubViewWidth = Application.GetRealWidth(199); |
| | | |
| | | sceneImg = new ImageView() |
| | | { |
| | |
| | | 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() |
| | |
| | | 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) |
| | | { |
| | | |
| | |
| | | { |
| | | sceneRowLayout.AddRightView(settingBtn); |
| | | sceneRowLayout.AddRightView(deleteBtn); |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | 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) |
| | | { |
| | | 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; |
| | | } |
| | | }; |
| | | } |
| | | }; |
| | | 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) => |