using System; using System.Collections.Generic; using Shared.Common; namespace Shared.Phone.Device.CommonForm { public class SelectZone : FrameLayout { public Action ZoneAction; private UIPickerView pickView; private List floorList = new List { }; private List roomList = new List { }; private List roomIdList = new List { }; /// /// curRoom /// private Common.Room curRoom; public SelectZone() { } /// /// Init /// public void Init() { List floorIds = new List { }; List floorNames = new List { }; List> roomNames = new List> { }; List> rooms = new List> { }; List rs = new List { }; List rNames = new List { }; 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]; ZoneAction?.Invoke(curRoom); RemoveFromParent(); }, 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]; ZoneAction?.Invoke(curRoom); RemoveFromParent(); }, 0, Language.StringByID(R.MyInternationalizationString.BelongFloor), Language.StringByID(R.MyInternationalizationString.Confrim), Language.StringByID(R.MyInternationalizationString.Cancel)); } foreach (var floor in Config.Instance.Home.FloorDics) { floorList.Add(floor.Value); } foreach (var room in Shared.Common.Room.Lists) { if(room.IsLove) { continue; } roomList.Add(room.Name); roomIdList.Add(room.Id); } } /// /// Close /// /// /// private void Close(object sender, MouseEventArgs mouseEventArgs) { RemoveFromParent(); } /// /// Confrim_MouseEvent /// /// /// private void Confrim_MouseEvent(object sender, MouseEventArgs mouseEventArgs) { ZoneAction?.Invoke(curRoom); RemoveFromParent(); } } }