| | |
| | | using System.Collections.Generic; |
| | | using System.Globalization; |
| | | using Shared.Common; |
| | | using Shared.Phone.UserCenter; |
| | | using ZigBee.Device; |
| | | |
| | | namespace Shared.Phone.Device.CommonForm |
| | | { |
| | |
| | | /// </summary> |
| | | private FrameLayout bodyFrameLayout; |
| | | /// <summary> |
| | | /// 所属区域列表 |
| | | /// 所属区域 |
| | | /// </summary> |
| | | private List<string> roomNameList; |
| | | private string roomName; |
| | | /// <summary> |
| | | /// action |
| | | /// </summary> |
| | | public Action action; |
| | | public Action<DeviceUI,Common.Room> EditAction; |
| | | /// <summary> |
| | | /// curRoom |
| | | /// </summary> |
| | | private Common.Room curRoom; |
| | | /// <summary> |
| | | /// curRoom |
| | | /// </summary> |
| | | private Common.Room befRoom; |
| | | /// <summary> |
| | | /// sharedRow |
| | | /// </summary> |
| | | private DeviceInfoRow sharedRow; |
| | | /// <summary> |
| | | /// functionTypeRow |
| | | /// </summary> |
| | | private DeviceInfoRow functionTypeRow; |
| | | |
| | | |
| | | #endregion |
| | | |
| | |
| | | /// </summary> |
| | | public override void RemoveFromParent() |
| | | { |
| | | action(); |
| | | EditAction = null; |
| | | base.RemoveFromParent(); |
| | | } |
| | | #endregion |
| | |
| | | |
| | | AddTop(); |
| | | |
| | | AddBodyView(device); |
| | | AddBodyView(device,room); |
| | | |
| | | } |
| | | |
| | |
| | | /// <summary> |
| | | /// AddBodyView |
| | | /// </summary> |
| | | public void AddBodyView(DeviceUI device) |
| | | public void AddBodyView(DeviceUI device, Common.Room room) |
| | | { |
| | | bodyFrameLayout = new FrameLayout() |
| | | { |
| | |
| | | Height = Application.GetMinRealAverage(207), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Radius=(uint)Application.GetMinRealAverage(207) |
| | | Radius = (uint)Application.GetMinRealAverage(207/2) |
| | | }; |
| | | bodyFrameLayout.AddChidren(deviceBG); |
| | | |
| | |
| | | Height = Application.GetMinRealAverage(184), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | BackgroundColor = ZigbeeColor.Current.GXCSelectedBackgroundColor, |
| | | Radius = (uint)Application.GetMinRealAverage(184) |
| | | Radius = (uint)Application.GetMinRealAverage(184/2) |
| | | }; |
| | | bodyFrameLayout.AddChidren(deviceBG2); |
| | | |
| | |
| | | }; |
| | | bodyFrameLayout.AddChidren(deviceIMG); |
| | | |
| | | var info = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device.CommonDevice); |
| | | |
| | | var deviceTypeName = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(360), |
| | | Width = Application.GetRealWidth(900), |
| | | Height = Application.GetRealHeight(80), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | Text = DeviceUI.GetDeviceTypeName(device.CommonDevice.Type), |
| | | Gravity = Gravity.CenterHorizontal |
| | | TextID = info.BeloneTextId, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | TextSize = 15 |
| | | }; |
| | | bodyFrameLayout.AddChidren(deviceTypeName); |
| | | |
| | |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | bodyFrameLayout.AddChidren(infoFL); |
| | | var rectCornerID = HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight; |
| | | infoFL.SetCornerWithSameRadius(Application.GetRealHeight(58), rectCornerID); |
| | | |
| | | var tipBtn = new Button |
| | | { |
| | |
| | | }; |
| | | infoFL.AddChidren(tipBtn); |
| | | |
| | | var nameRow = new DeviceInfoEditRow(170); |
| | | var infoScrolView = new VerticalScrolViewLayout |
| | | { |
| | | Y = Application.GetRealHeight(170-12), |
| | | Height = Application.GetRealHeight(600), |
| | | ScrollEnabled = false, |
| | | VerticalScrollBarEnabled = false |
| | | }; |
| | | infoFL.AddChidren(infoScrolView); |
| | | |
| | | var nameFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(127 + 12) |
| | | }; |
| | | infoScrolView.AddChidren(nameFL); |
| | | var nameRow = new DeviceInfoEditRow(12); |
| | | nameRow.Init(); |
| | | nameRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.FunctionName)} : "); |
| | | nameRow.SetTitle(string.IsNullOrEmpty(device.CommonDevice.DeviceEpointName) ? Language.StringByID(R.MyInternationalizationString.UNKnown) : device.CommonDevice.DeviceEpointName); |
| | | infoFL.AddChidren(nameRow); |
| | | nameRow.SetTitle(string.IsNullOrEmpty(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)) ? Language.StringByID(R.MyInternationalizationString.UNKnown) : Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)); |
| | | nameFL.AddChidren(nameRow); |
| | | |
| | | var zoneRow = new DeviceInfoRow(308); |
| | | |
| | | var zoneFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(127 + 12) |
| | | }; |
| | | if (room != null && room.IsLove == false) |
| | | { |
| | | infoScrolView.AddChidren(zoneFL); |
| | | } |
| | | var zoneRow = new DeviceInfoRow(12); |
| | | zoneRow.Init(); |
| | | zoneRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongZone)} : "); |
| | | //zoneRow.SetTitle(Common.Room.CurrentRoom.GetRoomName(roomNameList)); |
| | | infoFL.AddChidren(zoneRow); |
| | | zoneRow.SetTitle(roomName); |
| | | zoneFL.AddChidren(zoneRow); |
| | | |
| | | var modelRow = new DeviceInfoRow(446); |
| | | var modelFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(127 + 12) |
| | | }; |
| | | infoScrolView.AddChidren(modelFL); |
| | | var modelRow = new DeviceInfoRow(12); |
| | | modelRow.Init(); |
| | | modelRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongModel)} : "); |
| | | modelRow.SetTitle(string.IsNullOrEmpty(device.CommonDevice.DeviceName) ? Language.StringByID(R.MyInternationalizationString.UNKnown) : device.CommonDevice.DeviceName); |
| | | infoFL.AddChidren(modelRow); |
| | | modelRow.HideNext(true); |
| | | modelFL.AddChidren(modelRow); |
| | | |
| | | var sharedRow = new DeviceInfoRow(585); |
| | | sharedRow.Init(); |
| | | sharedRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.Share)} : "); |
| | | sharedRow.SetTitle("2人"); |
| | | infoFL.AddChidren(sharedRow); |
| | | if (device.CommonDevice.Type==DeviceType.OnOffOutput || device.CommonDevice.Type==DeviceType.AirSwitch) |
| | | { |
| | | var typeFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(127 + 12) |
| | | }; |
| | | infoScrolView.AddChidren(typeFL); |
| | | functionTypeRow = new DeviceInfoRow(12); |
| | | functionTypeRow.Init(); |
| | | functionTypeRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.FunctionType)} : "); |
| | | //functionTypeRow.SetTitle(device.CommonDevice.DfunctionType); |
| | | typeFL.AddChidren(functionTypeRow); |
| | | var dfunctionType = device.CommonDevice.DfunctionType; |
| | | |
| | | //功能类型的翻译名字 |
| | | string strT = string.Empty; |
| | | if (dfunctionType == DeviceFunctionType.A灯光) |
| | | { |
| | | strT = Language.StringByID(R.MyInternationalizationString.uLight); |
| | | } |
| | | else if (dfunctionType == DeviceFunctionType.A开关) |
| | | { |
| | | strT = Language.StringByID(R.MyInternationalizationString.uSwitch); |
| | | } |
| | | else if (dfunctionType == DeviceFunctionType.A插座) |
| | | { |
| | | strT = Language.StringByID(R.MyInternationalizationString.uSocket1); |
| | | } |
| | | functionTypeRow.SetTitle(strT); |
| | | |
| | | functionTypeRow.ClickBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var DfunctionType = device.CommonDevice.DfunctionType; |
| | | |
| | | //功能类型的翻译名字 |
| | | int nowSelectNo = 1; |
| | | string strType = string.Empty; |
| | | if (DfunctionType == DeviceFunctionType.A灯光) |
| | | { |
| | | strType = Language.StringByID(R.MyInternationalizationString.uLight); |
| | | nowSelectNo = 1; |
| | | } |
| | | else if (DfunctionType == DeviceFunctionType.A开关) |
| | | { |
| | | strType = Language.StringByID(R.MyInternationalizationString.uSwitch); |
| | | nowSelectNo = 0; |
| | | } |
| | | else if (DfunctionType == DeviceFunctionType.A插座) |
| | | { |
| | | strType = Language.StringByID(R.MyInternationalizationString.uSocket1); |
| | | nowSelectNo = 2; |
| | | } |
| | | //显示列表 |
| | | var listText = new List<string>(); |
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//开关 |
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//灯光 |
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//插座 |
| | | //标题:选择功能类型 |
| | | var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType); |
| | | |
| | | var form = new BottomItemSelectForm(); |
| | | form.AddForm(title, listText, nowSelectNo); |
| | | form.FinishSelectEvent += (selectNo) => |
| | | { |
| | | functionTypeRow.NameText.Text = listText[selectNo]; |
| | | nowSelectNo = selectNo; |
| | | //记录起当前选择的功能类型 |
| | | if (selectNo == 0) |
| | | { |
| | | device.CommonDevice.DfunctionType = DeviceFunctionType.A开关; |
| | | } |
| | | else if (selectNo == 1) |
| | | { |
| | | device.CommonDevice.DfunctionType = DeviceFunctionType.A灯光; |
| | | } |
| | | else |
| | | { |
| | | device.CommonDevice.DfunctionType = DeviceFunctionType.A插座; |
| | | } |
| | | }; |
| | | }; |
| | | } |
| | | |
| | | |
| | | var confirmBtn = new CommonForm.CompleteButton(962, 907, 127); |
| | | confirmBtn.SetTitle(R.MyInternationalizationString.Confrim); |
| | | var confirmBtn = new CommonForm.CompleteButton(962, 900, 127); |
| | | confirmBtn.SetTitle(R.MyInternationalizationString.Save); |
| | | infoFL.AddChidren(confirmBtn); |
| | | |
| | | #region event |
| | | EventHandler<MouseEventArgs> selectZoneEvent = (sender, e) => |
| | | { |
| | | //UserCenter.SelectRoomForm selectedRoom = new UserCenter.SelectRoomForm(); |
| | | //selectedRoom.AddForm(selectedRoom, roomNameList); |
| | | //selectedRoom.ActionSelectRoom += ((rList) => |
| | | //{ |
| | | // roomNameList = rList; |
| | | // zone.Text = Shared.Common.Room.CurrentRoom.GetRoomName(roomNameList); |
| | | //}); |
| | | var zone = new SelectZone(); |
| | | zone.Init(); |
| | | zone.ZoneAction += (selectRoom) => |
| | | { |
| | | curRoom = selectRoom; |
| | | zoneRow.SetTitle(selectRoom.GetZoneName()); |
| | | }; |
| | | }; |
| | | //zoneRight.MouseUpEventHandler += selectZoneEvent; |
| | | //zoneFL.MouseUpEventHandler += selectZoneEvent; |
| | | //zone.MouseUpEventHandler += selectZoneEvent; |
| | | zoneRow.ClickBtn.MouseUpEventHandler += selectZoneEvent; |
| | | |
| | | EventHandler<MouseEventArgs> selectDeviceIconEvent = (sender, e) => |
| | | { |
| | |
| | | { |
| | | deviceIMG.UnSelectedImagePath = unSelectedImagePath; |
| | | deviceIMG.SelectedImagePath = selectedImagePath; |
| | | device.CommonDevice.IsCustomizeImage = true; |
| | | }; |
| | | }; |
| | | deviceIMG.MouseUpEventHandler += selectDeviceIconEvent; |
| | | |
| | | confirmBtn.MouseUpEventHandler += async (sender, e) => |
| | | confirmBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | //if (device.CommonDevice == null) |
| | | //{ |
| | | // CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); |
| | | // return; |
| | | //} |
| | | //var result = await Shared.Common.LocalDevice.Current.ReName(device.CommonDevice, deviceName.Text.Trim()); |
| | | //if (result) |
| | | //{ |
| | | // var alertSuccess = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.Success), Language.StringByID(R.MyInternationalizationString.Confrim)); |
| | | // alertSuccess.Show(); |
| | | // alertSuccess.ResultEventHandler += (senderSuccess, eSuccess) => |
| | | // { |
| | | // //改图片 |
| | | // device.IconPath = deviceIMG.UnSelectedImagePath; |
| | | // device.IsCustomizeImage = true; |
| | | // device.ReSave(); |
| | | // //改房间 |
| | | // Shared.Common.Room.CurrentRoom.ChangedRoom(device.CommonDevice, roomNameList); |
| | | // RemoveFromParent(); |
| | | // }; |
| | | //} |
| | | //else |
| | | //{ |
| | | // return; |
| | | // //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); |
| | | //} |
| | | try |
| | | { |
| | | CommonPage.Loading.Start(); |
| | | if (device.CommonDevice == null) |
| | | { |
| | | CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain)); |
| | | return; |
| | | } |
| | | if (device.CommonDevice.Type == DeviceType.OnOffOutput || device.CommonDevice.Type == DeviceType.AirSwitch) |
| | | { |
| | | if (device.IsCustomizeImage == false) |
| | | { |
| | | if (device.CommonDevice.DfunctionType == DeviceFunctionType.A开关) |
| | | { |
| | | device.CommonDevice.IconPath = "Device/Switch.png"; |
| | | } |
| | | else if (device.CommonDevice.DfunctionType == DeviceFunctionType.A插座) |
| | | { |
| | | device.CommonDevice.IconPath = "Device/Socket1.png"; |
| | | } |
| | | else if (device.CommonDevice.DfunctionType == DeviceFunctionType.A灯光) |
| | | { |
| | | device.CommonDevice.IconPath = "Device/Light.png"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //改图片 |
| | | device.CommonDevice.IconPath = deviceIMG.UnSelectedImagePath; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //改图片 |
| | | device.CommonDevice.IconPath = deviceIMG.UnSelectedImagePath; |
| | | } |
| | | bool result; |
| | | new System.Threading.Thread(async () => |
| | | { |
| | | result = await LocalDevice.Current.ReName(device.CommonDevice, nameRow.NameText.Text.Trim()); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | CommonPage.Loading.Hide(); |
| | | if (result) |
| | | { |
| | | //改房间 |
| | | Shared.Common.Room.CurrentRoom.ChangedRoom(device.CommonDevice, curRoom.Id); |
| | | device.CommonDevice.ReSave(); |
| | | EditAction?.Invoke(device, curRoom); |
| | | RemoveFromParent(); |
| | | } |
| | | else |
| | | { |
| | | CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain)); |
| | | } |
| | | }); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | catch |
| | | { |
| | | CommonPage.Loading.Hide(); |
| | | } |
| | | }; |
| | | |
| | | #endregion |
| | |
| | | /// <param name="device"></param> |
| | | public void Init(DeviceUI device) |
| | | { |
| | | roomNameList = new List<string> { }; |
| | | //roomNameList = Common.Room.CurrentRoom.GetRoomListNameByDevice(device.CommonDevice); |
| | | roomName = device.GetZone(); |
| | | befRoom = Common.Room.CurrentRoom.GetRoomByDevice(device.CommonDevice); |
| | | curRoom = Common.Room.CurrentRoom.GetRoomByDevice(device.CommonDevice); |
| | | } |
| | | #endregion |
| | | } |