mirror of
https://github.com/M66B/FairEmail.git
synced 2025-12-28 16:40:53 +01:00
Added message about no IDLE support
This commit is contained in:
@@ -117,6 +117,8 @@ public class FragmentAccount extends FragmentEx {
|
||||
|
||||
private ProgressBar pbCheck;
|
||||
|
||||
private TextView tvIdle;
|
||||
|
||||
private ArrayAdapter<EntityFolder> adapter;
|
||||
private Spinner spDrafts;
|
||||
private Spinner spSent;
|
||||
@@ -183,6 +185,8 @@ public class FragmentAccount extends FragmentEx {
|
||||
btnCheck = view.findViewById(R.id.btnCheck);
|
||||
pbCheck = view.findViewById(R.id.pbCheck);
|
||||
|
||||
tvIdle = view.findViewById(R.id.tvIdle);
|
||||
|
||||
spDrafts = view.findViewById(R.id.spDrafts);
|
||||
spSent = view.findViewById(R.id.spSent);
|
||||
spAll = view.findViewById(R.id.spAll);
|
||||
@@ -217,6 +221,7 @@ public class FragmentAccount extends FragmentEx {
|
||||
grpAdvanced.setVisibility(View.GONE);
|
||||
|
||||
btnCheck.setVisibility(position > 0 ? View.VISIBLE : View.GONE);
|
||||
tvIdle.setVisibility(View.GONE);
|
||||
grpFolders.setVisibility(View.GONE);
|
||||
btnSave.setVisibility(View.GONE);
|
||||
|
||||
@@ -385,6 +390,7 @@ public class FragmentAccount extends FragmentEx {
|
||||
btnAuthorize.setEnabled(false);
|
||||
btnCheck.setEnabled(false);
|
||||
pbCheck.setVisibility(View.VISIBLE);
|
||||
tvIdle.setVisibility(View.GONE);
|
||||
grpFolders.setVisibility(View.GONE);
|
||||
btnSave.setVisibility(View.GONE);
|
||||
|
||||
@@ -398,9 +404,9 @@ public class FragmentAccount extends FragmentEx {
|
||||
args.putString("password", tilPassword.getEditText().getText().toString());
|
||||
args.putInt("auth_type", authorized == null ? Helper.AUTH_TYPE_PASSWORD : provider.getAuthType());
|
||||
|
||||
new SimpleTask<List<EntityFolder>>() {
|
||||
new SimpleTask<CheckResult>() {
|
||||
@Override
|
||||
protected List<EntityFolder> onLoad(Context context, Bundle args) throws Throwable {
|
||||
protected CheckResult onLoad(Context context, Bundle args) throws Throwable {
|
||||
long id = args.getLong("id");
|
||||
String host = args.getString("host");
|
||||
String port = args.getString("port");
|
||||
@@ -417,8 +423,10 @@ public class FragmentAccount extends FragmentEx {
|
||||
if (TextUtils.isEmpty(password))
|
||||
throw new Throwable(getContext().getString(R.string.title_no_password));
|
||||
|
||||
CheckResult result = new CheckResult();
|
||||
result.folders = new ArrayList<>();
|
||||
|
||||
// Check IMAP server / get folders
|
||||
List<EntityFolder> folders = new ArrayList<>();
|
||||
Properties props = MessageHelper.getSessionProperties(auth_type);
|
||||
Session isession = Session.getInstance(props, null);
|
||||
isession.setDebug(true);
|
||||
@@ -438,6 +446,8 @@ public class FragmentAccount extends FragmentEx {
|
||||
if (!istore.hasCapability("UIDPLUS"))
|
||||
throw new MessagingException(getContext().getString(R.string.title_no_uidplus));
|
||||
|
||||
result.idle = istore.hasCapability("IDLE");
|
||||
|
||||
for (Folder ifolder : istore.getDefaultFolder().list("*")) {
|
||||
String type = null;
|
||||
|
||||
@@ -478,7 +488,7 @@ public class FragmentAccount extends FragmentEx {
|
||||
folder.synchronize = (type != null && EntityFolder.SYSTEM_FOLDER_SYNC.contains(type));
|
||||
folder.after = (type == null ? EntityFolder.DEFAULT_USER_SYNC : EntityFolder.DEFAULT_SYSTEM_SYNC);
|
||||
}
|
||||
folders.add(folder);
|
||||
result.folders.add(folder);
|
||||
|
||||
Log.i(Helper.TAG, folder.name + " id=" + folder.id +
|
||||
" type=" + folder.type + " attr=" + TextUtils.join(",", attrs));
|
||||
@@ -490,17 +500,19 @@ public class FragmentAccount extends FragmentEx {
|
||||
istore.close();
|
||||
}
|
||||
|
||||
return folders;
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onLoaded(Bundle args, List<EntityFolder> folders) {
|
||||
protected void onLoaded(Bundle args, CheckResult result) {
|
||||
Helper.setViewsEnabled(view, true);
|
||||
btnAuthorize.setEnabled(true);
|
||||
btnCheck.setEnabled(true);
|
||||
pbCheck.setVisibility(View.GONE);
|
||||
|
||||
setFolders(folders);
|
||||
tvIdle.setVisibility(result.idle ? View.GONE : View.VISIBLE);
|
||||
|
||||
setFolders(result.folders);
|
||||
|
||||
new Handler().post(new Runnable() {
|
||||
@Override
|
||||
@@ -809,6 +821,8 @@ public class FragmentAccount extends FragmentEx {
|
||||
|
||||
btnAdvanced.setVisibility(View.GONE);
|
||||
|
||||
tvIdle.setVisibility(View.GONE);
|
||||
|
||||
btnCheck.setVisibility(View.GONE);
|
||||
pbCheck.setVisibility(View.GONE);
|
||||
|
||||
@@ -1076,4 +1090,9 @@ public class FragmentAccount extends FragmentEx {
|
||||
grpFolders.setVisibility(View.VISIBLE);
|
||||
btnSave.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
private class CheckResult {
|
||||
List<EntityFolder> folders;
|
||||
boolean idle;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user