[folks] Remove AliasDetails support from Trf.Persona
- From: Travis Reitter <treitter src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [folks] Remove AliasDetails support from Trf.Persona
- Date: Tue, 19 Jul 2011 16:52:36 +0000 (UTC)
commit 4c027da00b91723c04ce0195dbcdcf334483b02b
Author: Philip Withnall <philip withnall collabora co uk>
Date: Sat Jun 25 10:13:01 2011 +0100
Remove AliasDetails support from Trf.Persona
The persona's alias was being stored as its nickname. Since we want to make
nicknames writeable (bgo#652048) we have to store the nickname there
instead. There's no ontology for storing aliases, so AliasDetails support
has to be dropped.
Closes: bgo#652048 â Make Individual.nickname writeable
NEWS | 2 +
backends/tracker/lib/trf-persona-store.vala | 18 +++---
backends/tracker/lib/trf-persona.vala | 38 ++++---------
tests/tracker/Makefile.am | 8 +-
tests/tracker/add-persona.vala | 16 +++---
.../tracker/{set-alias.vala => set-nickname.vala} | 62 +++++++++-----------
6 files changed, 62 insertions(+), 82 deletions(-)
---
diff --git a/NEWS b/NEWS
index 23c9eea..78c3bfe 100644
--- a/NEWS
+++ b/NEWS
@@ -16,11 +16,13 @@ Bugs fixed:
* Bug 653746 â mismatch between hash and equals in Note
* Bug 638281 â Add an EDS backend
* Bug 654509 â Folks master not building
+* Bug 652048 â Make nickname writable
API changes:
* Swf.Persona retains and exposes its libsocialweb Contact
* Add a PresenceDetails.presence_status property
* Make NameDetails.nickname settable
+* Drop AliasDetails support from Trf.Persona
Overview of changes from libfolks 0.5.1 to libfolks 0.5.2
=========================================================
diff --git a/backends/tracker/lib/trf-persona-store.vala b/backends/tracker/lib/trf-persona-store.vala
index 8cc10f2..47b4c29 100644
--- a/backends/tracker/lib/trf-persona-store.vala
+++ b/backends/tracker/lib/trf-persona-store.vala
@@ -38,7 +38,7 @@ internal enum Trf.Fields
ADDITIONAL_NAMES,
PREFIXES,
SUFFIXES,
- ALIAS,
+ NICKNAME,
BIRTHDAY,
AVATAR_URL,
IM_ADDRESSES,
@@ -380,7 +380,7 @@ public class Trf.PersonaStore : Folks.PersonaStore
*
* Accepted keys for `details` are:
* - PersonaStore.detail_key (PersonaDetail.IM_ADDRESSES)
- * - PersonaStore.detail_key (PersonaDetail.ALIAS)
+ * - PersonaStore.detail_key (PersonaDetail.NICKNAME)
* - PersonaStore.detail_key (PersonaDetail.FULL_NAME)
* - PersonaStore.detail_key (PersonaDetail.IS_FAVOURITE)
* - PersonaStore.detail_key (PersonaDetail.STRUCTURED_NAME)
@@ -410,7 +410,7 @@ public class Trf.PersonaStore : Folks.PersonaStore
foreach (var k in details.get_keys ())
{
Value? v = details.lookup (k);
- if (k == Folks.PersonaStore.detail_key (PersonaDetail.ALIAS))
+ if (k == Folks.PersonaStore.detail_key (PersonaDetail.NICKNAME))
{
builder.subject ("_:p");
builder.predicate (Trf.OntologyDefs.NCO_NICKNAME);
@@ -1319,14 +1319,14 @@ public class Trf.PersonaStore : Folks.PersonaStore
else if (e.pred_id ==
this._prefix_tracker_id.get (Trf.OntologyDefs.NCO_NICKNAME))
{
- string alias = "";
+ string nickname = "";
if (adding)
{
- alias =
+ nickname =
yield this._get_property (
e.subject_id, Trf.OntologyDefs.NCO_NICKNAME);
}
- p._update_alias (alias);
+ p._update_nickname (nickname);
}
else if (e.pred_id ==
this._prefix_tracker_id.get (Trf.OntologyDefs.NCO_FAMILY))
@@ -1823,7 +1823,7 @@ public class Trf.PersonaStore : Folks.PersonaStore
return yield this._single_value_query (query.printf (tracker_id));
}
- internal async void _set_alias (Trf.Persona persona, string alias)
+ internal async void _set_nickname (Trf.Persona persona, string nickname)
{
const string query_t = "DELETE { "+
" ?p " + Trf.OntologyDefs.NCO_NICKNAME + " ?n " +
@@ -1841,10 +1841,10 @@ public class Trf.PersonaStore : Folks.PersonaStore
"FILTER (tracker:id(?p) = %s) " +
"} ";
- string query = query_t.printf (persona.tracker_id (), alias,
+ string query = query_t.printf (persona.tracker_id (), nickname,
persona.tracker_id ());
- yield this._tracker_update (query, "change_alias");
+ yield this._tracker_update (query, "change_nickname");
}
internal async void _set_local_ids (Trf.Persona persona,
diff --git a/backends/tracker/lib/trf-persona.vala b/backends/tracker/lib/trf-persona.vala
index 5db69c6..654c1e3 100644
--- a/backends/tracker/lib/trf-persona.vala
+++ b/backends/tracker/lib/trf-persona.vala
@@ -30,7 +30,6 @@ using Tracker.Sparql;
* A persona subclass which represents a single nco:Contact.
*/
public class Trf.Persona : Folks.Persona,
- AliasDetails,
AvatarDetails,
BirthdayDetails,
EmailDetails,
@@ -46,7 +45,7 @@ public class Trf.Persona : Folks.Persona,
UrlDetails,
WebServiceDetails
{
- private string _alias;
+ private string _nickname;
private bool _is_favourite;
private const string[] _linkable_properties =
{"im-addresses", "local-ids", "web-service-addresses"};
@@ -58,21 +57,21 @@ public class Trf.Persona : Folks.Persona,
private string _tracker_id;
/**
- * An alias for the Persona.
+ * A nickname for the Persona.
*
- * See { link Folks.AliasDetails.alias}.
+ * See { link Folks.NameDetails.nickname}.
*/
- public string alias
+ public string nickname
{
- get { return this._alias; }
+ get { return this._nickname; }
set
{
- if (this._alias == value)
+ if (this._nickname == value)
return;
- this._alias = value;
- this.notify_property ("alias");
- ((Trf.PersonaStore) this.store)._set_alias (this, value);
+ this._nickname = value;
+ this.notify_property ("nickname");
+ ((Trf.PersonaStore) this.store)._set_nickname (this, value);
}
}
@@ -149,12 +148,6 @@ public class Trf.Persona : Folks.Persona,
}
}
- private string _nickname;
- /**
- * { inheritDoc}
- */
- public string nickname { get { return this._nickname; } }
-
private Gender _gender;
/**
* { inheritDoc}
@@ -466,15 +459,6 @@ public class Trf.Persona : Folks.Persona,
}
}
- internal void _update_alias (string? alias)
- {
- if (alias != null && this._alias != alias)
- {
- this._alias = alias;
- this.notify_property ("alias");
- }
- }
-
internal void _update_family_name (string? family_name)
{
if (family_name != null)
@@ -771,8 +755,8 @@ public class Trf.Persona : Folks.Persona,
string fullname = this._cursor.get_string (Trf.Fields.FULL_NAME).dup ();
this._update_full_name (fullname);
- string alias = this._cursor.get_string (Trf.Fields.ALIAS).dup ();
- this._update_alias (alias);
+ string nickname = this._cursor.get_string (Trf.Fields.NICKNAME).dup ();
+ this._update_nickname (nickname);
string family_name = this._cursor.get_string (
Trf.Fields.FAMILY_NAME).dup ();
diff --git a/tests/tracker/Makefile.am b/tests/tracker/Makefile.am
index bb11fd0..c09a1a3 100644
--- a/tests/tracker/Makefile.am
+++ b/tests/tracker/Makefile.am
@@ -75,7 +75,7 @@ noinst_PROGRAMS = \
avatar-updates \
add-persona \
remove-persona \
- set-alias \
+ set-nickname \
set-favourite \
set-phones \
set-emails \
@@ -243,8 +243,8 @@ remove_persona_SOURCES = \
remove-persona.vala \
$(NULL)
-set_alias_SOURCES = \
- set-alias.vala \
+set_nickname_SOURCES = \
+ set-nickname.vala \
$(NULL)
set_favourite_SOURCES = \
@@ -387,7 +387,7 @@ MAINTAINERCLEANFILES = \
avatar_updates_vala.stamp \
add_persona_vala.stamp \
remove_persona_vala.stamp \
- set_alias_vala.stamp \
+ set_nickname_vala.stamp \
set_favourite_vala.stamp \
set_phones_vala.stamp \
set_emails_vala.stamp \
diff --git a/tests/tracker/add-persona.vala b/tests/tracker/add-persona.vala
index cd67287..3c6fb36 100644
--- a/tests/tracker/add-persona.vala
+++ b/tests/tracker/add-persona.vala
@@ -29,7 +29,7 @@ public class AddPersonaTests : Folks.TestCase
private TrackerTest.Backend _tracker_backend;
private IndividualAggregator _aggregator;
private string _persona_fullname;
- private string _persona_alias;
+ private string _persona_nickname;
private string _family_name;
private string _given_name;
private HashTable<string, bool> _properties_found;
@@ -80,7 +80,7 @@ public class AddPersonaTests : Folks.TestCase
{
this._main_loop = new GLib.MainLoop (null, false);
this._persona_fullname = "persona #1";
- this._persona_alias = "alias";
+ this._persona_nickname = "nickname";
this._family_name = "family";
this._given_name = "given";
this._persona_iid = "";
@@ -108,7 +108,7 @@ public class AddPersonaTests : Folks.TestCase
this._properties_found = new HashTable<string, bool>
(str_hash, str_equal);
this._properties_found.insert ("full_name", false);
- this._properties_found.insert ("alias", false);
+ this._properties_found.insert ("nickname", false);
this._properties_found.insert ("is_favourite", false);
this._properties_found.insert ("structured_name", false);
this._properties_found.insert ("avatar", false);
@@ -184,8 +184,8 @@ public class AddPersonaTests : Folks.TestCase
(owned) v1);
Value? v2 = Value (typeof (string));
- v2.set_string (this._persona_alias);
- details.insert (Folks.PersonaStore.detail_key (PersonaDetail.ALIAS),
+ v2.set_string (this._persona_nickname);
+ details.insert (Folks.PersonaStore.detail_key (PersonaDetail.NICKNAME),
(owned) v2);
Value? v3 = Value (typeof (bool));
@@ -331,7 +331,7 @@ public class AddPersonaTests : Folks.TestCase
}
i.notify["full-name"].connect (this._notify_cb);
- i.notify["alias"].connect (this._notify_cb);
+ i.notify["nickname"].connect (this._notify_cb);
i.notify["avatar"].connect (this._notify_cb);
i.notify["is-favourite"].connect (this._notify_cb);
i.notify["structured-name"].connect (this._notify_cb);
@@ -391,8 +391,8 @@ public class AddPersonaTests : Folks.TestCase
if (i.full_name == this._persona_fullname)
this._properties_found.replace ("full_name", true);
- if (i.alias == this._persona_alias)
- this._properties_found.replace ("alias", true);
+ if (i.nickname == this._persona_nickname)
+ this._properties_found.replace ("nickname", true);
if (i.is_favourite)
this._properties_found.replace ("is_favourite", true);
diff --git a/tests/tracker/set-alias.vala b/tests/tracker/set-nickname.vala
similarity index 69%
rename from tests/tracker/set-alias.vala
rename to tests/tracker/set-nickname.vala
index fbb7f49..647cde1 100644
--- a/tests/tracker/set-alias.vala
+++ b/tests/tracker/set-nickname.vala
@@ -23,24 +23,24 @@ using TrackerTest;
using Folks;
using Gee;
-public class SetAliasTests : Folks.TestCase
+public class SetNicknameTests : Folks.TestCase
{
private GLib.MainLoop _main_loop;
private TrackerTest.Backend _tracker_backend;
private IndividualAggregator _aggregator;
private string _persona_fullname;
- private string _initial_alias;
- private string _modified_alias;
- private bool _initial_alias_found;
- private bool _modified_alias_found;
+ private string _initial_nickname;
+ private string _modified_nickname;
+ private bool _initial_nickname_found;
+ private bool _modified_nickname_found;
- public SetAliasTests ()
+ public SetNicknameTests ()
{
- base ("SetAliasTests");
+ base ("SetNicknameTests");
this._tracker_backend = new TrackerTest.Backend ();
- this.add_test ("test setting alias ", this.test_set_alias);
+ this.add_test ("test setting nickname ", this.test_set_nickname);
}
public override void set_up ()
@@ -51,30 +51,24 @@ public class SetAliasTests : Folks.TestCase
{
}
- public void test_set_alias ()
+ public void test_set_nickname ()
{
this._main_loop = new GLib.MainLoop (null, false);
Gee.HashMap<string, string> c1 = new Gee.HashMap<string, string> ();
this._persona_fullname = "persona #1";
- this._initial_alias = "initial alias";
- this._modified_alias = "modified alias";
+ this._initial_nickname = "initial nickname";
+ this._modified_nickname = "modified nickname";
c1.set (Trf.OntologyDefs.NCO_FULLNAME, this._persona_fullname);
-
- /* Note:
- *
- * we treat the nco:nickname associated to an nco:PersonContact
- * as the alias, and the nco:nickname(s) associated to IM accounts
- * as possible nicknames. */
- c1.set (Trf.OntologyDefs.NCO_NICKNAME, this._initial_alias);
+ c1.set (Trf.OntologyDefs.NCO_NICKNAME, this._initial_nickname);
this._tracker_backend.add_contact (c1);
this._tracker_backend.set_up ();
- this._initial_alias_found = false;
- this._modified_alias_found = false;
+ this._initial_nickname_found = false;
+ this._modified_nickname_found = false;
- this._test_set_alias_async ();
+ this._test_set_nickname_async ();
Timeout.add_seconds (5, () =>
{
@@ -84,13 +78,13 @@ public class SetAliasTests : Folks.TestCase
this._main_loop.run ();
- assert (this._initial_alias_found == true);
- assert (this._modified_alias_found == true);
+ assert (this._initial_nickname_found == true);
+ assert (this._modified_nickname_found == true);
this._tracker_backend.tear_down ();
}
- private async void _test_set_alias_async ()
+ private async void _test_set_nickname_async ()
{
var store = BackendStore.dup ();
yield store.prepare ();
@@ -118,9 +112,9 @@ public class SetAliasTests : Folks.TestCase
{
if (i.full_name == this._persona_fullname)
{
- if (i.alias == this._initial_alias)
+ if (i.nickname == this._initial_nickname)
{
- this._initial_alias_found = true;
+ this._initial_nickname_found = true;
foreach (var p in i.personas)
{
@@ -130,16 +124,16 @@ public class SetAliasTests : Folks.TestCase
* Individual won't forward the notification to us
* unless it comes from a writeable store.
*/
- p.notify["alias"].connect (this._notify_alias_cb);
+ p.notify["nickname"].connect (this._notify_nickname_cb);
/* FIXME:
* it would be nice if we could just do:
- * i.alias = "foobar"
+ * i.nickname = "foobar"
* but we depend on:
* https://bugzilla.gnome.org/show_bug.cgi?id=645441 */
- if (p is AliasDetails)
+ if (p is NameDetails)
{
- ((AliasDetails) p).alias = this._modified_alias;
+ ((NameDetails) p).nickname = this._modified_nickname;
}
}
}
@@ -149,12 +143,12 @@ public class SetAliasTests : Folks.TestCase
assert (removed.size == 0);
}
- private void _notify_alias_cb (Object persona, ParamSpec ps)
+ private void _notify_nickname_cb (Object persona, ParamSpec ps)
{
Trf.Persona p = (Trf.Persona) persona;
- if (p.alias == this._modified_alias)
+ if (p.nickname == this._modified_nickname)
{
- this._modified_alias_found = true;
+ this._modified_nickname_found = true;
this._main_loop.quit ();
}
}
@@ -165,7 +159,7 @@ public int main (string[] args)
Test.init (ref args);
TestSuite root = TestSuite.get_root ();
- root.add_suite (new SetAliasTests ().get_suite ());
+ root.add_suite (new SetNicknameTests ().get_suite ());
Test.run ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]