[geary/wip/avoid-unusable-goa-accounts] Don't use GOA accounts with no valid IMAP/SMTP host names
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary/wip/avoid-unusable-goa-accounts] Don't use GOA accounts with no valid IMAP/SMTP host names
- Date: Fri, 22 Feb 2019 04:16:20 +0000 (UTC)
commit ad2636e04dd4ee2eb39d73065d216814237d21ee
Author: Michael Gratton <mike vee net>
Date: Fri Feb 22 15:10:45 2019 +1100
Don't use GOA accounts with no valid IMAP/SMTP host names
This fixes GOA Exchange accounts showing up but being completely
unusable, e.g. in #241
src/client/accounts/accounts-manager.vala | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
---
diff --git a/src/client/accounts/accounts-manager.vala b/src/client/accounts/accounts-manager.vala
index 426cb28a..1e2f7944 100644
--- a/src/client/accounts/accounts-manager.vala
+++ b/src/client/accounts/accounts-manager.vala
@@ -610,7 +610,7 @@ public class Accounts.Manager : GLib.Object {
throw new ConfigError.MANAGEMENT(err.message);
}
- if (goa_handle.get_mail() == null) {
+ if (!is_valid_goa_account(goa_handle)) {
// If we get here, the GOA account's mail service used
// to exist (we just loaded Geary's config for it) but
// no longer does. This indicates the mail service has
@@ -783,12 +783,21 @@ public class Accounts.Manager : GLib.Object {
: id;
}
- private async void create_goa_account(Goa.Object account,
- GLib.Cancellable? cancellable) {
+ private bool is_valid_goa_account(Goa.Object handle) {
// Goa.Account.mail_disabled doesn't seem to reflect if we get
// get a valid mail object here, so just rely on that instead.
- Goa.Mail? mail = account.get_mail();
- if (mail != null) {
+ Goa.Mail? mail = handle.get_mail();
+ return (
+ mail != null &&
+ !Geary.String.is_empty(mail.imap_host) &&
+ !Geary.String.is_empty(mail.smtp_host)
+ );
+ }
+
+ private async void create_goa_account(Goa.Object account,
+ GLib.Cancellable? cancellable) {
+ if (is_valid_goa_account(account)) {
+ Goa.Mail? mail = account.get_mail();
string? name = mail.name;
if (Geary.String.is_empty_or_whitespace(name)) {
name = get_account_name();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]