Make constructors the first function
This commit is contained in:
parent
b5d5a05a1e
commit
e1afda10e3
|
@ -29,6 +29,77 @@ public class ContactDetailsDialog : Gtk.Dialog {
|
||||||
[GtkChild] private Image qrcode;
|
[GtkChild] private Image qrcode;
|
||||||
[GtkChild] private Popover qrcode_popover;
|
[GtkChild] private Popover qrcode_popover;
|
||||||
|
|
||||||
|
public ContactDetailsDialog(Plugin plugin, Account account, Jid jid) {
|
||||||
|
Object(use_header_bar : 1);
|
||||||
|
this.plugin = plugin;
|
||||||
|
this.account = account;
|
||||||
|
this.jid = jid;
|
||||||
|
|
||||||
|
(get_header_bar() as HeaderBar).set_subtitle(jid.bare_jid.to_string());
|
||||||
|
|
||||||
|
|
||||||
|
if(jid.equals(account.bare_jid)) {
|
||||||
|
own = true;
|
||||||
|
own_id = plugin.db.identity.row_with(plugin.db.identity.account_id, account.id)[plugin.db.identity.device_id];
|
||||||
|
|
||||||
|
own_fingerprint_container.visible = true;
|
||||||
|
|
||||||
|
string own_b64 = plugin.db.identity.row_with(plugin.db.identity.account_id, account.id)[plugin.db.identity.identity_key_public_base64];
|
||||||
|
string fingerprint = fingerprint_from_base64(own_b64);
|
||||||
|
own_fingerprint.set_markup(fingerprint_markup(fingerprint));
|
||||||
|
|
||||||
|
copy.clicked.connect(() => {Clipboard.get_default(get_display()).set_text(fingerprint, fingerprint.length);});
|
||||||
|
|
||||||
|
int sid = plugin.db.identity.row_with(plugin.db.identity.account_id, account.id)[plugin.db.identity.device_id];
|
||||||
|
Pixbuf pixbuf = new QRcode(@"xmpp:$(account.bare_jid)?omemo-sid-$(sid)=$(fingerprint)", 2).to_pixbuf();
|
||||||
|
pixbuf = pixbuf.scale_simple(150, 150, InterpType.NEAREST);
|
||||||
|
qrcode.set_from_pixbuf(pixbuf);
|
||||||
|
show_qrcode.clicked.connect(qrcode_popover.popup);
|
||||||
|
}
|
||||||
|
|
||||||
|
new_keys.set_header_func((row, before_row) => {
|
||||||
|
if (row.get_header() == null && before_row != null) {
|
||||||
|
row.set_header(new Separator(Orientation.HORIZONTAL));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
keys.set_header_func((row, before_row) => {
|
||||||
|
if (row.get_header() == null && before_row != null) {
|
||||||
|
row.set_header(new Separator(Orientation.HORIZONTAL));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
foreach (Row device in plugin.db.identity_meta.with_address(account.id, jid.to_string()).with(plugin.db.identity_meta.trust_level, "=", Database.IdentityMetaTable.TrustLevel.UNKNOWN).without_null(plugin.db.identity_meta.identity_key_public_base64)) {
|
||||||
|
add_new_fingerprint(device);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Row device in plugin.db.identity_meta.with_address(account.id, jid.to_string()).with(plugin.db.identity_meta.trust_level, "!=", Database.IdentityMetaTable.TrustLevel.UNKNOWN).without_null(plugin.db.identity_meta.identity_key_public_base64)) {
|
||||||
|
if(own && device[plugin.db.identity_meta.device_id] == own_id) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
add_fingerprint(device, (Database.IdentityMetaTable.TrustLevel) device[plugin.db.identity_meta.trust_level]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
auto_accept.set_active(plugin.db.trust.get_blind_trust(account.id, jid.bare_jid.to_string()));
|
||||||
|
|
||||||
|
auto_accept.state_set.connect((active) => {
|
||||||
|
plugin.db.trust.update().with(plugin.db.trust.identity_id, "=", account.id).with(plugin.db.trust.address_name, "=", jid.bare_jid.to_string()).set(plugin.db.trust.blind_trust, active).perform();
|
||||||
|
|
||||||
|
if (active) {
|
||||||
|
new_keys_container.visible = false;
|
||||||
|
|
||||||
|
foreach (Row device in plugin.db.identity_meta.with_address(account.id, jid.to_string()).with(plugin.db.identity_meta.trust_level, "=", Database.IdentityMetaTable.TrustLevel.UNKNOWN).without_null(plugin.db.identity_meta.identity_key_public_base64)) {
|
||||||
|
set_device_trust(device, true);
|
||||||
|
add_fingerprint(device, Database.IdentityMetaTable.TrustLevel.TRUSTED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private void set_device_trust(Row device, bool trust) {
|
private void set_device_trust(Row device, bool trust) {
|
||||||
Database.IdentityMetaTable.TrustLevel trust_level = trust ? Database.IdentityMetaTable.TrustLevel.TRUSTED : Database.IdentityMetaTable.TrustLevel.UNTRUSTED;
|
Database.IdentityMetaTable.TrustLevel trust_level = trust ? Database.IdentityMetaTable.TrustLevel.TRUSTED : Database.IdentityMetaTable.TrustLevel.UNTRUSTED;
|
||||||
plugin.db.identity_meta.update()
|
plugin.db.identity_meta.update()
|
||||||
|
@ -168,78 +239,6 @@ public class ContactDetailsDialog : Gtk.Dialog {
|
||||||
lbr.add(box);
|
lbr.add(box);
|
||||||
new_keys.add(lbr);
|
new_keys.add(lbr);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ContactDetailsDialog(Plugin plugin, Account account, Jid jid) {
|
|
||||||
Object(use_header_bar : 1);
|
|
||||||
this.plugin = plugin;
|
|
||||||
this.account = account;
|
|
||||||
this.jid = jid;
|
|
||||||
|
|
||||||
(get_header_bar() as HeaderBar).set_subtitle(jid.bare_jid.to_string());
|
|
||||||
|
|
||||||
|
|
||||||
if(jid.equals(account.bare_jid)) {
|
|
||||||
own = true;
|
|
||||||
own_id = plugin.db.identity.row_with(plugin.db.identity.account_id, account.id)[plugin.db.identity.device_id];
|
|
||||||
|
|
||||||
own_fingerprint_container.visible = true;
|
|
||||||
|
|
||||||
string own_b64 = plugin.db.identity.row_with(plugin.db.identity.account_id, account.id)[plugin.db.identity.identity_key_public_base64];
|
|
||||||
string fingerprint = fingerprint_from_base64(own_b64);
|
|
||||||
own_fingerprint.set_markup(fingerprint_markup(fingerprint));
|
|
||||||
|
|
||||||
copy.clicked.connect(() => {Clipboard.get_default(get_display()).set_text(fingerprint, fingerprint.length);});
|
|
||||||
|
|
||||||
int sid = plugin.db.identity.row_with(plugin.db.identity.account_id, account.id)[plugin.db.identity.device_id];
|
|
||||||
Pixbuf pixbuf = new QRcode(@"xmpp:$(account.bare_jid)?omemo-sid-$(sid)=$(fingerprint)", 2).to_pixbuf();
|
|
||||||
pixbuf = pixbuf.scale_simple(150, 150, InterpType.NEAREST);
|
|
||||||
qrcode.set_from_pixbuf(pixbuf);
|
|
||||||
show_qrcode.clicked.connect(qrcode_popover.popup);
|
|
||||||
}
|
|
||||||
|
|
||||||
new_keys.set_header_func((row, before_row) => {
|
|
||||||
if (row.get_header() == null && before_row != null) {
|
|
||||||
row.set_header(new Separator(Orientation.HORIZONTAL));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
keys.set_header_func((row, before_row) => {
|
|
||||||
if (row.get_header() == null && before_row != null) {
|
|
||||||
row.set_header(new Separator(Orientation.HORIZONTAL));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
foreach (Row device in plugin.db.identity_meta.with_address(account.id, jid.to_string()).with(plugin.db.identity_meta.trust_level, "=", Database.IdentityMetaTable.TrustLevel.UNKNOWN).without_null(plugin.db.identity_meta.identity_key_public_base64)) {
|
|
||||||
add_new_fingerprint(device);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (Row device in plugin.db.identity_meta.with_address(account.id, jid.to_string()).with(plugin.db.identity_meta.trust_level, "!=", Database.IdentityMetaTable.TrustLevel.UNKNOWN).without_null(plugin.db.identity_meta.identity_key_public_base64)) {
|
|
||||||
if(own && device[plugin.db.identity_meta.device_id] == own_id) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
add_fingerprint(device, (Database.IdentityMetaTable.TrustLevel) device[plugin.db.identity_meta.trust_level]);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
auto_accept.set_active(plugin.db.trust.get_blind_trust(account.id, jid.bare_jid.to_string()));
|
|
||||||
|
|
||||||
auto_accept.state_set.connect((active) => {
|
|
||||||
plugin.db.trust.update().with(plugin.db.trust.identity_id, "=", account.id).with(plugin.db.trust.address_name, "=", jid.bare_jid.to_string()).set(plugin.db.trust.blind_trust, active).perform();
|
|
||||||
|
|
||||||
if (active) {
|
|
||||||
new_keys_container.visible = false;
|
|
||||||
|
|
||||||
foreach (Row device in plugin.db.identity_meta.with_address(account.id, jid.to_string()).with(plugin.db.identity_meta.trust_level, "=", Database.IdentityMetaTable.TrustLevel.UNKNOWN).without_null(plugin.db.identity_meta.identity_key_public_base64)) {
|
|
||||||
set_device_trust(device, true);
|
|
||||||
add_fingerprint(device, Database.IdentityMetaTable.TrustLevel.TRUSTED);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,26 +31,6 @@ public class ManageKeyDialog : Gtk.Dialog {
|
||||||
private bool return_to_main;
|
private bool return_to_main;
|
||||||
private int current_response;
|
private int current_response;
|
||||||
|
|
||||||
private void handle_cancel() {
|
|
||||||
if (manage_stack.get_visible_child_name() == "main") close();
|
|
||||||
|
|
||||||
if (manage_stack.get_visible_child_name() == "verify") {
|
|
||||||
manage_stack.set_visible_child_name("main");
|
|
||||||
cancel_button.label = "Cancel";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (manage_stack.get_visible_child_name() == "confirm") {
|
|
||||||
if (return_to_main) {
|
|
||||||
manage_stack.set_visible_child_name("main");
|
|
||||||
cancel_button.label = "Cancel";
|
|
||||||
} else {
|
|
||||||
manage_stack.set_visible_child_name("verify");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ok_button.sensitive = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ManageKeyDialog(Row device, Database db) {
|
public ManageKeyDialog(Row device, Database db) {
|
||||||
Object(use_header_bar : 1);
|
Object(use_header_bar : 1);
|
||||||
|
|
||||||
|
@ -85,6 +65,26 @@ public class ManageKeyDialog : Gtk.Dialog {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void handle_cancel() {
|
||||||
|
if (manage_stack.get_visible_child_name() == "main") close();
|
||||||
|
|
||||||
|
if (manage_stack.get_visible_child_name() == "verify") {
|
||||||
|
manage_stack.set_visible_child_name("main");
|
||||||
|
cancel_button.label = "Cancel";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (manage_stack.get_visible_child_name() == "confirm") {
|
||||||
|
if (return_to_main) {
|
||||||
|
manage_stack.set_visible_child_name("main");
|
||||||
|
cancel_button.label = "Cancel";
|
||||||
|
} else {
|
||||||
|
manage_stack.set_visible_child_name("verify");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ok_button.sensitive = false;
|
||||||
|
}
|
||||||
|
|
||||||
private Box make_action_box(string title, string desc){
|
private Box make_action_box(string title, string desc){
|
||||||
Box box = new Box(Orientation.VERTICAL, 0) { visible = true, margin_start = 20, margin_end = 20, margin_top = 14, margin_bottom = 14 };
|
Box box = new Box(Orientation.VERTICAL, 0) { visible = true, margin_start = 20, margin_end = 20, margin_top = 14, margin_bottom = 14 };
|
||||||
Label lbl_title = new Label(title) { visible = true, halign = Align.START };
|
Label lbl_title = new Label(title) { visible = true, halign = Align.START };
|
||||||
|
|
Loading…
Reference in a new issue