Remove Geary.Imap.ClientSession::server-data-received signal
This was only being used internally, and it leaks low level details out of the mid-level abstraction.
This commit is contained in:
parent
7ac72379bb
commit
9e01d8dca0
2 changed files with 18 additions and 18 deletions
|
|
@ -312,12 +312,6 @@ public class Geary.Imap.ClientSession : BaseObject, Logging.Source {
|
|||
/** Emitted when an IMAP command status response is received. */
|
||||
public signal void status_response_received(StatusResponse status_response);
|
||||
|
||||
/**
|
||||
* Fired after the specific {@link ServerData} signals (i.e. {@link capability}, {@link exists}
|
||||
* {@link expunge}, etc.)
|
||||
*/
|
||||
public signal void server_data_received(ServerData server_data);
|
||||
|
||||
public signal void exists(int count);
|
||||
|
||||
public signal void expunge(SequenceNumber seq_num);
|
||||
|
|
@ -1034,16 +1028,19 @@ public class Geary.Imap.ClientSession : BaseObject, Logging.Source {
|
|||
yield send_command_async(new CapabilityCommand(), cancellable);
|
||||
}
|
||||
|
||||
Gee.List<ServerData> server_data = new Gee.ArrayList<ServerData>();
|
||||
ulong data_id = this.server_data_received.connect((data) => { server_data.add(data); });
|
||||
var list_results = new Gee.ArrayList<MailboxInformation>();
|
||||
ulong list_id = this.list.connect(
|
||||
(mailbox) => { list_results.add(mailbox); }
|
||||
);
|
||||
try {
|
||||
// Determine what this connection calls the inbox
|
||||
Imap.StatusResponse response = yield send_command_async(
|
||||
new ListCommand(MailboxSpecifier.inbox, false, null),
|
||||
cancellable
|
||||
);
|
||||
if (response.status == Status.OK && !server_data.is_empty) {
|
||||
this.inbox = server_data[0].get_list();
|
||||
if (response.status == Status.OK && !list_results.is_empty) {
|
||||
this.inbox = list_results[0];
|
||||
list_results.clear();
|
||||
debug("Using INBOX: %s", this.inbox.to_string());
|
||||
} else {
|
||||
throw new ImapError.INVALID("Unable to find INBOX");
|
||||
|
|
@ -1059,7 +1056,6 @@ public class Geary.Imap.ClientSession : BaseObject, Logging.Source {
|
|||
warning("NAMESPACE command failed");
|
||||
}
|
||||
}
|
||||
server_data.clear();
|
||||
if (!this.personal_namespaces.is_empty) {
|
||||
debug(
|
||||
"Default personal namespace: %s",
|
||||
|
|
@ -1083,8 +1079,8 @@ public class Geary.Imap.ClientSession : BaseObject, Logging.Source {
|
|||
new ListCommand(new MailboxSpecifier(prefix), false, null),
|
||||
cancellable
|
||||
);
|
||||
if (response.status == Status.OK && !server_data.is_empty) {
|
||||
MailboxInformation list = server_data[0].get_list();
|
||||
if (response.status == Status.OK && !list_results.is_empty) {
|
||||
MailboxInformation list = list_results[0];
|
||||
delim = list.delim;
|
||||
} else {
|
||||
throw new ImapError.INVALID("Unable to determine personal namespace delimiter");
|
||||
|
|
@ -1096,7 +1092,7 @@ public class Geary.Imap.ClientSession : BaseObject, Logging.Source {
|
|||
this.personal_namespaces[0].to_string());
|
||||
}
|
||||
} finally {
|
||||
disconnect(data_id);
|
||||
disconnect(list_id);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1939,8 +1935,6 @@ public class Geary.Imap.ClientSession : BaseObject, Logging.Source {
|
|||
server_data.to_string());
|
||||
break;
|
||||
}
|
||||
|
||||
server_data_received(server_data);
|
||||
}
|
||||
|
||||
private void clear_namespaces() {
|
||||
|
|
|
|||
|
|
@ -256,7 +256,7 @@ class Geary.Imap.ClientSessionTest : TestCase {
|
|||
this.server.add_script_line(SEND_LINE, "* CAPABILITY IMAP4rev1");
|
||||
this.server.add_script_line(SEND_LINE, "a003 OK thanks");
|
||||
this.server.add_script_line(RECEIVE_LINE, "a004 LIST \"\" INBOX");
|
||||
this.server.add_script_line(SEND_LINE, "* LIST (\\HasChildren) \".\" INBOX");
|
||||
this.server.add_script_line(SEND_LINE, "* LIST (\\HasChildren) \".\" Inbox");
|
||||
this.server.add_script_line(SEND_LINE, "a004 OK there");
|
||||
this.server.add_script_line(WAIT_FOR_DISCONNECT, "");
|
||||
|
||||
|
|
@ -280,6 +280,9 @@ class Geary.Imap.ClientSessionTest : TestCase {
|
|||
assert_false(test_article.capabilities.has_capability("AUTH"));
|
||||
assert_int(2, test_article.capabilities.revision);
|
||||
|
||||
assert_string("Inbox", test_article.inbox.mailbox.name);
|
||||
assert_true(test_article.inbox.mailbox.is_inbox);
|
||||
|
||||
test_article.disconnect_async.begin(null, this.async_complete_full);
|
||||
test_article.disconnect_async.end(async_result());
|
||||
|
||||
|
|
@ -297,7 +300,7 @@ class Geary.Imap.ClientSessionTest : TestCase {
|
|||
this.server.add_script_line(RECEIVE_LINE, "a001 login test password");
|
||||
this.server.add_script_line(SEND_LINE, "a001 OK [CAPABILITY IMAP4rev1] ohhai");
|
||||
this.server.add_script_line(RECEIVE_LINE, "a002 LIST \"\" INBOX");
|
||||
this.server.add_script_line(SEND_LINE, "* LIST (\\HasChildren) \".\" INBOX");
|
||||
this.server.add_script_line(SEND_LINE, "* LIST (\\HasChildren) \".\" Inbox");
|
||||
this.server.add_script_line(SEND_LINE, "a002 OK there");
|
||||
this.server.add_script_line(WAIT_FOR_DISCONNECT, "");
|
||||
|
||||
|
|
@ -321,6 +324,9 @@ class Geary.Imap.ClientSessionTest : TestCase {
|
|||
assert_false(test_article.capabilities.has_capability("AUTH"));
|
||||
assert_int(2, test_article.capabilities.revision);
|
||||
|
||||
assert_string("Inbox", test_article.inbox.mailbox.name);
|
||||
assert_true(test_article.inbox.mailbox.is_inbox);
|
||||
|
||||
test_article.disconnect_async.begin(null, this.async_complete_full);
|
||||
test_article.disconnect_async.end(async_result());
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue