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>() {
|
||||
@Override
|
||||
protected Void onLoad(Context context, Bundle args) throws Throwable {
|
||||
long id = args.getLong("id");
|
||||
String host = args.getString("host");
|
||||
boolean starttls = args.getBoolean("starttls");
|
||||
boolean insecure = args.getBoolean("insecure");
|
||||
|
@ -665,11 +666,19 @@ public class FragmentAccount extends FragmentEx {
|
|||
interval = "19";
|
||||
if (synchronize && drafts == null)
|
||||
throw new Throwable(getContext().getString(R.string.title_no_drafts));
|
||||
|
||||
if (Color.TRANSPARENT == color)
|
||||
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
|
||||
if (synchronize) {
|
||||
if (check) {
|
||||
Session isession = Session.getInstance(MessageHelper.getSessionProperties(auth_type, insecure), null);
|
||||
isession.setDebug(true);
|
||||
IMAPStore istore = null;
|
||||
|
@ -696,11 +705,9 @@ public class FragmentAccount extends FragmentEx {
|
|||
if (TextUtils.isEmpty(name))
|
||||
name = user;
|
||||
|
||||
DB db = DB.getInstance(getContext());
|
||||
try {
|
||||
db.beginTransaction();
|
||||
|
||||
EntityAccount account = db.account().getAccount(args.getLong("id"));
|
||||
boolean update = (account != null);
|
||||
if (account == null)
|
||||
account = new EntityAccount();
|
||||
|
@ -785,7 +792,8 @@ public class FragmentAccount extends FragmentEx {
|
|||
db.endTransaction();
|
||||
}
|
||||
|
||||
ServiceSynchronize.reload(getContext(), "save account");
|
||||
if (check)
|
||||
ServiceSynchronize.reload(getContext(), "save account");
|
||||
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -406,8 +406,15 @@ public class FragmentIdentity extends FragmentEx {
|
|||
if (Color.TRANSPARENT == color)
|
||||
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
|
||||
if (synchronize) {
|
||||
if (check) {
|
||||
Properties props = MessageHelper.getSessionProperties(auth_type, insecure);
|
||||
Session isession = Session.getInstance(props, null);
|
||||
isession.setDebug(true);
|
||||
|
@ -427,11 +434,9 @@ public class FragmentIdentity extends FragmentEx {
|
|||
}
|
||||
}
|
||||
|
||||
DB db = DB.getInstance(getContext());
|
||||
try {
|
||||
db.beginTransaction();
|
||||
|
||||
EntityIdentity identity = db.identity().getIdentity(id);
|
||||
boolean update = (identity != null);
|
||||
if (identity == null)
|
||||
identity = new EntityIdentity();
|
||||
|
@ -467,7 +472,8 @@ public class FragmentIdentity extends FragmentEx {
|
|||
db.endTransaction();
|
||||
}
|
||||
|
||||
ServiceSynchronize.reload(getContext(), "save identity");
|
||||
if (check)
|
||||
ServiceSynchronize.reload(getContext(), "save identity");
|
||||
|
||||
return null;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue