[folks] Extend IndividualAggregator to support linking via local_ids



commit a4370216d553c4af22df96139369877ad4d67378
Author: Raul Gutierrez Segales <raul gutierrez segales collabora co uk>
Date:   Thu Apr 7 17:36:11 2011 +0100

    Extend IndividualAggregator to support linking via local_ids

 folks/individual-aggregator.vala |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/folks/individual-aggregator.vala b/folks/individual-aggregator.vala
index 16f653f..39bafe5 100644
--- a/folks/individual-aggregator.vala
+++ b/folks/individual-aggregator.vala
@@ -912,6 +912,9 @@ public class Folks.IndividualAggregator : Object
       var web_service_addrs_set =
           new HashMap<string, LinkedHashSet<string>> (str_hash, str_equal);
 
+      /* List of local_ids */
+      var local_ids = new Gee.HashSet<string> ();
+
       foreach (var persona in personas)
         {
           if (persona is ImDetails)
@@ -952,6 +955,14 @@ public class Folks.IndividualAggregator : Object
                   address_set.add_all (addresses);
                 }
             }
+
+          if (persona is LocalIdDetails)
+            {
+              foreach (var id in ((LocalIdDetails) persona).local_ids)
+                {
+                  local_ids.add (id);
+                }
+            }
         }
 
       var details = new HashTable<string, Value?> (str_hash, str_equal);
@@ -973,6 +984,15 @@ public class Folks.IndividualAggregator : Object
               web_service_addresses_value);
         }
 
+      if (local_ids.size > 0)
+        {
+          var local_ids_value = Value (typeof (Gee.HashSet<string>));
+          local_ids_value.set_object (local_ids);
+          details.insert (
+              Folks.PersonaStore.detail_key (PersonaDetail.LOCAL_IDS),
+              local_ids_value);
+        }
+
       yield this.add_persona_from_details (null,
           this._writeable_store, details);
     }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]