From f24b47c44db03a8d9ba611f827e71aeb1f63d0bd Mon Sep 17 00:00:00 2001 From: fiaxh Date: Sun, 12 Mar 2017 14:44:09 +0100 Subject: PGP module: store data in own db, use pgp key as specified in account settings --- plugins/openpgp/src/plugin.vala | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'plugins/openpgp/src/plugin.vala') diff --git a/plugins/openpgp/src/plugin.vala b/plugins/openpgp/src/plugin.vala index d25c8cd0..b69f7b7a 100644 --- a/plugins/openpgp/src/plugin.vala +++ b/plugins/openpgp/src/plugin.vala @@ -1,28 +1,36 @@ +using Gee; + +using Dino.Entities; + namespace Dino.Plugins.OpenPgp { public class Plugin : Plugins.RootInterface, Object { public Dino.Application app; public Database db; + public HashMap modules = new HashMap(Account.hash_func, Account.equals_func); - private Module module; private EncryptionListEntry list_entry; private AccountSettingsEntry settings_entry; public void registered(Dino.Application app) { this.app = app; - this.module = new Module(); + this.db = new Database(Path.build_filename(Application.get_storage_dir(), "pgp.db")); this.list_entry = new EncryptionListEntry(app.stream_interaction); - this.settings_entry = new AccountSettingsEntry(); + this.settings_entry = new AccountSettingsEntry(this); + app.plugin_registry.register_encryption_list_entry(list_entry); app.plugin_registry.register_account_settings_entry(settings_entry); - app.stream_interaction.module_manager.initialize_account_modules.connect((account, list) => { - list.add(new Module()); - }); - Manager.start(app.stream_interaction, app.db); + app.stream_interaction.module_manager.initialize_account_modules.connect(on_initialize_account_modules); + + Manager.start(app.stream_interaction, db); } - public void shutdown() { - // Nothing to do + public void shutdown() { } + + private void on_initialize_account_modules(Account account, ArrayList modules) { + Module module = new Module(db.get_account_key(account)); + this.modules[account] = module; + modules.add(module); } } -- cgit v1.2.3-54-g00ecf