示例#1
0
        public static bool HasSnapshot(LifeEventManager.LifeEvent e)
        {
            if (!e.HasSnapshot)
            {
                return(false);
            }

            UIImage image = UIManager.LoadUIImage(e.Snapshot);

            return(image != null);
        }
示例#2
0
 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);
     }
 }
示例#3
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);
            }