public static bool HasSnapshot(LifeEventManager.LifeEvent e) { if (!e.HasSnapshot) { return(false); } UIImage image = UIManager.LoadUIImage(e.Snapshot); return(image != null); }
public static int OnSort(LifeEventManager.LifeEvent left, LifeEventManager.LifeEvent right) { try { return(left.Timestamp.CompareTo(right.Timestamp)); } catch (Exception e) { Common.Exception("OnSort", e); return(0); } }
public override bool Perform(LifeEventManager manager) { Dictionary <string, List <LifeEventManager.LifeEvent> > lookup = new Dictionary <string, List <LifeEventManager.LifeEvent> >(); foreach (LifeEventManager.LifeEvent e in manager.GetVisibleLifeEvents()) { string name = null; try { name = e.GetLocalizedName(manager.mOwnerDescription); } catch (Exception exception) { Common.Exception(manager.mOwnerDescription, exception); } if (string.IsNullOrEmpty(name)) { continue; } List <LifeEventManager.LifeEvent> list; if (!lookup.TryGetValue(name, out list)) { list = new List <LifeEventManager.LifeEvent>(); lookup.Add(name, list); } list.Add(e); } foreach (List <LifeEventManager.LifeEvent> list in lookup.Values) { list.Sort(OnSort); LifeEventManager.LifeEvent source = null; foreach (LifeEventManager.LifeEvent e in list) { if ((source == null) || (HasSnapshot(e))) { source = e; } else if (source.Subject == e.Subject) { e.Forget(manager.mOwnerDescription); } } } return(true); }