| | |
| | | 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; |
| | | /// <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 |
| | | |
| | |
| | | Height = Application.GetMinRealAverage(207), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Radius=(uint)Application.GetMinRealAverage(207) |
| | | Radius = (uint)Application.GetMinRealAverage(207) |
| | | }; |
| | | bodyFrameLayout.AddChidren(deviceBG); |
| | | |
| | |
| | | var zoneRow = new DeviceInfoRow(308); |
| | | zoneRow.Init(); |
| | | zoneRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongZone)} : "); |
| | | //zoneRow.SetTitle(Common.Room.CurrentRoom.GetRoomName(roomNameList)); |
| | | zoneRow.SetTitle(roomName); |
| | | infoFL.AddChidren(zoneRow); |
| | | |
| | | var modelRow = new DeviceInfoRow(446); |
| | | modelRow.Init(); |
| | | modelRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongModel)} : "); |
| | | modelRow.SetTitle(string.IsNullOrEmpty(device.CommonDevice.DeviceName) ? Language.StringByID(R.MyInternationalizationString.UNKnown) : device.CommonDevice.DeviceName); |
| | | modelRow.HideNext(true); |
| | | infoFL.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==ZigBee.Device.DeviceType.OnOffOutput) |
| | | { |
| | | functionTypeRow = new DeviceInfoRow(585); |
| | | functionTypeRow.Init(); |
| | | functionTypeRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.FunctionType)} : "); |
| | | //functionTypeRow.SetTitle(device.CommonDevice.DfunctionType); |
| | | infoFL.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 BottomDialogSelectForm(); |
| | | 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插座; |
| | | } |
| | | }; |
| | | }; |
| | | |
| | | sharedRow = new DeviceInfoRow(723); |
| | | sharedRow.Init(); |
| | | sharedRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.Share)} : "); |
| | | sharedRow.SetTitle("2人"); |
| | | infoFL.AddChidren(sharedRow); |
| | | } |
| | | else |
| | | { |
| | | sharedRow = new DeviceInfoRow(585); |
| | | sharedRow.Init(); |
| | | sharedRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.Share)} : "); |
| | | sharedRow.SetTitle("2人"); |
| | | infoFL.AddChidren(sharedRow); |
| | | } |
| | | |
| | | var confirmBtn = new CommonForm.CompleteButton(962, 907, 127); |
| | | confirmBtn.SetTitle(R.MyInternationalizationString.Confrim); |
| | |
| | | #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); |
| | | //}); |
| | | 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) |
| | | { |
| | | 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)); |
| | | } |
| | | } |
| | | 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.BelongFloor), |
| | | 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.BelongFloor), |
| | | Language.StringByID(R.MyInternationalizationString.Confrim), |
| | | Language.StringByID(R.MyInternationalizationString.Cancel)); |
| | | } |
| | | }; |
| | | //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) |
| | | { |
| | | CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); |
| | | return; |
| | | } |
| | | if (device.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput) |
| | | { |
| | | 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) |
| | | { |
| | | 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) => |
| | | { |
| | | //改房间 |
| | | Shared.Common.Room.CurrentRoom.ChangedRoom(device.CommonDevice, curRoom.Id); |
| | | device.CommonDevice.ReSave(); |
| | | RemoveFromParent(); |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | CommonPage.Instance.ShowErrorInfoAlert(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 |
| | | } |