[folks] Only add non-empty Role or PostalAddress fields in Tracker backend



commit 3f78e4a1c5b6cb9084608fa3a28264341d4274c7
Author: Travis Reitter <travis reitter collabora co uk>
Date:   Thu Jan 26 16:27:03 2012 -0800

    Only add non-empty Role or PostalAddress fields in Tracker backend
    
    This prevents some newly-exposed test failures.

 backends/tracker/lib/trf-persona-store.vala |    7 ++++-
 backends/tracker/lib/trf-persona.vala       |   31 +++++++++++++++++---------
 2 files changed, 25 insertions(+), 13 deletions(-)
---
diff --git a/backends/tracker/lib/trf-persona-store.vala b/backends/tracker/lib/trf-persona-store.vala
index a326ef8..f685806 100644
--- a/backends/tracker/lib/trf-persona-store.vala
+++ b/backends/tracker/lib/trf-persona-store.vala
@@ -1795,8 +1795,11 @@ public class Trf.PersonaStore : Folks.PersonaStore
               var postal_address = new Folks.PostalAddress (
                   po_box, extension, street, locality, region, postal_code,
                   country, null, affl_info.affl_tracker_id);
-              affl_info.postal_address_fd =
-                  new Folks.PostalAddressFieldDetails (postal_address);
+              if (!postal_address.is_empty ())
+                {
+                  affl_info.postal_address_fd =
+                      new Folks.PostalAddressFieldDetails (postal_address);
+                }
 
               affl_info.email = cursor.get_string
                   (Trf.AfflInfoFields.AFFL_EMAIL).dup ();
diff --git a/backends/tracker/lib/trf-persona.vala b/backends/tracker/lib/trf-persona.vala
index 0eff1f5..e9cbfc4 100644
--- a/backends/tracker/lib/trf-persona.vala
+++ b/backends/tracker/lib/trf-persona.vala
@@ -834,10 +834,13 @@ public class Trf.Persona : Folks.Persona,
               a_info[Trf.PostalAddressFields.COUNTRY],
               null,
               null);
-          var pafd = new PostalAddressFieldDetails (pa);
-          pafd.id = a_info[Trf.PostalAddressFields.TRACKER_ID];
+          if (!pa.is_empty ())
+            {
+              var pafd = new PostalAddressFieldDetails (pa);
+              pafd.id = a_info[Trf.PostalAddressFields.TRACKER_ID];
 
-          postal_addresses.add (pafd);
+              postal_addresses.add (pafd);
+            }
         }
 
       this._postal_addresses = postal_addresses;
@@ -996,9 +999,12 @@ public class Trf.Persona : Folks.Persona,
 
           var new_role = new Role (title, organisation, null);
           new_role.role = role;
-          var role_fd = new RoleFieldDetails (new_role);
-          role_fd.id = tracker_id;
-          role_fds.add (role_fd);
+          if (!new_role.is_empty ())
+            {
+              var role_fd = new RoleFieldDetails (new_role);
+              role_fd.id = tracker_id;
+              role_fds.add (role_fd);
+            }
         }
 
       this._roles = role_fds;
@@ -1011,12 +1017,15 @@ public class Trf.Persona : Folks.Persona,
     {
       var new_role = new Role (title, org, null);
       new_role.role = role;
-      var role_fd = new RoleFieldDetails (new_role);
-      role_fd.id = tracker_id;
-      if (this._roles.add (role_fd))
+      if (!new_role.is_empty ())
         {
-          this.notify_property ("roles");
-          return true;
+          var role_fd = new RoleFieldDetails (new_role);
+          role_fd.id = tracker_id;
+          if (this._roles.add (role_fd))
+            {
+              this.notify_property ("roles");
+              return true;
+            }
         }
       return false;
     }



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