diff options
Diffstat (limited to 'libdino/src/service')
-rw-r--r-- | libdino/src/service/database.vala | 6 | ||||
-rw-r--r-- | libdino/src/service/muc_manager.vala | 5 | ||||
-rw-r--r-- | libdino/src/service/roster_manager.vala | 11 |
3 files changed, 16 insertions, 6 deletions
diff --git a/libdino/src/service/database.vala b/libdino/src/service/database.vala index ae8d5412..333c599b 100644 --- a/libdino/src/service/database.vala +++ b/libdino/src/service/database.vala @@ -122,12 +122,12 @@ public class Database : Qlite.Database { public class RosterTable : Table { public Column<int> account_id = new Column.Integer("account_id"); public Column<string> jid = new Column.Text("jid"); - public Column<string> name = new Column.Text("name"); + public Column<string> handle = new Column.Text("name"); public Column<string> subscription = new Column.Text("subscription"); internal RosterTable(Database db) { base(db, "roster"); - init({account_id, jid, name, subscription}); + init({account_id, jid, handle, subscription}); unique({account_id, jid}, "IGNORE"); } } @@ -333,4 +333,4 @@ public class Database : Qlite.Database { } } -}
\ No newline at end of file +} diff --git a/libdino/src/service/muc_manager.vala b/libdino/src/service/muc_manager.vala index c6f37116..7761373f 100644 --- a/libdino/src/service/muc_manager.vala +++ b/libdino/src/service/muc_manager.vala @@ -134,6 +134,11 @@ public class MucManager : StreamInteractionModule, Object { } } + public string? get_room_name(Account account, Jid jid) { + Core.XmppStream? stream = stream_interactor.get_stream(account); + return stream != null ? stream.get_flag(Xep.Muc.Flag.IDENTITY).get_room_name(jid.to_string()) : null; + } + public string? get_groupchat_subject(Jid jid, Account account) { Core.XmppStream? stream = stream_interactor.get_stream(account); if (stream != null) { diff --git a/libdino/src/service/roster_manager.vala b/libdino/src/service/roster_manager.vala index e17c24e3..51a64625 100644 --- a/libdino/src/service/roster_manager.vala +++ b/libdino/src/service/roster_manager.vala @@ -49,6 +49,11 @@ public class RosterManager : StreamInteractionModule, Object { if (stream != null) stream.get_module(Xmpp.Roster.Module.IDENTITY).add_jid(stream, jid.bare_jid.to_string(), handle); } + public void set_jid_handle(Account account, Jid jid, string? handle) { + Core.XmppStream? stream = stream_interactor.get_stream(account); + if (stream != null) stream.get_module(Xmpp.Roster.Module.IDENTITY).set_jid_handle(stream, jid.bare_jid.to_string(), handle); + } + private void on_account_added(Account account) { stream_interactor.module_manager.get_module(account, Roster.Module.IDENTITY).received_roster.connect( (stream, roster) => { foreach (Roster.Item roster_item in roster) { @@ -81,7 +86,7 @@ public class RosterStoreImpl : Roster.Storage, Object { foreach (Qlite.Row row in db.roster.select().with(db.roster.account_id, "=", account.id)) { Roster.Item item = new Roster.Item(); item.jid = row[db.roster.jid]; - item.name = row[db.roster.name]; + item.name = row[db.roster.handle]; item.subscription = row[db.roster.subscription]; items[item.jid] = item; } @@ -115,7 +120,7 @@ public class RosterStoreImpl : Roster.Storage, Object { db.roster.insert().or("REPLACE") .value(db.roster.account_id, account.id) .value(db.roster.jid, item.jid) - .value(db.roster.name, item.name) + .value(db.roster.handle, item.name) .value(db.roster.subscription, item.subscription) .perform(); } @@ -128,4 +133,4 @@ public class RosterStoreImpl : Roster.Storage, Object { } } -}
\ No newline at end of file +} |