aboutsummaryrefslogtreecommitdiff
path: root/client/src/service/roster_manager.vala
diff options
context:
space:
mode:
authorMarvin W <git@larma.de>2017-03-10 19:34:56 +0100
committerMarvin W <git@larma.de>2017-03-10 19:50:34 +0100
commit29ca70a6d534e1cd79963718c793ae740318cff1 (patch)
tree295bc0a88b9f31f103bc970fbdcd2d940d6c83e2 /client/src/service/roster_manager.vala
parentcf51e1dee22273366700c41a185c4bea343dddfe (diff)
downloaddino-29ca70a6d534e1cd79963718c793ae740318cff1.tar.gz
dino-29ca70a6d534e1cd79963718c793ae740318cff1.zip
Initial plugin system
Diffstat (limited to 'client/src/service/roster_manager.vala')
-rw-r--r--client/src/service/roster_manager.vala82
1 files changed, 0 insertions, 82 deletions
diff --git a/client/src/service/roster_manager.vala b/client/src/service/roster_manager.vala
deleted file mode 100644
index 106405e2..00000000
--- a/client/src/service/roster_manager.vala
+++ /dev/null
@@ -1,82 +0,0 @@
-using Gee;
-
-using Xmpp;
-using Dino.Entities;
-
-namespace Dino {
- public class RosterManager : StreamInteractionModule, Object {
- public const string id = "roster_manager";
-
- public signal void removed_roster_item(Account account, Jid jid, Roster.Item roster_item);
- public signal void updated_roster_item(Account account, Jid jid, Roster.Item roster_item);
-
- private StreamInteractor stream_interactor;
-
- public static void start(StreamInteractor stream_interactor) {
- RosterManager m = new RosterManager(stream_interactor);
- stream_interactor.add_module(m);
- }
-
- public RosterManager(StreamInteractor stream_interactor) {
- this.stream_interactor = stream_interactor;
- stream_interactor.account_added.connect(on_account_added);
- }
-
- public ArrayList<Roster.Item> get_roster(Account account) {
- Core.XmppStream? stream = stream_interactor.get_stream(account);
- ArrayList<Roster.Item> ret = new ArrayList<Roster.Item>();
- if (stream != null) {
- ret.add_all(Xmpp.Roster.Flag.get_flag(stream).get_roster());
- }
- return ret;
- }
-
- public Roster.Item? get_roster_item(Account account, Jid jid) {
- Core.XmppStream? stream = stream_interactor.get_stream(account);
- if (stream != null) {
- return Xmpp.Roster.Flag.get_flag(stream).get_item(jid.bare_jid.to_string());
- }
- return null;
- }
-
- public void remove_jid(Account account, Jid jid) {
- Core.XmppStream? stream = stream_interactor.get_stream(account);
- if (stream != null) Xmpp.Roster.Module.get_module(stream).remove_jid(stream, jid.bare_jid.to_string());
- }
-
- public void add_jid(Account account, Jid jid, string? handle) {
- Core.XmppStream? stream = stream_interactor.get_stream(account);
- if (stream != null) Xmpp.Roster.Module.get_module(stream).add_jid(stream, jid.bare_jid.to_string(), handle);
- }
-
- public static RosterManager? get_instance(StreamInteractor stream_interactor) {
- return (RosterManager) stream_interactor.get_module(id);
- }
-
- internal string get_id() {
- return id;
- }
-
- private void on_account_added(Account account) {
- stream_interactor.module_manager.roster_modules[account].received_roster.connect( (stream, roster) => {
- on_roster_received(account, roster);
- });
- stream_interactor.module_manager.roster_modules[account].item_removed.connect( (stream, roster_item) => {
- removed_roster_item(account, new Jid(roster_item.jid), roster_item);
- });
- stream_interactor.module_manager.roster_modules[account].item_updated.connect( (stream, roster_item) => {
- on_roster_item_updated(account, roster_item);
- });
- }
-
- private void on_roster_received(Account account, Collection<Roster.Item> roster_items) {
- foreach (Roster.Item roster_item in roster_items) {
- on_roster_item_updated(account, roster_item);
- }
- }
-
- private void on_roster_item_updated(Account account, Roster.Item roster_item) {
- updated_roster_item(account, new Jid(roster_item.jid), roster_item);
- }
- }
-} \ No newline at end of file