aboutsummaryrefslogtreecommitdiff
path: root/plugins/omemo/src/account_settings_widget.vala
diff options
context:
space:
mode:
authorMarvin W <git@larma.de>2017-05-13 17:48:13 +0200
committerMarvin W <git@larma.de>2017-08-27 14:52:18 +0200
commit9840774a87b9d15523ecc04ee4c157270e9abfe5 (patch)
treee3183522c19cabc787ec969d67a35208cd9c61de /plugins/omemo/src/account_settings_widget.vala
parentad033beea82a4ba20da71220966b80d5f674428f (diff)
downloaddino-9840774a87b9d15523ecc04ee4c157270e9abfe5.tar.gz
dino-9840774a87b9d15523ecc04ee4c157270e9abfe5.zip
omemo: store and display identity keys of all devices
Diffstat (limited to 'plugins/omemo/src/account_settings_widget.vala')
-rw-r--r--plugins/omemo/src/account_settings_widget.vala30
1 files changed, 12 insertions, 18 deletions
diff --git a/plugins/omemo/src/account_settings_widget.vala b/plugins/omemo/src/account_settings_widget.vala
index 2842c698..da3f6ca2 100644
--- a/plugins/omemo/src/account_settings_widget.vala
+++ b/plugins/omemo/src/account_settings_widget.vala
@@ -7,6 +7,7 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box {
private Plugin plugin;
private Label fingerprint;
private Account account;
+ private Button btn;
public AccountSettingWidget(Plugin plugin) {
this.plugin = plugin;
@@ -18,38 +19,31 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box {
fingerprint.visible = true;
pack_start(fingerprint);
- Button btn = new Button();
+ btn = new Button();
btn.image = new Image.from_icon_name("view-list-symbolic", IconSize.BUTTON);
btn.relief = ReliefStyle.NONE;
- btn.visible = true;
+ btn.visible = false;
btn.valign = Align.CENTER;
- btn.clicked.connect(() => { activated(); });
+ btn.clicked.connect(() => {
+ activated();
+ AccountSettingsDialog dialog = new AccountSettingsDialog(plugin, account);
+ dialog.set_transient_for((Window) get_toplevel());
+ dialog.present();
+ });
pack_start(btn, false);
}
public void set_account(Account account) {
this.account = account;
+ btn.visible = false;
try {
Qlite.Row? row = plugin.db.identity.row_with(plugin.db.identity.account_id, account.id).inner;
if (row == null) {
fingerprint.set_markup("%s\n<span font='8'>%s</span>".printf(_("Own fingerprint"), _("Will be generated on first connect")));
} else {
- uint8[] arr = Base64.decode(((!)row)[plugin.db.identity.identity_key_public_base64]);
- arr = arr[1:arr.length];
- string res = "";
- foreach (uint8 i in arr) {
- string s = i.to_string("%x");
- if (s.length == 1) s = "0" + s;
- res = res + s;
- if ((res.length % 9) == 8) {
- if (res.length == 35) {
- res += "\n";
- } else {
- res += " ";
- }
- }
- }
+ string res = fingerprint_markup(fingerprint_from_base64(((!)row)[plugin.db.identity.identity_key_public_base64]));
fingerprint.set_markup("%s\n<span font_family='monospace' font='8'>%s</span>".printf(_("Own fingerprint"), res));
+ btn.visible = true;
}
} catch (Qlite.DatabaseError e) {
fingerprint.set_markup("%s\n<span font='8'>%s</span>".printf(_("Own fingerprint"), _("Database error")));