Travis Reitter [Thu, 1 Jul 2010 03:08:32 +0000 (20:08 -0700)]
Bump required telepathy-glib.
Travis Reitter [Thu, 1 Jul 2010 02:46:04 +0000 (19:46 -0700)]
Merge remote branch 'pwith/interfaces'
Philip Withnall [Wed, 30 Jun 2010 11:00:15 +0000 (12:00 +0100)]
Merge branch 'master' into interfaces
Conflicts:
folks/persona-store.vala
folks/persona.vala
Philip Withnall [Wed, 30 Jun 2010 10:47:42 +0000 (11:47 +0100)]
Only warn about unknown personas if the account is already connected
This fixes spew of "unknown persona in favourites list" messages on startup.
Philip Withnall [Wed, 30 Jun 2010 10:40:37 +0000 (11:40 +0100)]
Handle the logger service going away gracefully
Philip Withnall [Wed, 30 Jun 2010 10:31:44 +0000 (11:31 +0100)]
Add a FIXME about using DBus.Connection.get_object_for_name_owner()
We can't use it at the moment due to bgo#623198.
Travis Reitter [Tue, 29 Jun 2010 23:50:34 +0000 (16:50 -0700)]
Merge remote branch 'pwith/favourites'
(Fixed)
Conflicts:
folks/individual.vala
folks/persona.vala
Travis Reitter [Tue, 29 Jun 2010 22:11:51 +0000 (15:11 -0700)]
Don't declare IndividualAggregator's constructor as throwing an error, since it doesn't.
Travis Reitter [Tue, 29 Jun 2010 22:08:38 +0000 (15:08 -0700)]
Merge remote branch 'pwith/docs2'
Fixed the documented return value for Presence.typecmp from docs2.
(Fixed)
Conflicts:
folks/individual-aggregator.vala
folks/individual.vala
Travis Reitter [Tue, 29 Jun 2010 17:51:42 +0000 (10:51 -0700)]
Make create_personas_from_channel_handles_async actually async.
Travis Reitter [Tue, 29 Jun 2010 18:02:47 +0000 (11:02 -0700)]
Bump the required version of GLib so we can take advantage of automatic ref counting for various GLib classes.
Philip Withnall [Tue, 29 Jun 2010 16:59:56 +0000 (17:59 +0100)]
Use get_object_for_name_owner() rather than just get_object()
This makes the Logger proxy more robust against the Logger service going
away.
Philip Withnall [Tue, 29 Jun 2010 12:54:43 +0000 (13:54 +0100)]
Remove groups API from PersonaStore
It doesn't belong there, as classes which extend Folks.PersonaStore may not
implement Groups functionality. The API has been moved into TpfPersonaStore
as internal API to the Telepathy backend.
Philip Withnall [Tue, 29 Jun 2010 12:22:25 +0000 (13:22 +0100)]
Remove interfaces from Persona
Interfaces such as Alias and Persona should be implemented by the backend
persona class which extends Persona, since different backends will have
different functionalities. Any code using Persona should check which
interfaces the specific Persona instance implements before attempting to use
their functionality.
Philip Withnall [Tue, 29 Jun 2010 11:30:40 +0000 (12:30 +0100)]
Catch some unhandled errors
Philip Withnall [Tue, 29 Jun 2010 11:14:36 +0000 (12:14 +0100)]
Split the Logger interface out into a separate file
Split the LoggerIface we use to wrap the telepathy-logger D-Bus service out
into a separate file, and implement it in a new Logger class which shares the
same D-Bus object between all users of the class.
Philip Withnall [Tue, 29 Jun 2010 09:57:39 +0000 (10:57 +0100)]
First round of favourites review cleanups
Travis Reitter [Mon, 28 Jun 2010 22:11:04 +0000 (15:11 -0700)]
Change IndividualAggregator.members to IndividualAggregator.individuals for consistency with PersonaStore, etc.
Travis Reitter [Mon, 28 Jun 2010 21:31:44 +0000 (14:31 -0700)]
Rephrase explanation of Individual:removed signal.
Philip Withnall [Fri, 25 Jun 2010 16:36:48 +0000 (17:36 +0100)]
Add documentation for every public signal, property and member
Philip Withnall [Fri, 25 Jun 2010 14:29:56 +0000 (15:29 +0100)]
Remove an outdated comment
Philip Withnall [Wed, 23 Jun 2010 15:41:55 +0000 (16:41 +0100)]
Add Favourites support
This adds a Favourite interface, implemented by Individual and Persona, and
backed by a D-Bus connection to the telepathy-logger service in
TpfPersonaStore.
The D-Bus logger proxy is a custom-written one in Vala, as the logger proxy
doesn't exist in telepathy-glib at the moment.
Whenever the is-favourite property of an Individual is changed, its new value
is propagated to _all_ of the individual's Personas. Conversely, if a single
Persona has is-favourite == true, the Individual containing that Persona will
also have is-favourite == true.
Travis Reitter [Thu, 24 Jun 2010 16:32:38 +0000 (09:32 -0700)]
Merge remote branch 'pwith/fixes2'
(Fixed)
Conflicts:
backends/telepathy/tpf-persona-store.vala
Travis Reitter [Thu, 24 Jun 2010 15:22:33 +0000 (08:22 -0700)]
Merge remote branch 'pwith/docs'
(Fixed)
Conflicts:
folks/individual-aggregator.vala
folks/persona-store.vala
Travis Reitter [Thu, 24 Jun 2010 03:07:06 +0000 (20:07 -0700)]
Micro version bump for new functionality.
Travis Reitter [Thu, 24 Jun 2010 03:05:35 +0000 (20:05 -0700)]
Re-add the stored list, as it's necessary to properly remove contacts.
Travis Reitter [Thu, 24 Jun 2010 02:57:49 +0000 (19:57 -0700)]
Support contact removal
Travis Reitter [Thu, 24 Jun 2010 01:10:49 +0000 (18:10 -0700)]
Rename internal-only 'remove' functions in Tpf.PersonaStore so public 'remove' functions consistently mean 'remove permanently from the server'.
Travis Reitter [Wed, 23 Jun 2010 22:59:11 +0000 (15:59 -0700)]
Add a comment about the usage of IndividiualAggregator.add_persona_from_details().parent
Travis Reitter [Wed, 23 Jun 2010 22:49:04 +0000 (15:49 -0700)]
Cut out 'stored' contact list support; if a contact is in neither 'publish' nor 'subscribe', we don't want to present them.
Travis Reitter [Wed, 23 Jun 2010 22:47:31 +0000 (15:47 -0700)]
Remove personas for Telepathy contacts removed from both the subscribe and publish contact lists.
Travis Reitter [Wed, 23 Jun 2010 22:40:08 +0000 (15:40 -0700)]
Filter incoming group channel members through the standard contact list channels
Travis Reitter [Wed, 23 Jun 2010 18:45:35 +0000 (11:45 -0700)]
Add support for the 'stored' standard contact list channel.
Travis Reitter [Wed, 23 Jun 2010 17:55:59 +0000 (10:55 -0700)]
Don't be excessively-explicit about the HashMap hash/equal functions, since they're determined by the generic types.
Travis Reitter [Wed, 23 Jun 2010 17:54:21 +0000 (10:54 -0700)]
Avoid another potential group/non-group contact list channel hash collision.
Travis Reitter [Wed, 23 Jun 2010 17:36:54 +0000 (10:36 -0700)]
Handle the standard non-group contact list channels separately from each other and the group channels, as they need to be.
Travis Reitter [Wed, 23 Jun 2010 16:00:29 +0000 (09:00 -0700)]
Change the key for channel_group_personas_map to Tp.Channel to avoid potential collisions between the ContactList and Group channels.
Travis Reitter [Wed, 23 Jun 2010 15:59:31 +0000 (08:59 -0700)]
Change the key for channel_group_incoming_adds to Tp.Channel to avoid potential collisions between the ContactList and Group channels.
Philip Withnall [Wed, 23 Jun 2010 11:18:51 +0000 (12:18 +0100)]
Use a literal GError when proxying errors in the TpfPersonaStore
Philip Withnall [Wed, 23 Jun 2010 10:50:05 +0000 (11:50 +0100)]
Note about a Vala bug when chaining constructors which affects us
Philip Withnall [Wed, 23 Jun 2010 10:04:55 +0000 (11:04 +0100)]
Make BackendStore.load_backends() async
It does I/O, so should be async so that it doesn't block. Consequently, it's
no longer guaranteed that all backends/personas/individuals are loaded by the
time IndividualAggegator's constructor returns.
Philip Withnall [Wed, 23 Jun 2010 09:37:42 +0000 (10:37 +0100)]
Documentation fixes
Remove the redundant documentation of enum members and improve the
documentation of a few classes.
Travis Reitter [Tue, 22 Jun 2010 23:27:31 +0000 (16:27 -0700)]
Clean up the distinction between the standard 'subscribe', 'publish' contact list channels and arbitrary group channels.
Travis Reitter [Thu, 17 Jun 2010 15:06:04 +0000 (08:06 -0700)]
Add the ability to add new personas to a persona store.
Travis Reitter [Tue, 22 Jun 2010 19:05:55 +0000 (12:05 -0700)]
Have each Individual use the presence message for one of its most-online personas rather than the first message found.
Travis Reitter [Tue, 22 Jun 2010 18:54:59 +0000 (11:54 -0700)]
Cut idea for unncessary signal.
Travis Reitter [Tue, 22 Jun 2010 17:37:56 +0000 (10:37 -0700)]
Merge remote branch 'pwith/fixes'
Philip Withnall [Tue, 22 Jun 2010 17:24:33 +0000 (18:24 +0100)]
Add documentation support and stub documentation to Folks
Add valadoc documentation support in the build system, and add stub
documentation to the top level of all the classes in the Folks namespace, but
not the Folks.Backends namespace.
The documentation is generated in HTML format in docs/folks-0.1/ but isn't
distributed in the tarball.
Philip Withnall [Tue, 22 Jun 2010 15:14:05 +0000 (16:14 +0100)]
gcc warning fixes in tp-lowlevel.[ch]
Philip Withnall [Tue, 22 Jun 2010 12:28:48 +0000 (13:28 +0100)]
Ensure the individual is removed if all its persona list property is emptied
This was already the case when existing personas were removed from the
individual due to their source going away. This commit fixes it for when the
persona list property is changed directly.
Philip Withnall [Tue, 22 Jun 2010 11:37:11 +0000 (12:37 +0100)]
Use a persona's UID as an individual's alias if no personas have an alias
Philip Withnall [Tue, 22 Jun 2010 11:28:03 +0000 (12:28 +0100)]
Make Individual.get_presence_message() return an unowned string
This prevents a completely unnecessary string copy.
Philip Withnall [Tue, 22 Jun 2010 10:42:51 +0000 (11:42 +0100)]
Remove system m4 macros from the m4 directory
Add them to a .gitignore file instead.
Philip Withnall [Tue, 22 Jun 2010 10:39:31 +0000 (11:39 +0100)]
Add some comments to the code
Travis Reitter [Thu, 17 Jun 2010 22:21:22 +0000 (15:21 -0700)]
Relocate folks_tp_lowlevel_connection_open_contact_list_channel_finish() next to its _async() function
Travis Reitter [Thu, 17 Jun 2010 00:16:21 +0000 (17:16 -0700)]
Use a hash table for tracking new incoming TpfPersonas and only add them if they're new.
Travis Reitter [Sun, 13 Jun 2010 00:55:21 +0000 (17:55 -0700)]
Clean up Telepathy PersonaStore removal and addition. This fixes a regression where a Telepathy persona store wouldn't emit 'removed' even if its account were disabled
Travis Reitter [Fri, 11 Jun 2010 23:04:23 +0000 (16:04 -0700)]
Use consistent naming and signatures for the Tpf.Persona property-notification-passing helper functions.
Travis Reitter [Fri, 11 Jun 2010 23:00:58 +0000 (16:00 -0700)]
Generalize overly-specific 'using' statement
Travis Reitter [Fri, 11 Jun 2010 22:59:01 +0000 (15:59 -0700)]
Trivial clean-up.
Travis Reitter [Fri, 11 Jun 2010 20:24:00 +0000 (13:24 -0700)]
Support avatars (generally, and for the Telepathy backend)
Travis Reitter [Thu, 10 Jun 2010 14:20:43 +0000 (07:20 -0700)]
Fix the location of libfolks-telepathy in its -uninstalled pkgconfig file.
Travis Reitter [Thu, 3 Jun 2010 19:48:58 +0000 (12:48 -0700)]
Bump the version number for the major changes of the last few commits.
Travis Reitter [Thu, 3 Jun 2010 19:42:19 +0000 (12:42 -0700)]
Add .deps files for the public libraries.
Travis Reitter [Thu, 3 Jun 2010 18:18:16 +0000 (11:18 -0700)]
Rename the folks-telepathy files, since they're in a different namespace than the folks-backend-telepathy files
Travis Reitter [Thu, 3 Jun 2010 18:09:16 +0000 (11:09 -0700)]
Add proper namespaces to the Telepathy backend and support libraries
Travis Reitter [Thu, 3 Jun 2010 16:20:46 +0000 (09:20 -0700)]
Rename liblowlevel to libtp-lowlevel for clarity
Travis Reitter [Thu, 3 Jun 2010 15:47:44 +0000 (08:47 -0700)]
Split the telepathy backend into a support library and a thin backend
wrapper (so applications can use the support library without linking against the
backend)
Travis Reitter [Wed, 2 Jun 2010 23:48:48 +0000 (16:48 -0700)]
Factor out the Telepathy backend into a separate, loadable module.
Travis Reitter [Mon, 31 May 2010 22:14:09 +0000 (15:14 -0700)]
Add tp-glib Vala bindings dependency to the .pc file and add a -uninstalled.pc file
Travis Reitter [Thu, 27 May 2010 18:30:54 +0000 (11:30 -0700)]
Support writing contact group changes back to Telepathy accounts.
Travis Reitter [Wed, 26 May 2010 16:51:41 +0000 (09:51 -0700)]
Don't try to process accounts which are currently being disconnected.
Travis Reitter [Wed, 26 May 2010 16:47:26 +0000 (09:47 -0700)]
Set a proper internal ID for TpPersonas and throw an error if its basis TpContact has an invalid UID.
Travis Reitter [Mon, 24 May 2010 23:57:20 +0000 (16:57 -0700)]
Add group notification/read support for Telepathy personas
Travis Reitter [Tue, 18 May 2010 23:23:10 +0000 (16:23 -0700)]
Avoid extraneous property notifications.
Travis Reitter [Wed, 19 May 2010 23:29:29 +0000 (16:29 -0700)]
Cut out debugging default value.
Travis Reitter [Tue, 18 May 2010 18:19:48 +0000 (11:19 -0700)]
Forward along TpPersona presence changes through their parent Individual.
Travis Reitter [Mon, 17 May 2010 23:02:38 +0000 (16:02 -0700)]
Cut outdated comment.
Travis Reitter [Mon, 17 May 2010 17:20:55 +0000 (10:20 -0700)]
Support account deletion
Travis Reitter [Fri, 14 May 2010 20:20:18 +0000 (13:20 -0700)]
Cut outdated comments
Travis Reitter [Fri, 14 May 2010 19:32:44 +0000 (12:32 -0700)]
Actually add the presence source.
Travis Reitter [Thu, 13 May 2010 02:50:00 +0000 (19:50 -0700)]
Update for the more accurate signature for Tp.Account.status_changed.
Travis Reitter [Thu, 13 May 2010 00:02:44 +0000 (17:02 -0700)]
Add stub Presence interface.
Travis Reitter [Wed, 12 May 2010 20:47:10 +0000 (13:47 -0700)]
Add a stub for the Capabilities interface.
Travis Reitter [Wed, 12 May 2010 20:42:17 +0000 (13:42 -0700)]
Fix the way we prepare Telepathy accounts and connections (including automatically handling ones that were already open)
Travis Reitter [Mon, 10 May 2010 20:20:08 +0000 (13:20 -0700)]
Update for symbol changes in the latest tp-glib bindings.
Travis Reitter [Fri, 23 Apr 2010 01:40:35 +0000 (18:40 -0700)]
Split PersonaStore into an abstract class and the TpPersonaStore derived class.
Travis Reitter [Thu, 22 Apr 2010 23:47:45 +0000 (16:47 -0700)]
Rename from libtelepathy-people to libfolks.
Travis Reitter [Thu, 22 Apr 2010 22:35:16 +0000 (15:35 -0700)]
Strip off the extraneous 'tpp-' prefix to the lowlevel files.
Travis Reitter [Thu, 22 Apr 2010 19:39:32 +0000 (12:39 -0700)]
Organize classes in the following sections in order:
* private (enum, class, signal, plain data, property)
* public (interface members, signal, properties), one block per interface
* public (enum, signal, plain data, property)
* constructor
* constructor's dependent functions, in order of reference
* destructor
* destructor's dependent functions
* public functions, followed by their dependent functions in order of ref
Travis Reitter [Thu, 22 Apr 2010 18:33:47 +0000 (11:33 -0700)]
Additional style changes.
* use 'var' instead of an explicit type whenever possible. It's still
type-safe yet reduces these types of redundancy (which would be common):
Foo foo = new Foo ();
Foo<Bar>[] foo_bar_array = new Foo<Bar>[size];
------------------->
var foo = new Foo ();
var foo_bar_array = new Foo<Bar>[size];
* declare variables as closely to their first use as possible. This is to make
all the relevant code as tight as possible, to minimize scrolling of all
types. Exceptions include: class data members, blocks of code where there
would be more than two variable definitions in a row; in this case, add a
blank line between the last definition and the next line of code (to avoid
making the code unreadably-dense); Eg, do this:
{
var manager = AccountManager.dup ();
unowned GLib.List<Account> accounts = manager.get_valid_accounts ();
this.stores = new HashMap<string, PersonaStore> ();
foreach (Account account in accounts)
{
var store = new PersonaStore (account);
this.stores.set (account.get_object_path (account), store);
}
...
}
Travis Reitter [Thu, 22 Apr 2010 17:57:05 +0000 (10:57 -0700)]
Switch the Vala source to Telepathy style, with minor clarifications:
* properties that use the default get() and set() functions should be on a
single line. Eg,
public string alias { get; set; default = "(No one of consequence)"; }
* custom one-line get() and set() functions should be on a single line. Eg,
get { return this._personas; }
* lambda blocks should be formatted as if they were regular blocks (with the {
indented once on the next line, another indent for the block content,
outdent once for the ending }). Any arguments following the lambda
definition in a function call should be continued on the next line (this
hasn't come up yet). Eg,
this._personas.foreach ((persona) =>
{
Persona p = (Persona) persona;
if (alias == null)
{
alias = p.alias;
}
});
Travis Reitter [Thu, 22 Apr 2010 05:05:41 +0000 (22:05 -0700)]
Change the namespace of the telepathy-people code to Tpp, to avoid ambiguity with telepathy-glib and its Vala bindings.
Travis Reitter [Wed, 21 Apr 2010 23:57:42 +0000 (16:57 -0700)]
Create Individuals from new Personas and notify of their creation.
Travis Reitter [Wed, 21 Apr 2010 17:21:24 +0000 (10:21 -0700)]
Change the personas_added type to a GLib.List from an array. This way we can consistently use GLists in the C API (since they're more conventional).
Travis Reitter [Wed, 21 Apr 2010 16:26:22 +0000 (09:26 -0700)]
Add the Alias interface
Travis Reitter [Tue, 20 Apr 2010 22:39:25 +0000 (15:39 -0700)]
Reduce the noise of our debug output.
Travis Reitter [Tue, 20 Apr 2010 21:23:08 +0000 (14:23 -0700)]
Signal the addition of personas to the persona store.
Travis Reitter [Tue, 20 Apr 2010 04:54:28 +0000 (21:54 -0700)]
Create the abstract class Tp.Persona and the Tp.TpPersona wrapper of TpContacts
Travis Reitter [Tue, 20 Apr 2010 00:12:00 +0000 (17:12 -0700)]
Retrieve the TpContacts for the discovered contact handles