old mode 100755
new mode 100644
| | |
| | | /// bodyFrameLayout |
| | | /// </summary> |
| | | private FrameLayout bodyFrameLayout; |
| | | /// <summary> |
| | | /// floorIds |
| | | /// </summary> |
| | | List<string> floorIds = new List<string> { }; |
| | | /// <summary> |
| | | /// floorNames |
| | | /// </summary> |
| | | List<string> floorNames = new List<string> { }; |
| | | /// <summary> |
| | | /// roomNames |
| | | /// </summary> |
| | | List<List<string>> roomNames = new List<List<string>> { }; |
| | | /// <summary> |
| | | /// roomNames |
| | | /// </summary> |
| | | List<List<Common.Room>> rooms = new List<List<Common.Room>> { }; |
| | | ///// <summary> |
| | | ///// floorIds |
| | | ///// </summary> |
| | | //List<string> floorIds = new List<string> { }; |
| | | ///// <summary> |
| | | ///// floorNames |
| | | ///// </summary> |
| | | //List<string> floorNames = new List<string> { }; |
| | | ///// <summary> |
| | | ///// roomNames |
| | | ///// </summary> |
| | | //List<List<string>> roomNames = new List<List<string>> { }; |
| | | ///// <summary> |
| | | ///// roomNames |
| | | ///// </summary> |
| | | //List<List<Common.Room>> rooms = new List<List<Common.Room>> { }; |
| | | /// <summary> |
| | | /// ImagePath |
| | | /// </summary> |
| | | private string ImagePath="SceneIcon/1.png"; |
| | | /// <summary> |
| | | /// 图片来源 0--本地图库 1--拍照 2--系统图库 |
| | | /// 图片来源 0--本地图库 1--拍照 2--系统图库 |
| | | /// </summary> |
| | | public int IconPathType = 0; |
| | | /// <summary> |
| | |
| | | private CommonForm.CompleteButton confirmBtn; |
| | | |
| | | /// <summary> |
| | | /// backGround |
| | | /// </summary> |
| | | private ImageView backGround; |
| | | |
| | | /// <summary> |
| | | /// 是否修改 |
| | | /// </summary> |
| | | public bool isModify; |
| | |
| | | /// modifyRoom |
| | | /// </summary> |
| | | public Common.Room modifyRoom; |
| | | |
| | | /// <summary> |
| | | /// OldBackgroundImagePath |
| | | /// </summary> |
| | | private string OldBackgroundImagePath; |
| | | /// <summary> |
| | | /// OldIconPathType |
| | | /// </summary> |
| | | public int OldIconPathType; |
| | | |
| | | /// <summary> |
| | | /// selectedTimeAction |
| | | /// </summary> |
| | | public Action<SceneTargetDeviceUI> selectedAction; |
| | | |
| | | |
| | | |
| | | #endregion |
| | |
| | | } |
| | | else if (targetDevice.Type == 2) |
| | | { |
| | | if(targetDevice.DelayTime<60) |
| | | { |
| | | devNameText = $"{targetDevice.DelayTime} {Language.StringByID(R.MyInternationalizationString.Second)}"; |
| | | } |
| | | else |
| | | { |
| | | devNameText = $"{targetDevice.DelayTime / 60} {Language.StringByID(R.MyInternationalizationString.Minute)} {targetDevice.DelayTime % 60} {Language.StringByID(R.MyInternationalizationString.Second)}"; |
| | | } |
| | | devNameText = CommonFormResouce.GetTimeString(targetDevice.DelayTime); |
| | | devNameText += Language.StringByID(R.MyInternationalizationString.Later); |
| | | var targetRow = new SceneTargetTimeRow(23); |
| | | targetRowLayout.AddChidren(targetRow); |
| | |
| | | targetRow.SetNameText(devNameText); |
| | | targetRow.SetZoneText(targetDevice.SceneUI.GetZone()); |
| | | } |
| | | |
| | | |
| | | |
| | | var editBtn = new Button() |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCEditBackGroundColor, |
| | |
| | | //设备详细设置界面 |
| | | void detailMouseUpEventHandler(object sender, MouseEventArgs e) |
| | | { |
| | | //设备 |
| | | if (targetDevice.Type == 0) |
| | | { |
| | | if (targetDevice.DeviceUI == null || targetDevice.DeviceUI.CommonDevice == null) |
| | |
| | | return; |
| | | } |
| | | |
| | | var deviceView = new SelectDevice(); |
| | | UserView.HomePage.Instance.AddChidren(deviceView); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | deviceView.sceneTargetDevice = targetDevice; |
| | | deviceView.deviceUI = targetDevice.DeviceUI; |
| | | deviceView.Show(); |
| | | deviceView.selectedAction = (selectedDevice) => |
| | | ShowSelectAction(targetDevice.DeviceUI, targetDevice); |
| | | selectedAction = (selectedDevice) => |
| | | { |
| | | var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedDevice.SceneTargetDeviceUIID); |
| | | if (targetDeviceUI != null) |
| | |
| | | }; |
| | | |
| | | } |
| | | //时间间隔 |
| | | else if (targetDevice.Type == 2) |
| | | { |
| | | var delayTimeView = new SelectDelayTime(); |
| | |
| | | RefreshTargetListView(); |
| | | }; |
| | | } |
| | | //场景 |
| | | else if (targetDevice.Type == 1) |
| | | { |
| | | var sceneView = new SelectScene(); |
| | |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | sceneView.sceneTargetDevice = targetDevice; |
| | | sceneView.sceneUI = targetDevice.SceneUI; |
| | | sceneView.currentSceneUI = modifySceneUI; |
| | | sceneView.Show(); |
| | | sceneView.selectedAction = (selectedScene) => |
| | | { |
| | |
| | | }; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | if (sceneTargetDevicesList.Count > 2) |
| | | { |
| | | var targetRowLayout = new RowLayout() |
| | | { |
| | | Height = Application.GetRealHeight(300), |
| | | LineColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | TargetListScrolView.AddChidren(targetRowLayout); |
| | | } |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | private void Init() |
| | | { |
| | | foreach (var floor in Config.Instance.Home.FloorDics) |
| | | { |
| | | floorIds.Add(floor.Key); |
| | | floorNames.Add(floor.Value); |
| | | if(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key).Count>0) |
| | | { |
| | | roomNames.Add(Common.Room.CurrentRoom.GetRoomNamesByFloorId(floor.Key)); |
| | | rooms.Add(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key)); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | }; |
| | | bodyFrameLayout.AddChidren(imgFL); |
| | | |
| | | var backGround = new Button() |
| | | backGround = new ImageView() |
| | | { |
| | | Width = Application.GetRealWidth(930), |
| | | Height = Application.GetRealHeight(464), |
| | | Width = Application.GetMinRealAverage(930), |
| | | Height = Application.GetMinRealAverage(464), |
| | | Gravity = Gravity.Center, |
| | | Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius), |
| | | //UnSelectedImagePath = ImagePath |
| | | UnSelectedImagePath = "SceneIcon/3.png" |
| | | Radius = (uint)Application.GetMinRealAverage(CommonFormResouce.BigFormRadius), |
| | | ImagePath = "SceneIcon/3.jpg" |
| | | }; |
| | | imgFL.AddChidren(backGround); |
| | | backGround.SetViewShadow(true); |
| | | |
| | | var infoFL = new FrameLayout |
| | | { |
| | |
| | | TextID = R.MyInternationalizationString.EditInfo, |
| | | TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = 14 |
| | | TextSize = 15, |
| | | IsBold=true |
| | | }; |
| | | infoFL.AddChidren(infoEdit); |
| | | |
| | |
| | | zoneRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongZone)}:"); |
| | | //zoneRow.SetTitle(curRoom.Name); |
| | | infoFL.AddChidren(zoneRow); |
| | | zoneRow.HideLine(false); |
| | | zoneRow.HideLine(true); |
| | | |
| | | var targetFL = new FrameLayout() |
| | | { |
| | |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextID = R.MyInternationalizationString.AddScentTargetAction, |
| | | Gravity = Gravity.CenterVertical |
| | | Gravity = Gravity.CenterVertical, |
| | | TextSize=15 |
| | | }; |
| | | addTargetFL.AddChidren(target); |
| | | |
| | |
| | | }; |
| | | addTargetFL.AddChidren(targetLine); |
| | | |
| | | //添加目标后的展示列表 |
| | | TargetListScrolView = new VerticalScrolViewLayout() |
| | | { |
| | | Y = Application.GetRealHeight(49+127), |
| | | Height = Application.GetRealHeight(730-127-49), |
| | | //BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | targetFL.AddChidren(TargetListScrolView); |
| | | |
| | | confirmBtn = new CommonForm.CompleteButton(1656, 907, 127); |
| | | AddChidren(confirmBtn); |
| | | |
| | | if(isModify) |
| | | if (isModify) |
| | | { |
| | | backGround.UnSelectedImagePath = modifySceneUI.IconPath; |
| | | nameRow.SetTitle(modifySceneUI.Name); |
| | | zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)},{modifyRoom.Name}"); |
| | | IconPathType = modifySceneUI.IconPathType; |
| | | OldIconPathType = modifySceneUI.IconPathType; |
| | | if (IconPathType != 0) |
| | | { |
| | | OldBackgroundImagePath = modifySceneUI.IconPath; |
| | | } |
| | | if (modifySceneUI.IconPathType == 0) |
| | | { |
| | | backGround.ImagePath = modifySceneUI.IconPath; |
| | | } |
| | | else |
| | | { |
| | | backGround.ImagePath = System.IO.Path.Combine(Config.Instance.FullPath, modifySceneUI.IconPath); |
| | | } |
| | | nameRow.SetTitle(modifySceneUI.Name); |
| | | if (Config.Instance.Home.FloorDics.Count == 0) |
| | | { |
| | | zoneRow.SetTitle($"{modifyRoom.Name}"); |
| | | } |
| | | else |
| | | { |
| | | zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)},{modifyRoom.Name}"); |
| | | } |
| | | curRoom = modifyRoom; |
| | | sceneTargetDevicesList.AddRange(modifySceneTargetDevicesList); |
| | | } |
| | |
| | | |
| | | #region event |
| | | |
| | | //选择背景图 |
| | | EventHandler<MouseEventArgs> backGroundIMGHander = (sender, e) => |
| | | { |
| | | if (curRoom == null) |
| | | { |
| | | RoomCommon.ShowTipNoRoom(); |
| | | return; |
| | | } |
| | | if (curRoom.IsSharedRoom) |
| | | { |
| | | RoomCommon.ShowTipRoomIsShared(); |
| | | return; |
| | | } |
| | | |
| | | var localPic = new CategorySceneSelectImgByLocal(); |
| | | Shared.Phone.UserView.HomePage.Instance.AddChidren(localPic); |
| | | Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | localPic.Show(); |
| | | localPic.action = (imgPath) => |
| | | { |
| | | IconPathType = 0; |
| | | backGround.UnSelectedImagePath = imgPath; |
| | | }; |
| | | |
| | | }; |
| | | backGround.MouseUpEventHandler += backGroundIMGHander; |
| | | |
| | | //区域 |
| | | EventHandler<MouseEventArgs> zoneHander = (sender, e) => |
| | | { |
| | | PickerView.ShowSecondary(floorNames, roomNames, (index1, index2) => |
| | | { |
| | | curRoom = rooms[index1][index2]; |
| | | zoneRow.NameText.Text = $"{Config.Instance.Home.GetFloorNameById(floorIds[index1])} , {rooms[index1][index2].Name}"; |
| | | }, 0, 0, Language.StringByID(R.MyInternationalizationString.BelongFloor), Language.StringByID(R.MyInternationalizationString.Confrim), Language.StringByID(R.MyInternationalizationString.Cancel)); |
| | | }; |
| | | zoneRow.NextBtn.MouseUpEventHandler += zoneHander; |
| | | zoneRow.TipBtn.MouseUpEventHandler += zoneHander; |
| | | zoneRow.NameText.MouseUpEventHandler += zoneHander; |
| | | zoneRow.MouseUpEventHandler += zoneHander; |
| | | |
| | | //执行目标-添加执行设备 |
| | | EventHandler<MouseEventArgs> targetAddHander = (sender, e) => |
| | | { |
| | | |
| | | if (curRoom == null) |
| | | { |
| | | RoomCommon.ShowTipNoRoom(); |
| | | return; |
| | | } |
| | | if (curRoom.IsSharedRoom) |
| | | if (curRoom != null && curRoom.IsSharedRoom) |
| | | { |
| | | RoomCommon.ShowTipRoomIsShared(); |
| | | return; |
| | |
| | | Y = Application.GetRealHeight(1276), |
| | | Height = Application.GetRealHeight(450), |
| | | Width = Application.GetRealWidth(selectRow_Width), |
| | | Gravity=Gravity.CenterHorizontal, |
| | | Radius = (uint)Application.GetRealHeight(17), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Radius = (uint)Application.GetRealHeight(35), |
| | | BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor |
| | | }; |
| | | selectFL.AddChidren(itemFL); |
| | | //itemFL.Animate = Animate.DownToUp; |
| | | |
| | | var selectLocalPicture = new Button() |
| | | { |
| | | Height = Application.GetRealHeight(selectRow_Height) - 1, |
| | | TextID = R.MyInternationalizationString.LocalPicture, |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, |
| | | TextSize=17 |
| | | }; |
| | | itemFL.AddChidren(selectLocalPicture); |
| | | var selectLocalLine = new Button() |
| | | { |
| | | Y = selectLocalPicture.Bottom, |
| | | Height = 1, |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 |
| | | }; |
| | | itemFL.AddChidren(selectLocalLine); |
| | | |
| | | var selectPhotographBtn = new Button() |
| | | { |
| | | Y = selectLocalLine.Bottom, |
| | | Height = Application.GetRealHeight(selectRow_Height) - 1, |
| | | TextID = R.MyInternationalizationString.Photograph, |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, |
| | | TextSize=17 |
| | | }; |
| | | itemFL.AddChidren(selectPhotographBtn); |
| | | var selectPhotographLine = new Button() |
| | | { |
| | | Y = selectPhotographBtn.Bottom, |
| | | Height = 1, |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2, |
| | | }; |
| | | itemFL.AddChidren(selectPhotographLine); |
| | | |
| | | var selectAblumsBtn = new Button() |
| | | { |
| | | Y = selectPhotographLine.Bottom, |
| | | Height = Application.GetRealHeight(selectRow_Height) - 1, |
| | | TextID = R.MyInternationalizationString.MyAblums, |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, |
| | | TextSize=17 |
| | | }; |
| | | itemFL.AddChidren(selectAblumsBtn); |
| | | |
| | | var cancelBtn = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(1742), |
| | | Height = Application.GetRealHeight(selectRow_Height), |
| | | Width = Application.GetRealWidth(selectRow_Width), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | TextID = R.MyInternationalizationString.Cancel, |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, |
| | | BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | Radius = (uint)Application.GetRealHeight(35), |
| | | TextSize=17 |
| | | }; |
| | | selectFL.AddChidren(cancelBtn); |
| | | |
| | | selectLocalPicture.MouseUpEventHandler += (send, ee) => |
| | | { |
| | | selectFL.RemoveFromParent(); |
| | | var localPic = new CategorySceneSelectImgByLocal(); |
| | | Shared.Phone.UserView.HomePage.Instance.AddChidren(localPic); |
| | | Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | localPic.Show(); |
| | | localPic.action = (imgPath) => |
| | | { |
| | | IconPathType = 0; |
| | | backGround.ImageBytes = null; |
| | | backGround.ImagePath = imgPath; |
| | | }; |
| | | }; |
| | | selectPhotographBtn.MouseUpEventHandler += (send, ee) => |
| | | { |
| | | selectFL.RemoveFromParent(); |
| | | var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); |
| | | var fileName = $"SceneIcon_{tradeTime}"; |
| | | //通过相机拍照裁剪 |
| | | CropImage.TakePicture((imagePath) => |
| | | { |
| | | if (isModify) |
| | | { |
| | | if (IconPathType != 0) |
| | | { |
| | | Global.DeleteFilebyHomeId(backGround.ImagePath); |
| | | } |
| | | } |
| | | |
| | | IconPathType = 1; |
| | | backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath); |
| | | backGround.ImagePath = imagePath; |
| | | System.IO.File.Delete(imagePath); |
| | | |
| | | }, fileName, 2, 1); |
| | | }; |
| | | |
| | | selectAblumsBtn.MouseUpEventHandler += (send, ee) => |
| | | { |
| | | selectFL.RemoveFromParent(); |
| | | var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); |
| | | var fileName = $"SceneIcon_{tradeTime}"; |
| | | //从相册选择图片裁剪 |
| | | CropImage.SelectPicture((imagePath) => |
| | | { |
| | | if (isModify) |
| | | { |
| | | if (IconPathType != 0) |
| | | { |
| | | Global.DeleteFilebyHomeId(backGround.ImagePath); |
| | | } |
| | | } |
| | | |
| | | IconPathType = 2; |
| | | backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath); |
| | | backGround.ImagePath = imagePath; |
| | | System.IO.File.Delete(imagePath); |
| | | |
| | | }, fileName, 2,1); |
| | | }; |
| | | |
| | | cancelBtn.MouseUpEventHandler += (send, ee) => |
| | | { |
| | | selectFL.RemoveFromParent(); |
| | | }; |
| | | selectFL.MouseUpEventHandler += (send, ee) => |
| | | { |
| | | selectFL.RemoveFromParent(); |
| | | }; |
| | | }; |
| | | backGround.MouseUpEventHandler += backGroundIMGHander; |
| | | |
| | | //区域 |
| | | EventHandler<MouseEventArgs> zoneHander = (sender, e) => |
| | | { |
| | | List<string> floorIds = new List<string> { }; |
| | | List<string> floorNames = new List<string> { }; |
| | | List<List<string>> roomNames = new List<List<string>> { }; |
| | | List<List<Common.Room>> rooms = new List<List<Common.Room>> { }; |
| | | List<Common.Room> rs = new List<Common.Room> { }; |
| | | List<string> rNames = new List<string> { }; |
| | | if (Config.Instance.Home.FloorDics.Count > 0) |
| | | { |
| | | foreach (var floor in Config.Instance.Home.FloorDics) |
| | | { |
| | | if (Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key).Count > 0) |
| | | { |
| | | floorIds.Add(floor.Key); |
| | | floorNames.Add(floor.Value); |
| | | |
| | | roomNames.Add(Common.Room.CurrentRoom.GetRoomNamesByFloorId(floor.Key)); |
| | | rooms.Add(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key)); |
| | | } |
| | | } |
| | | PickerView.ShowSecondary(floorNames, roomNames, (index1, index2) => |
| | | { |
| | | curRoom = rooms[index1][index2]; |
| | | zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(floorIds[index1])} , {rooms[index1][index2].Name}"); |
| | | }, 0, 0, Language.StringByID(R.MyInternationalizationString.BelongZone), |
| | | Language.StringByID(R.MyInternationalizationString.Confrim), |
| | | Language.StringByID(R.MyInternationalizationString.Cancel)); |
| | | } |
| | | else |
| | | { |
| | | for (int i = 0; i < Common.Room.Lists.Count; i++) |
| | | { |
| | | var r = Common.Room.Lists[i]; |
| | | if (r.IsLove) |
| | | { |
| | | continue; |
| | | } |
| | | rs.Add(r); |
| | | rNames.Add(r.Name); |
| | | } |
| | | PickerView.Show(rNames, (index1) => |
| | | { |
| | | curRoom = rs[index1]; |
| | | zoneRow.SetTitle(rs[index1].Name); |
| | | }, 0, Language.StringByID(R.MyInternationalizationString.BelongZone), |
| | | Language.StringByID(R.MyInternationalizationString.Confrim), |
| | | Language.StringByID(R.MyInternationalizationString.Cancel)); |
| | | } |
| | | }; |
| | | zoneRow.ClickBtn.MouseUpEventHandler += zoneHander; |
| | | |
| | | //执行目标-添加执行设备 |
| | | EventHandler<MouseEventArgs> targetAddHander = (sender, e) => |
| | | { |
| | | |
| | | //if (curRoom == null) |
| | | //{ |
| | | // RoomCommon.ShowTipNoRoom(); |
| | | // return; |
| | | //} |
| | | if(curRoom != null) |
| | | { |
| | | if (curRoom.IsSharedRoom) |
| | | { |
| | | RoomCommon.ShowTipRoomIsShared(); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | int selectRow_Height = 150; |
| | | int selectRow_Width = 1034; |
| | | var selectFL = new FrameLayout() |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor |
| | | }; |
| | | AddChidren(selectFL); |
| | | |
| | | var itemFL = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(1276), |
| | | Height = Application.GetRealHeight(450), |
| | | Width = Application.GetRealWidth(selectRow_Width), |
| | | Gravity=Gravity.CenterHorizontal, |
| | | Radius = (uint)Application.GetRealHeight(35), |
| | | BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor |
| | | }; |
| | | selectFL.AddChidren(itemFL); |
| | | //itemFL.Animate = Animate.DownToUp; |
| | | |
| | | var selectedFunctionBtn = new Button() |
| | | { |
| | | Height = Application.GetRealHeight(selectRow_Height) - 1, |
| | | TextID = R.MyInternationalizationString.Function, |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor4 |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, |
| | | TextSize=17 |
| | | }; |
| | | itemFL.AddChidren(selectedFunctionBtn); |
| | | var selectedFunctionLine = new Button() |
| | | { |
| | | Y = selectedFunctionBtn.Bottom, |
| | | Height = 1, |
| | | BackgroundColor = ZigbeeColor.Current.GXCLineColor |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 |
| | | }; |
| | | itemFL.AddChidren(selectedFunctionLine); |
| | | |
| | |
| | | Y = selectedFunctionLine.Bottom, |
| | | Height = Application.GetRealHeight(selectRow_Height) - 1, |
| | | TextID = R.MyInternationalizationString.Scence, |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor4 |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, |
| | | TextSize=17 |
| | | }; |
| | | itemFL.AddChidren(selectedSceneBtn); |
| | | var selectedSceneLine = new Button() |
| | | { |
| | | Y = selectedSceneBtn.Bottom, |
| | | Height = 1, |
| | | BackgroundColor = ZigbeeColor.Current.GXCLineColor, |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2, |
| | | }; |
| | | itemFL.AddChidren(selectedSceneLine); |
| | | |
| | |
| | | Y = selectedSceneLine.Bottom, |
| | | Height = Application.GetRealHeight(selectRow_Height) - 1, |
| | | TextID = R.MyInternationalizationString.Delay, |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor4 |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, |
| | | TextSize=17 |
| | | }; |
| | | itemFL.AddChidren(selectedTimerBtn); |
| | | |
| | |
| | | TextID = R.MyInternationalizationString.Cancel, |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, |
| | | BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | Radius = (uint)Application.GetRealHeight(17) |
| | | Radius = (uint)Application.GetRealHeight(35), |
| | | TextSize=17 |
| | | }; |
| | | selectFL.AddChidren(cancelBtn); |
| | | |
| | |
| | | UserView.HomePage.Instance.AddChidren(sceneView); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | sceneView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList; |
| | | sceneView.currentSceneUI = modifySceneUI; |
| | | sceneView.Show(); |
| | | sceneView.selectedAction = (selectedScene) => |
| | | { |
| | | sceneTargetDevicesList.Add(selectedScene); |
| | | RefreshTargetListView(); |
| | | }; |
| | | |
| | | |
| | | }; |
| | | //添加时间间隔 |
| | | selectedTimerBtn.MouseUpEventHandler += (send, ee) => |
| | |
| | | { |
| | | try |
| | | { |
| | | //改名 |
| | | var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); |
| | | var fileName = $"SceneIcon_{tradeTime}"; |
| | | if (modifySceneUI.Name != nameRow.NameText.Text.Trim()) |
| | | { |
| | | if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null) |
| | | { |
| | | Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist); |
| | | CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist)); |
| | | return; |
| | | } |
| | | //修改名字 |
| | | var r = await ZigBee.Device.Scene.RenameSceneAsync(modifySceneUI.Id, nameRow.NameText.Text.Trim()); |
| | | var reName = r.sceneRenameResponseData.Result; |
| | | if (reName == 0) |
| | | { |
| | | //失败 |
| | | return; |
| | | } |
| | | else if (reName == 1) |
| | | { |
| | | //成功 |
| | | modifySceneUI.Name = nameRow.NameText.Text.Trim(); |
| | | |
| | | } |
| | | else if (reName == 2) |
| | | { |
| | | //没有该场景 |
| | | return; |
| | | } |
| | | } |
| | | //图片 |
| | | if(IconPathType==1 || IconPathType ==2) |
| | | if (OldIconPathType != 0) |
| | | { |
| | | |
| | | Shared.IO.FileUtils.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath, OldBackgroundImagePath)); |
| | | } |
| | | |
| | | if (IconPathType == 1 || IconPathType == 2) |
| | | { |
| | | Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes); |
| | | modifySceneUI.IconPath = fileName; |
| | | } |
| | | else |
| | | { |
| | | modifySceneUI.IconPath = backGround.ImagePath; |
| | | } |
| | | modifySceneUI.IconPathType = IconPathType; |
| | | |
| | | CommonPage.Loading.Start(); |
| | | var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>(); |
| | | for (int i = 0; i < sceneTargetDevicesList.Count; i++) |
| | |
| | | } |
| | | else if (result == 0) |
| | | { |
| | | //失败 |
| | | Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); |
| | | } |
| | | else if (result == -1) |
| | | { |
| | | //已存在 |
| | | Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist); |
| | | } |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); |
| | | var fileName = $"SceneIcon_{tradeTime}.png"; |
| | | string imgPath; |
| | | if (IconPathType == 1 || IconPathType == 2) |
| | | { |
| | | Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes); |
| | | imgPath = fileName; |
| | | } |
| | | else |
| | | { |
| | | imgPath = backGround.ImagePath; |
| | | } |
| | | if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null) |
| | | { |
| | | Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist); |
| | |
| | | } |
| | | } |
| | | |
| | | var result = await curRoom.AddScene(nameRow.NameText.Text, backGround.UnSelectedImagePath, memberDataList); |
| | | var result = await curRoom.AddScene(nameRow.NameText.Text, imgPath, memberDataList); |
| | | if (result == 1) |
| | | { |
| | | RemoveFromParent(); |
| | | } |
| | | else if (result == 0) |
| | | { |
| | | //失败 |
| | | CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.AddSceneFail); |
| | | } |
| | | else if (result == -1) |
| | | { |
| | | //已存在 |
| | | CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist); |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | }; |
| | | #endregion |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 编辑设备____________________________________ |
| | | |
| | | /// <summary> |
| | | /// ShowSelectAction |
| | | /// </summary> |
| | | /// <param name="device"></param> |
| | | private void ShowSelectAction(DeviceUI device, SceneTargetDeviceUI sceneTarget) |
| | | { |
| | | var dialog = new FrameLayout() |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor |
| | | }; |
| | | AddChidren(dialog); |
| | | |
| | | dialog.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | dialog.RemoveFromParent(); |
| | | }; |
| | | |
| | | if (device.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput) |
| | | { |
| | | SelectOnoffOutput(dialog, device, sceneTarget); |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) |
| | | { |
| | | SelectOnoffOutput(dialog, device, sceneTarget); |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight) |
| | | { |
| | | SelectDimmableLight(dialog, device, sceneTarget); |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) |
| | | { |
| | | SelectWindowCoveringDevice(dialog, device, sceneTarget); |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) |
| | | { |
| | | SelectThermostat(dialog, device, sceneTarget); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 灯光 |
| | | /// </summary> |
| | | /// <param name="dialog"></param> |
| | | /// <param name="device"></param> |
| | | /// <param name="sceneTarget"></param> |
| | | private void SelectOnoffOutput(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget) |
| | | { |
| | | var selectFL = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(1391), |
| | | Height = Application.GetRealHeight(530), |
| | | }; |
| | | dialog.AddChidren(selectFL); |
| | | //selectFL.Animate = Animate.DownToUp; |
| | | |
| | | var titleBG = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(138 * 2), |
| | | Radius = (uint)Application.GetRealHeight(58), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | selectFL.AddChidren(titleBG); |
| | | |
| | | var titleFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(138), |
| | | }; |
| | | selectFL.AddChidren(titleFL); |
| | | |
| | | var line = new Button |
| | | { |
| | | Y = titleFL.Height - 1, |
| | | Height = 1, |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 |
| | | }; |
| | | titleFL.AddChidren(line); |
| | | |
| | | var cancleBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(80), |
| | | Width = Application.GetRealWidth(200), |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor, |
| | | TextSize = 14, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextID = R.MyInternationalizationString.Cancel |
| | | }; |
| | | titleFL.AddChidren(cancleBtn); |
| | | |
| | | var deviceName = new Button |
| | | { |
| | | Width = Application.GetRealWidth(400), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextSize = 16, |
| | | Text = device.CommonDevice.DeviceEpointName |
| | | }; |
| | | titleFL.AddChidren(deviceName); |
| | | |
| | | var comfrimBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(800), |
| | | Width = Application.GetRealWidth(200), |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor2, |
| | | TextSize = 14, |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextID = R.MyInternationalizationString.Complete |
| | | }; |
| | | titleFL.AddChidren(comfrimBtn); |
| | | |
| | | var itemFL = new FrameLayout |
| | | { |
| | | Y = titleFL.Bottom, |
| | | Height = Application.GetRealHeight(392), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | selectFL.AddChidren(itemFL); |
| | | |
| | | var open = new SelectSceneStatuRow(0, 60); |
| | | itemFL.AddChidren(open); |
| | | open.Init(); |
| | | open.SetTitle(R.MyInternationalizationString.Open); |
| | | open.IsSelected = true; |
| | | |
| | | |
| | | var shut = new SelectSceneStatuRow(0, 60 + 127 + 30); |
| | | itemFL.AddChidren(shut); |
| | | shut.Init(); |
| | | shut.hideLine(true); |
| | | shut.SetTitle(R.MyInternationalizationString.Shut); |
| | | |
| | | open.ClickButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | open.IsSelected = true; |
| | | shut.IsSelected = false; |
| | | }; |
| | | |
| | | shut.ClickButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | open.IsSelected = false; |
| | | shut.IsSelected = true; |
| | | }; |
| | | |
| | | cancleBtn.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | dialog.RemoveAll(); |
| | | dialog.RemoveFromParent(); |
| | | }; |
| | | |
| | | if (sceneTarget.TaskList.Count > 0) |
| | | { |
| | | if (sceneTarget.TaskList[0].Data1 == 1) |
| | | { |
| | | open.IsSelected = true; |
| | | shut.IsSelected = false; |
| | | } |
| | | else |
| | | { |
| | | open.IsSelected = false; |
| | | shut.IsSelected = true; |
| | | } |
| | | } |
| | | |
| | | comfrimBtn.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { }; |
| | | int taskType = 1; |
| | | int data1 = 0; |
| | | int data2 = 0; |
| | | |
| | | if (open.IsSelected) |
| | | { |
| | | //开 |
| | | data1 = 1; |
| | | data2 = 0; |
| | | } |
| | | else |
| | | { |
| | | //关 |
| | | data1 = 0; |
| | | data2 = 0; |
| | | } |
| | | var taskInfo = new ZigBee.Device.Scene.TaskListInfo |
| | | { |
| | | TaskType = taskType, |
| | | Data1 = data1, |
| | | Data2 = data2 |
| | | }; |
| | | taskList.Add(taskInfo); |
| | | |
| | | sceneTarget.TaskList = taskList; |
| | | sceneTarget.DeviceUI = device; |
| | | selectedAction?.Invoke(sceneTarget); |
| | | dialog.RemoveFromParent(); |
| | | }; |
| | | } |
| | | /// <summary> |
| | | /// 窗帘 |
| | | /// </summary> |
| | | /// <param name="dialog"></param> |
| | | /// <param name="device"></param> |
| | | /// <param name="sceneTarget"></param> |
| | | private void SelectWindowCoveringDevice(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget) |
| | | { |
| | | var selectFL = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(1169), |
| | | Height = Application.GetRealHeight(752), |
| | | }; |
| | | dialog.AddChidren(selectFL); |
| | | //selectFL.Animate = Animate.DownToUp; |
| | | |
| | | var titleBG = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(138 * 2), |
| | | Radius = (uint)Application.GetRealHeight(58), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | selectFL.AddChidren(titleBG); |
| | | |
| | | var titleFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(138), |
| | | }; |
| | | selectFL.AddChidren(titleFL); |
| | | |
| | | var line = new Button |
| | | { |
| | | Y = titleFL.Height - 1, |
| | | Height = 1, |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 |
| | | }; |
| | | titleFL.AddChidren(line); |
| | | |
| | | var cancleBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(80), |
| | | Width = Application.GetRealWidth(200), |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor, |
| | | TextSize = 14, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextID = R.MyInternationalizationString.Cancel |
| | | }; |
| | | titleFL.AddChidren(cancleBtn); |
| | | |
| | | var deviceName = new Button |
| | | { |
| | | Width = Application.GetRealWidth(400), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextSize = 16, |
| | | Text = device.CommonDevice.DeviceEpointName |
| | | }; |
| | | titleFL.AddChidren(deviceName); |
| | | |
| | | var comfrimBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(800), |
| | | Width = Application.GetRealWidth(200), |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor2, |
| | | TextSize = 14, |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextID = R.MyInternationalizationString.Complete |
| | | }; |
| | | titleFL.AddChidren(comfrimBtn); |
| | | |
| | | var itemFL = new FrameLayout |
| | | { |
| | | Y = titleFL.Bottom, |
| | | Height = Application.GetRealHeight(613), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | selectFL.AddChidren(itemFL); |
| | | |
| | | var open = new SelectDeviceWithSeekBarRow(0, 60); |
| | | itemFL.AddChidren(open); |
| | | open.Init(); |
| | | open.SetTitle(R.MyInternationalizationString.Open); |
| | | open.IsSelected = true; |
| | | |
| | | var shut = new SelectSceneStatuRow(0, 60 + 348 + 30); |
| | | itemFL.AddChidren(shut); |
| | | shut.Init(); |
| | | shut.hideLine(true); |
| | | shut.SetTitle(R.MyInternationalizationString.Shut); |
| | | |
| | | open.ClickButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | open.IsSelected = true; |
| | | shut.IsSelected = false; |
| | | }; |
| | | |
| | | shut.ClickButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | open.IsSelected = false; |
| | | shut.IsSelected = true; |
| | | }; |
| | | |
| | | cancleBtn.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | dialog.RemoveAll(); |
| | | dialog.RemoveFromParent(); |
| | | }; |
| | | |
| | | open.SeekBar.ProgressChanged += (sender, e) => |
| | | { |
| | | open.IsSelected = true; |
| | | shut.IsSelected = false; |
| | | open.SetSeekBarTitle(); |
| | | }; |
| | | |
| | | if (sceneTarget.TaskList.Count > 0) |
| | | { |
| | | if (sceneTarget.TaskList[0].Data1 == 1) |
| | | { |
| | | open.IsSelected = false; |
| | | shut.IsSelected = true; |
| | | } |
| | | else |
| | | { |
| | | open.IsSelected = true; |
| | | shut.IsSelected = false; |
| | | open.SetProgress(sceneTarget.TaskList[0].Data2); |
| | | } |
| | | } |
| | | |
| | | comfrimBtn.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { }; |
| | | |
| | | int taskType = 6; |
| | | int data1 = 0; |
| | | int data2 = 0; |
| | | |
| | | if (shut.IsSelected) |
| | | { |
| | | //关 |
| | | data1 = 1; |
| | | data2 = 0; |
| | | } |
| | | else |
| | | { |
| | | //百分比 |
| | | data1 = 5; |
| | | data2 = open.SeekBar.Progress; |
| | | } |
| | | |
| | | var taskInfo = new ZigBee.Device.Scene.TaskListInfo |
| | | { |
| | | TaskType = taskType, |
| | | Data1 = data1, |
| | | Data2 = data2 |
| | | }; |
| | | taskList.Add(taskInfo); |
| | | |
| | | sceneTarget.TaskList = taskList; |
| | | sceneTarget.DeviceUI = device; |
| | | selectedAction?.Invoke(sceneTarget); |
| | | dialog.RemoveFromParent(); |
| | | }; |
| | | } |
| | | /// <summary> |
| | | /// 调光灯 |
| | | /// </summary> |
| | | /// <param name="dialog"></param> |
| | | /// <param name="device"></param> |
| | | /// <param name="sceneTarget"></param> |
| | | private void SelectDimmableLight(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget) |
| | | { |
| | | var selectFL = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(1169), |
| | | Height = Application.GetRealHeight(752), |
| | | }; |
| | | dialog.AddChidren(selectFL); |
| | | //selectFL.Animate = Animate.DownToUp; |
| | | |
| | | var titleBG = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(138 * 2), |
| | | Radius = (uint)Application.GetRealHeight(58), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | selectFL.AddChidren(titleBG); |
| | | |
| | | var titleFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(138), |
| | | }; |
| | | selectFL.AddChidren(titleFL); |
| | | |
| | | var line = new Button |
| | | { |
| | | Y = titleFL.Height - 1, |
| | | Height = 1, |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 |
| | | }; |
| | | titleFL.AddChidren(line); |
| | | |
| | | var cancleBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(80), |
| | | Width = Application.GetRealWidth(200), |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor, |
| | | TextSize = 14, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextID = R.MyInternationalizationString.Cancel |
| | | }; |
| | | titleFL.AddChidren(cancleBtn); |
| | | |
| | | var deviceName = new Button |
| | | { |
| | | Width = Application.GetRealWidth(400), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextSize = 16, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = device.CommonDevice.DeviceEpointName |
| | | }; |
| | | titleFL.AddChidren(deviceName); |
| | | |
| | | var comfrimBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(800), |
| | | Width = Application.GetRealWidth(200), |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor2, |
| | | TextSize = 14, |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextID = R.MyInternationalizationString.Complete |
| | | }; |
| | | titleFL.AddChidren(comfrimBtn); |
| | | |
| | | var itemFL = new FrameLayout |
| | | { |
| | | Y = titleFL.Bottom, |
| | | Height = Application.GetRealHeight(613), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | selectFL.AddChidren(itemFL); |
| | | |
| | | var open = new SelectDeviceWithSeekBarRow(0, 60); |
| | | itemFL.AddChidren(open); |
| | | open.Init(254); |
| | | open.SetTitle(R.MyInternationalizationString.Open); |
| | | open.IsSelected = true; |
| | | |
| | | var shut = new SelectSceneStatuRow(0, 60 + 348 + 30); |
| | | itemFL.AddChidren(shut); |
| | | shut.Init(); |
| | | shut.hideLine(true); |
| | | shut.SetTitle(R.MyInternationalizationString.Shut); |
| | | |
| | | open.ClickButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | open.IsSelected = true; |
| | | shut.IsSelected = false; |
| | | }; |
| | | |
| | | shut.ClickButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | open.IsSelected = false; |
| | | shut.IsSelected = true; |
| | | }; |
| | | |
| | | cancleBtn.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | dialog.RemoveAll(); |
| | | dialog.RemoveFromParent(); |
| | | }; |
| | | |
| | | open.SeekBar.ProgressChanged += (sender, e) => |
| | | { |
| | | open.IsSelected = true; |
| | | shut.IsSelected = false; |
| | | open.SetSeekBarTitle(); |
| | | }; |
| | | |
| | | if (sceneTarget.TaskList.Count > 0) |
| | | { |
| | | if (sceneTarget.TaskList[0].Data1 == 0) |
| | | { |
| | | open.IsSelected = false; |
| | | shut.IsSelected = true; |
| | | } |
| | | else |
| | | { |
| | | open.IsSelected = true; |
| | | shut.IsSelected = false; |
| | | open.SetProgress(sceneTarget.TaskList[0].Data1); |
| | | } |
| | | } |
| | | |
| | | comfrimBtn.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { }; |
| | | |
| | | int taskType = 3; |
| | | int data1 = 0; |
| | | int data2 = 0; |
| | | |
| | | if (shut.IsSelected) |
| | | { |
| | | //关 |
| | | data1 = 0; |
| | | data2 = 0; |
| | | } |
| | | else |
| | | { |
| | | //百分比 |
| | | data1 = open.SeekBar.Progress; |
| | | data2 = 0; |
| | | } |
| | | |
| | | var taskInfo = new ZigBee.Device.Scene.TaskListInfo |
| | | { |
| | | TaskType = taskType, |
| | | Data1 = data1, |
| | | Data2 = data2 |
| | | }; |
| | | taskList.Add(taskInfo); |
| | | |
| | | sceneTarget.TaskList = taskList; |
| | | sceneTarget.DeviceUI = device; |
| | | selectedAction?.Invoke(sceneTarget); |
| | | dialog.RemoveFromParent(); |
| | | }; |
| | | } |
| | | /// <summary> |
| | | /// 空调 |
| | | /// </summary> |
| | | /// <param name="dialog"></param> |
| | | /// <param name="device"></param> |
| | | /// <param name="sceneTarget"></param> |
| | | private void SelectThermostat(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget) |
| | | { |
| | | /// 温度 |
| | | int tempId=0; |
| | | /// 模式 |
| | | int modelId=0; |
| | | /// 风速 |
| | | int fanid=0; |
| | | |
| | | var selectFL = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(815), |
| | | Height = Application.GetRealHeight(1106), |
| | | }; |
| | | dialog.AddChidren(selectFL); |
| | | //selectFL.Animate = Animate.DownToUp; |
| | | |
| | | var titleBG = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(138 * 2), |
| | | Radius = (uint)Application.GetRealHeight(58), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | selectFL.AddChidren(titleBG); |
| | | |
| | | var titleFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(138), |
| | | }; |
| | | selectFL.AddChidren(titleFL); |
| | | |
| | | var line = new Button |
| | | { |
| | | Y = titleFL.Height - 1, |
| | | Height = 1, |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 |
| | | }; |
| | | titleFL.AddChidren(line); |
| | | |
| | | var cancleBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(80), |
| | | Width = Application.GetRealWidth(200), |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor, |
| | | TextSize = 14, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextID = R.MyInternationalizationString.Cancel |
| | | }; |
| | | titleFL.AddChidren(cancleBtn); |
| | | |
| | | var deviceName = new Button |
| | | { |
| | | Width = Application.GetRealWidth(400), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextSize = 16, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = device.CommonDevice.DeviceEpointName |
| | | }; |
| | | titleFL.AddChidren(deviceName); |
| | | |
| | | var comfrimBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(800), |
| | | Width = Application.GetRealWidth(200), |
| | | TextColor = ZigbeeColor.Current.GXCTextSelectedColor2, |
| | | TextSize = 14, |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextID = R.MyInternationalizationString.Complete |
| | | }; |
| | | titleFL.AddChidren(comfrimBtn); |
| | | |
| | | var itemFL = new FrameLayout |
| | | { |
| | | Y = titleFL.Bottom, |
| | | Height = Application.GetRealHeight(968), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | selectFL.AddChidren(itemFL); |
| | | |
| | | var open = new SelectDeviceWithPickViewRow(0, 60); |
| | | itemFL.AddChidren(open); |
| | | open.Init(); |
| | | open.SetTitle(R.MyInternationalizationString.Open); |
| | | open.IsSelected = true; |
| | | |
| | | open.pickerView.OnSelectChangeEvent = (l1, l2, l3) => |
| | | { |
| | | tempId = l1; |
| | | modelId = l2; |
| | | fanid = l3; |
| | | }; |
| | | |
| | | var shut = new SelectSceneStatuRow(0, 60 + 703 + 30); |
| | | itemFL.AddChidren(shut); |
| | | shut.Init(); |
| | | shut.hideLine(true); |
| | | shut.SetTitle(R.MyInternationalizationString.Shut); |
| | | |
| | | open.ClickButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | open.IsSelected = true; |
| | | shut.IsSelected = false; |
| | | }; |
| | | |
| | | shut.ClickButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | open.IsSelected = false; |
| | | shut.IsSelected = true; |
| | | }; |
| | | |
| | | cancleBtn.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | dialog.RemoveAll(); |
| | | dialog.RemoveFromParent(); |
| | | }; |
| | | |
| | | if (sceneTarget.TaskList.Count > 0) |
| | | { |
| | | if (sceneTarget.TaskList.Count == 1) |
| | | { |
| | | open.IsSelected = false; |
| | | shut.IsSelected = true; |
| | | } |
| | | else |
| | | { |
| | | open.IsSelected = true; |
| | | shut.IsSelected = false; |
| | | |
| | | for (int i = 0; i < sceneTarget.TaskList.Count; i++) |
| | | { |
| | | var tasklist = sceneTarget.TaskList[i]; |
| | | if (tasklist.Data1 == 6) |
| | | { |
| | | fanid = open.fanList.IndexOf(tasklist.Data2); |
| | | } |
| | | if (tasklist.Data1 == 3) |
| | | { |
| | | modelId = open.modeList.IndexOf(tasklist.Data2); |
| | | } |
| | | if (tasklist.Data1 == 4 || tasklist.Data1 == 5) |
| | | { |
| | | tempId = open.temperatureList.IndexOf(tasklist.Data2 / 100); |
| | | } |
| | | } |
| | | open.pickerView.setCurrentItems(tempId, modelId, fanid); |
| | | } |
| | | } |
| | | |
| | | comfrimBtn.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | |
| | | var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { }; |
| | | |
| | | int taskType = 5; |
| | | int data1 = 0; |
| | | int data2 = 0; |
| | | |
| | | if (shut.IsSelected) |
| | | { |
| | | //关 |
| | | data1 = 3; |
| | | data2 = 0; |
| | | var taskInfo = new ZigBee.Device.Scene.TaskListInfo |
| | | { |
| | | TaskType = taskType, |
| | | Data1 = data1, |
| | | Data2 = data2 |
| | | }; |
| | | taskList.Add(taskInfo); |
| | | } |
| | | else |
| | | { |
| | | //fan |
| | | var taskInfo = new ZigBee.Device.Scene.TaskListInfo |
| | | { |
| | | TaskType = taskType, |
| | | Data1 = 6, |
| | | Data2 = open.fanList[fanid] |
| | | }; |
| | | taskList.Add(taskInfo); |
| | | |
| | | //mode |
| | | var taskInfo2 = new ZigBee.Device.Scene.TaskListInfo |
| | | { |
| | | TaskType = taskType, |
| | | Data1 = 3, |
| | | Data2 = open.modeList[modelId] |
| | | }; |
| | | taskList.Add(taskInfo2); |
| | | |
| | | //tem |
| | | if (open.modeList[modelId] == 4) |
| | | { |
| | | //heat |
| | | var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo |
| | | { |
| | | TaskType = taskType, |
| | | Data1 = 4, |
| | | Data2 = open.temperatureList[tempId] * 100 |
| | | }; |
| | | taskList.Add(taskInfo3); |
| | | |
| | | } |
| | | else |
| | | { |
| | | //heat |
| | | var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo |
| | | { |
| | | TaskType = taskType, |
| | | Data1 = 5, |
| | | Data2 = open.temperatureList[tempId] * 100 |
| | | }; |
| | | taskList.Add(taskInfo3); |
| | | } |
| | | } |
| | | |
| | | sceneTarget.TaskList = taskList; |
| | | sceneTarget.DeviceUI = device; |
| | | selectedAction?.Invoke(sceneTarget); |
| | | dialog.RemoveFromParent(); |
| | | }; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | } |
| | | } |