Removed POP3 support

There are too many disadvantages likely resulting in too many support questions
This commit is contained in:
M66B
2019-02-11 21:46:12 +00:00
parent 144bd41170
commit 67b203ad3a
17 changed files with 132 additions and 510 deletions

View File

@@ -445,7 +445,6 @@ public class FragmentMessages extends FragmentBase {
new ItemTouchHelper(touchHelper).attachToRecyclerView(rvMessage);
selectionPredicate = new SelectionPredicateMessage(rvMessage);
selectionPredicate.setFolder(viewType == AdapterMessage.ViewType.FOLDER);
selectionTracker = new SelectionTracker.Builder<>(
"messages-selection",
@@ -930,18 +929,6 @@ public class FragmentMessages extends FragmentBase {
if (message == null)
continue;
EntityAccount account = db.account().getAccount(message.account);
if (account.pop) {
if (message.ui_seen)
result.seen = true;
else
result.unseen = true;
result.isTrash = true;
continue;
}
if (!fids.contains(message.folder))
fids.add(message.folder);
@@ -984,9 +971,6 @@ public class FragmentMessages extends FragmentBase {
if (result.hasTrash == null) result.hasTrash = false;
if (result.hasJunk == null) result.hasJunk = false;
if (fids.size() == 0) // POP
return result;
result.accounts = db.account().getAccounts(true);
final Collator collator = Collator.getInstance(Locale.getDefault());
@@ -1001,20 +985,19 @@ public class FragmentMessages extends FragmentBase {
}
});
for (EntityAccount account : result.accounts)
if (!account.pop) {
List<EntityFolder> targets = new ArrayList<>();
List<EntityFolder> folders = db.folder().getFolders(account.id);
for (EntityFolder target : folders)
if (!target.hide &&
!EntityFolder.ARCHIVE.equals(target.type) &&
!EntityFolder.TRASH.equals(target.type) &&
!EntityFolder.JUNK.equals(target.type) &&
(fids.size() != 1 || !fids.contains(target.id)))
targets.add(target);
EntityFolder.sort(context, targets);
result.targets.put(account, targets);
}
for (EntityAccount account : result.accounts) {
List<EntityFolder> targets = new ArrayList<>();
List<EntityFolder> folders = db.folder().getFolders(account.id);
for (EntityFolder target : folders)
if (!target.hide &&
!EntityFolder.ARCHIVE.equals(target.type) &&
!EntityFolder.TRASH.equals(target.type) &&
!EntityFolder.JUNK.equals(target.type) &&
(fids.size() != 1 || !fids.contains(target.id)))
targets.add(target);
EntityFolder.sort(context, targets);
result.targets.put(account, targets);
}
return result;
}
@@ -1030,9 +1013,9 @@ public class FragmentMessages extends FragmentBase {
popupMenu.getMenu().add(Menu.NONE, action_snooze, 3, R.string.title_snooze);
if (result.unflagged != null && result.unflagged)
if (result.unflagged)
popupMenu.getMenu().add(Menu.NONE, action_flag, 4, R.string.title_flag);
if (result.flagged != null && result.flagged)
if (result.flagged)
popupMenu.getMenu().add(Menu.NONE, action_unflag, 5, R.string.title_unflag);
if (result.hasArchive && !result.isArchive) // has archive and not is archive/drafts
@@ -1048,17 +1031,15 @@ public class FragmentMessages extends FragmentBase {
popupMenu.getMenu().add(Menu.NONE, action_junk, 9, R.string.title_spam);
int order = 11;
if (result.accounts != null)
for (EntityAccount account : result.accounts)
if (!account.pop) {
SubMenu smenu = popupMenu.getMenu()
.addSubMenu(Menu.NONE, 0, order++, getString(R.string.title_move_to, account.name));
int sorder = 1;
for (EntityFolder target : result.targets.get(account)) {
MenuItem item = smenu.add(Menu.NONE, action_move, sorder++, target.getDisplayName(getContext()));
item.setIntent(new Intent().putExtra("target", target.id));
}
}
for (EntityAccount account : result.accounts) {
SubMenu smenu = popupMenu.getMenu()
.addSubMenu(Menu.NONE, 0, order++, getString(R.string.title_move_to, account.name));
int sorder = 1;
for (EntityFolder target : result.targets.get(account)) {
MenuItem item = smenu.add(Menu.NONE, action_move, sorder++, target.getDisplayName(getContext()));
item.setIntent(new Intent().putExtra("target", target.id));
}
}
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
@@ -2219,9 +2200,8 @@ public class FragmentMessages extends FragmentBase {
EntityMessage message = db.message().getMessage(id);
if (message == null)
return null;
EntityAccount account = db.account().getAccount(message.account);
if (message.uid != null || account.pop) {
if (message.uid != null) {
if (!message.content)
EntityOperation.queue(context, db, message, EntityOperation.BODY);
if (!message.ui_seen)
@@ -2532,8 +2512,8 @@ public class FragmentMessages extends FragmentBase {
private class MoreResult {
boolean seen;
boolean unseen;
Boolean flagged;
Boolean unflagged;
boolean flagged;
boolean unflagged;
Boolean hasArchive;
Boolean hasTrash;
Boolean hasJunk;