// returns: A dictionary mapping localized service types to an array of all services of that type. public static Dictionary <string, List <HMService> > GetServiceTable(this HMHome self) { var serviceDictionary = new Dictionary <string, List <HMService> > (); foreach (var service in self.GetAllServices()) { if (!service.IsControllType()) { continue; } var serviceType = service.LocalizedDescription; List <HMService> list; if (serviceDictionary.TryGetValue(serviceType, out list)) { list.Add(service); } else { serviceDictionary [serviceType] = new List <HMService> { service } }; } foreach (var list in serviceDictionary.Values) { list.Sort((x, y) => x.Name.CompareTo(y.Name)); } return(serviceDictionary); }
public void DidRemoveAccessory(HMHome home, HMAccessory accessory) { if (accessory == Service.Accessory) { NavigationController.PopToRootViewController(true); } }
// returns: A list of services that exist in the home and have not yet been added to this service group. public static IEnumerable <HMService> ServicesNotAlreadyInServiceGroup(this HMHome self, HMServiceGroup serviceGroup) { var servicesInGroup = new HashSet <HMService> (serviceGroup.Services); Func <HMService, bool> filter = s => !servicesInGroup.Contains(s) && s.ServiceType != HMServiceType.AccessoryInformation; return(self.GetAllServices().Where(filter)); }
public void DidRemoveTrigger(HMHome home, HMTrigger trigger) { if (Trigger == trigger) { DismissViewController(true, null); } }
public void DidRemoveActionSet(HMHome home, HMActionSet actionSet) { if (actionSet == ActionSet) { DismissViewController(true, null); } }
public void ResetWithHome(HMHome home) { Accessories.Clear(); Accessories.AddRange(home.Accessories); Accessories.SortByLocalizedName(a => a.Name); Rooms.Clear(); Rooms.AddRange(home.GetAllRooms()); Rooms.SortByLocalizedName(r => r.Name); Zones.Clear(); Zones.AddRange(home.Zones); Zones.SortByLocalizedName(z => z.Name); ActionSets.Clear(); ActionSets.AddRange(home.ActionSets); ActionSets.SortByTypeAndLocalizedName(); Triggers.Clear(); Triggers.AddRange(home.Triggers); Triggers.SortByLocalizedName(t => t.Name); ServiceGroups.Clear(); ServiceGroups.AddRange(home.ServiceGroups); ServiceGroups.SortByLocalizedName(sg => sg.Name); }
public void DidRemoveZone(HMHome home, HMZone zone) { if (zone == HomeZone) { DismissViewController(true, null); } }
public void DidUpdateTrigger(HMHome home, HMTrigger trigger) { if (Trigger == trigger) { TableView.ReloadData(); } }
public void DidUpdateNameForRoom(HMHome home, HMRoom room) { if (room == Room) { NavigationItem.Title = room.Name; } }
public void DidRemoveService(HMHome home, HMService service, HMServiceGroup group) { if (ServiceGroup == group) { ReloadData(); } }
public void DidRemoveRoom(HMHome home, HMRoom room) { if (room == Room) { NavigationController.PopViewController(true); } }
public void DidRemoveServiceGroup(HMHome home, HMServiceGroup group) { if (ServiceGroup == group) { DismissViewController(true, null); } }
public void DidAddRoomToZone(HMHome home, HMRoom room, HMZone zone) { if (zone == HomeZone) { DidAddRoom(room); } }
public void DidRemoveRoomFromZone(HMHome home, HMRoom room, HMZone zone) { if (zone == HomeZone) { DidRemoveRoom(room); } }
public void DidRemoveZone(HMHome home, HMZone zone) { if (zone == HomeZone) { NavigationController.PopViewController(true); } }
public void DidUpdateNameForZone(HMHome home, HMZone zone) { if (zone == HomeZone) { Title = zone.Name; } }
// Removes a home from the List and updates the view. protected override void DidRemoveHome(HMHome home) { var index = Homes.IndexOf(home); if (index < 0) { return; } var indexPath = NSIndexPath.FromRowSection(index, (int)HomeListSection.Homes); Homes.RemoveAt(index); var primaryIndexPath = NSIndexPath.FromRowSection(index, (int)HomeListSection.PrimaryHome); // If there aren't any homes, we still want one cell to display 'No Homes'. // Just reload. TableView.BeginUpdates(); if (Homes.Count == 0) { TableView.ReloadRows(new [] { primaryIndexPath }, UITableViewRowAnimation.Fade); } else { TableView.DeleteRows(new [] { primaryIndexPath }, UITableViewRowAnimation.Automatic); } TableView.DeleteRows(new [] { indexPath }, UITableViewRowAnimation.Automatic); TableView.EndUpdates(); }
protected override void DidAddHome(HMHome home) { Homes.Add(home); SortHomes(); var newHomeIndex = Homes.IndexOf(home); if (newHomeIndex < 0) { return; } var indexPath = NSIndexPath.FromRowSection(newHomeIndex, (int)HomeListSection.Homes); var primaryIndexPath = NSIndexPath.FromRowSection(newHomeIndex, (int)HomeListSection.PrimaryHome); TableView.BeginUpdates(); if (Homes.Count == 1) { TableView.ReloadRows(new [] { primaryIndexPath }, UITableViewRowAnimation.Fade); } else { TableView.InsertRows(new [] { primaryIndexPath }, UITableViewRowAnimation.Automatic); } TableView.InsertRows(new [] { indexPath }, UITableViewRowAnimation.Automatic); TableView.EndUpdates(); }
public void DidRemoveServiceGroup(HMHome home, HMServiceGroup group) { if (group == ServiceGroup) { NavigationController.PopViewController(true); } }
public void DidAddAccessory(HMHome home, HMAccessory accessory) { if (accessory.Room == room) { accessory.Delegate = this; DidAssignAccessory(accessory); } }
// returns: All accessories which are 'control accessories'. public static IEnumerable <HMAccessory> SortedControlAccessories(this HMHome self) { Func <HMAccessory, bool> predicate = accessory => accessory.Services.Any(s => s.IsControllType()); var filteredAccessories = self.Accessories.Where(predicate).ToArray(); filteredAccessories.SortByLocalizedName(a => a.Name); return(filteredAccessories); }
int CompareHomes(HMHome x, HMHome y) { if (x.IsAdmin() == y.IsAdmin()) { return(x.Name.CompareTo(y.Name)); } return(x.IsAdmin() ? 1 : 0); }
// returns: All rooms in the home, including `roomForEntireHome`. public static HMRoom[] GetAllRooms(this HMHome self) { var rooms = self.Rooms; var allRooms = new HMRoom[rooms.Length + 1]; Array.Copy(rooms, allRooms, rooms.Length); allRooms [rooms.Length] = self.GetRoomForEntireHome(); return(allRooms); }
public void DidRemoveAccessory(HMHome home, HMAccessory accessory) { if (home.Accessories.Length == 0) { NavigationController.DismissViewController(true, null); } ReloadTable(); }
public void DidRemoveRoom(HMHome home, HMRoom room) { // Reset the selected room if ours was deleted. if (selectedRoom == room) { selectedRoom = HomeStore.Home.GetRoomForEntireHome(); } TableView.ReloadData(); }
protected virtual void HomeDidUpdateName(HMHome home) { var homeIndex = Homes.IndexOf(home); if (homeIndex >= 0) { var indexPath = NSIndexPath.FromRowSection(homeIndex, 0); TableView.ReloadRows(new [] { indexPath }, UITableViewRowAnimation.Automatic); } }
// returns: A list of rooms that exist in the home and have not yet been added to this zone. public static IEnumerable <HMRoom> RoomsNotAlreadyInZone(this HMHome home, HMZone zone, IEnumerable <HMRoom> includingRooms = null) { var rooms = home.Rooms.Where(room => !zone.Rooms.Contains(room)); if (includingRooms != null) { rooms = rooms.Concat(includingRooms); } return(rooms); }
public void DidAddAccessory(HMHome home, HMAccessory accessory) { // Bridged accessories don't call the original completion handler if their // bridges are added to the home. We must respond to `HMHomeDelegate`'s // `home:didAddAccessory:` and assign bridged accessories properly. if (selectedRoom != null) { AssignAccessory(home, accessory, selectedRoom); } }
protected virtual void DidAddHome(HMHome home) { Homes.Add(home); SortHomes(); var newHomeIndex = Homes.IndexOf(home); var indexPathOfNewHome = NSIndexPath.FromRowSection(newHomeIndex, 0); TableView.InsertRows(new [] { indexPathOfNewHome }, UITableViewRowAnimation.Automatic); }
public void DidUpdateRoom(HMHome home, HMRoom room, HMAccessory accessory) { if (room == Room) { DidAssignAccessory(accessory); } else if (Accessories.Contains(accessory)) { DidUnassignAccessory(accessory); } }
public TimerTriggerCreator (HMTrigger trigger, HMHome home) : base (trigger, home) { SelectedRecurrenceIndex = -1; RawFireDate = new NSDate (); var timerTrigger = TimerTrigger; if (timerTrigger != null) { RawFireDate = timerTrigger.FireDate; SelectedRecurrenceIndex = RecurrenceIndexFromDateComponents (timerTrigger.Recurrence); } }
public LocationTriggerCreator (HMTrigger trigger, HMHome home) : base (trigger, home) { var eventTrigger = EventTrigger; if (eventTrigger != null) { LocationEvent = eventTrigger.LocationEvent (); if (LocationEvent != null) { TargetRegion = LocationEvent.Region as CLCircularRegion; TargetRegionStateIndex = TargetRegion.NotifyOnEntry ? 0 : 1; } } }
public void DidRemoveHome(HMHomeManager manager, HMHome home) { DidRemoveHome (home); var selectedHome = HomeStore.Home; if (selectedHome != null && selectedHome == home) { HomeStore.Home = null; // Close all modal and detail views. DismissViewController(true, null); if (NavigationController != null) NavigationController.PopToRootViewController (true); } }
public void DidRemoveZone (HMHome home, HMZone zone) { if (zone == HomeZone) NavigationController.PopViewController (true); }
public void DidRemoveAccessory (HMHome home, HMAccessory accessory) { ReloadData (); }
protected virtual void DidRemoveHome(HMHome home) { var removedHomeIndex = Homes.IndexOf (home); if (removedHomeIndex < 0) return; Homes.RemoveAt (removedHomeIndex); var indexPath = NSIndexPath.FromRowSection (removedHomeIndex, 0); TableView.DeleteRows (new []{ indexPath }, UITableViewRowAnimation.Automatic); }
// Initializes a trigger creator from an existing trigger (if it exists), and the current home. public TriggerCreator (HMTrigger trigger, HMHome home) { Home = home; Trigger = trigger; }
public void DidUpdateRoom (HMHome home, HMRoom room, HMAccessory accessory) { if (room == Room) DidAssignAccessory (accessory); else if (Accessories.Contains (accessory)) DidUnassignAccessory (accessory); }
public void DidAddRoomToZone (HMHome home, HMRoom room, HMZone zone) { if (zone == HomeZone) DidAddRoom (room); }
public void DidAddRoom (HMHome home, HMRoom room) { ReloadAddIndexPath (); }
public void DidRemoveAccessory (HMHome home, HMAccessory accessory) { DidUnassignAccessory (accessory); }
public void DidUpdateTrigger (HMHome home, HMTrigger trigger) { if (Trigger == trigger) TableView.ReloadData (); }
public void DidRemoveTrigger (HMHome home, HMTrigger trigger) { if (Trigger == trigger) DismissViewController (true, null); }
public void DidAddHome(HMHomeManager manager, HMHome home) { home.Delegate = this; DidAddHome (home); }
int CompareHomes(HMHome x, HMHome y) { if (x.IsAdmin () == y.IsAdmin ()) return x.Name.CompareTo (y.Name); return x.IsAdmin () ? 1 : 0; }
protected virtual void HomeDidUpdateName(HMHome home) { var homeIndex = Homes.IndexOf (home); if (homeIndex >= 0) { var indexPath = NSIndexPath.FromRowSection (homeIndex, 0); TableView.ReloadRows (new []{ indexPath }, UITableViewRowAnimation.Automatic); } }
public void DidUpdateNameForZone (HMHome home, HMZone zone) { if (zone == HomeZone) Title = zone.Name; }
protected static string SharedTextForHome(HMHome home) { return home.IsAdmin () ? "My Home" : "Shared with me"; }
public void DidUpdateNameForRoom (HMHome home, HMRoom room) { DidUpdateRoom (room); }
public void DidAddAccessory (HMHome home, HMAccessory accessory) { TableView.ReloadData (); }
public void DidRemoveRoom (HMHome home, HMRoom room) { DidRemoveRoom (room); }
public void ResetWithHome (HMHome home) { Accessories.Clear (); Accessories.AddRange (home.Accessories); Accessories.SortByLocalizedName (a => a.Name); Rooms.Clear (); Rooms.AddRange (home.GetAllRooms()); Rooms.SortByLocalizedName (r => r.Name); Zones.Clear (); Zones.AddRange (home.Zones); Zones.SortByLocalizedName(z => z.Name); ActionSets.Clear (); ActionSets.AddRange (home.ActionSets); ActionSets.SortByTypeAndLocalizedName (); Triggers.Clear (); Triggers.AddRange (home.Triggers); Triggers.SortByLocalizedName (t => t.Name); ServiceGroups.Clear (); ServiceGroups.AddRange (home.ServiceGroups); ServiceGroups.SortByLocalizedName (sg => sg.Name); }
public void DidRemoveRoomFromZone (HMHome home, HMRoom room, HMZone zone) { if (zone == HomeZone) DidRemoveRoom (room); }
public void DidRemoveServiceGroup (HMHome home, HMServiceGroup group) { if (group == ServiceGroup) NavigationController.PopViewController (true); }
public void DidRemoveRoom (HMHome home, HMRoom room) { if (room == Room) NavigationController.PopViewController (true); }
public void DidRemoveService (HMHome home, HMService service, HMServiceGroup group) { if (ServiceGroup == group) ReloadData (); }
public void DidRemoveAccessory (HMHome home, HMAccessory accessory) { if (ShouldPopViewController ()) DismissViewController (true, null); else TableView.ReloadData (); }
protected virtual void DidAddHome(HMHome home) { Homes.Add (home); SortHomes (); var newHomeIndex = Homes.IndexOf (home); var indexPathOfNewHome = NSIndexPath.FromRowSection (newHomeIndex, 0); TableView.InsertRows (new []{ indexPathOfNewHome }, UITableViewRowAnimation.Automatic); }
public void DidRemoveActionSet (HMHome home, HMActionSet actionSet) { if (actionSet == ActionSet) DismissViewController (true, null); }
public void DidUpdateNameForRoom (HMHome home, HMRoom room) { if (room == Room) NavigationItem.Title = room.Name; }