mirror of https://github.com/M66B/FairEmail.git
Check server when needed only
This commit is contained in:
parent
f34200ecbb
commit
663dfd0ea0
|
@ -631,6 +631,7 @@ public class FragmentAccount extends FragmentEx {
|
||||||
new SimpleTask<Void>() {
|
new SimpleTask<Void>() {
|
||||||
@Override
|
@Override
|
||||||
protected Void onLoad(Context context, Bundle args) throws Throwable {
|
protected Void onLoad(Context context, Bundle args) throws Throwable {
|
||||||
|
long id = args.getLong("id");
|
||||||
String host = args.getString("host");
|
String host = args.getString("host");
|
||||||
boolean starttls = args.getBoolean("starttls");
|
boolean starttls = args.getBoolean("starttls");
|
||||||
boolean insecure = args.getBoolean("insecure");
|
boolean insecure = args.getBoolean("insecure");
|
||||||
|
@ -665,11 +666,19 @@ public class FragmentAccount extends FragmentEx {
|
||||||
interval = "19";
|
interval = "19";
|
||||||
if (synchronize && drafts == null)
|
if (synchronize && drafts == null)
|
||||||
throw new Throwable(getContext().getString(R.string.title_no_drafts));
|
throw new Throwable(getContext().getString(R.string.title_no_drafts));
|
||||||
|
|
||||||
if (Color.TRANSPARENT == color)
|
if (Color.TRANSPARENT == color)
|
||||||
color = null;
|
color = null;
|
||||||
|
|
||||||
|
DB db = DB.getInstance(context);
|
||||||
|
EntityAccount account = db.account().getAccount(id);
|
||||||
|
|
||||||
|
boolean check = (account == null || (synchronize &&
|
||||||
|
(!host.equals(account.host) || Integer.parseInt(port) != account.port) ||
|
||||||
|
!user.equals(account.user) || !password.equals(account.password)));
|
||||||
|
|
||||||
// Check IMAP server
|
// Check IMAP server
|
||||||
if (synchronize) {
|
if (check) {
|
||||||
Session isession = Session.getInstance(MessageHelper.getSessionProperties(auth_type, insecure), null);
|
Session isession = Session.getInstance(MessageHelper.getSessionProperties(auth_type, insecure), null);
|
||||||
isession.setDebug(true);
|
isession.setDebug(true);
|
||||||
IMAPStore istore = null;
|
IMAPStore istore = null;
|
||||||
|
@ -696,11 +705,9 @@ public class FragmentAccount extends FragmentEx {
|
||||||
if (TextUtils.isEmpty(name))
|
if (TextUtils.isEmpty(name))
|
||||||
name = user;
|
name = user;
|
||||||
|
|
||||||
DB db = DB.getInstance(getContext());
|
|
||||||
try {
|
try {
|
||||||
db.beginTransaction();
|
db.beginTransaction();
|
||||||
|
|
||||||
EntityAccount account = db.account().getAccount(args.getLong("id"));
|
|
||||||
boolean update = (account != null);
|
boolean update = (account != null);
|
||||||
if (account == null)
|
if (account == null)
|
||||||
account = new EntityAccount();
|
account = new EntityAccount();
|
||||||
|
@ -785,7 +792,8 @@ public class FragmentAccount extends FragmentEx {
|
||||||
db.endTransaction();
|
db.endTransaction();
|
||||||
}
|
}
|
||||||
|
|
||||||
ServiceSynchronize.reload(getContext(), "save account");
|
if (check)
|
||||||
|
ServiceSynchronize.reload(getContext(), "save account");
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -406,8 +406,15 @@ public class FragmentIdentity extends FragmentEx {
|
||||||
if (Color.TRANSPARENT == color)
|
if (Color.TRANSPARENT == color)
|
||||||
color = null;
|
color = null;
|
||||||
|
|
||||||
|
DB db = DB.getInstance(context);
|
||||||
|
EntityIdentity identity = db.identity().getIdentity(id);
|
||||||
|
|
||||||
|
boolean check = (identity == null || (synchronize &&
|
||||||
|
(!host.equals(identity.host) || Integer.parseInt(port) != identity.port) ||
|
||||||
|
!user.equals(identity.user) || !password.equals(identity.password)));
|
||||||
|
|
||||||
// Check SMTP server
|
// Check SMTP server
|
||||||
if (synchronize) {
|
if (check) {
|
||||||
Properties props = MessageHelper.getSessionProperties(auth_type, insecure);
|
Properties props = MessageHelper.getSessionProperties(auth_type, insecure);
|
||||||
Session isession = Session.getInstance(props, null);
|
Session isession = Session.getInstance(props, null);
|
||||||
isession.setDebug(true);
|
isession.setDebug(true);
|
||||||
|
@ -427,11 +434,9 @@ public class FragmentIdentity extends FragmentEx {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DB db = DB.getInstance(getContext());
|
|
||||||
try {
|
try {
|
||||||
db.beginTransaction();
|
db.beginTransaction();
|
||||||
|
|
||||||
EntityIdentity identity = db.identity().getIdentity(id);
|
|
||||||
boolean update = (identity != null);
|
boolean update = (identity != null);
|
||||||
if (identity == null)
|
if (identity == null)
|
||||||
identity = new EntityIdentity();
|
identity = new EntityIdentity();
|
||||||
|
@ -467,7 +472,8 @@ public class FragmentIdentity extends FragmentEx {
|
||||||
db.endTransaction();
|
db.endTransaction();
|
||||||
}
|
}
|
||||||
|
|
||||||
ServiceSynchronize.reload(getContext(), "save identity");
|
if (check)
|
||||||
|
ServiceSynchronize.reload(getContext(), "save identity");
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue