Allow selecting inbox as swipe target

pull/159/head
M66B 5 years ago
parent 748f532a94
commit ebfa20b952

@ -1375,66 +1375,80 @@ public class FragmentAccount extends FragmentBase {
} }
private void setFolders(List<EntityFolder> _folders, EntityAccount account) { private void setFolders(List<EntityFolder> _folders, EntityAccount account) {
List<EntityFolder> folders = new ArrayList<>(); {
for (EntityFolder folder : _folders) List<EntityFolder> folders = new ArrayList<>();
if (!EntityFolder.INBOX.equals(folder.type))
folders.add(folder); EntityFolder none = new EntityFolder();
none.id = 0L;
EntityFolder none = new EntityFolder(); none.name = "-";
none.id = 0L; folders.add(none);
none.name = "-";
folders.add(0, none); for (EntityFolder folder : _folders)
if (!EntityFolder.INBOX.equals(folder.type))
adapter.clear(); folders.add(folder);
adapter.addAll(folders);
adapter.clear();
for (int pos = 0; pos < folders.size(); pos++) { adapter.addAll(folders);
EntityFolder folder = folders.get(pos);
for (int pos = 0; pos < folders.size(); pos++) {
if (EntityFolder.DRAFTS.equals(folder.type)) EntityFolder folder = folders.get(pos);
spDrafts.setSelection(pos);
else if (EntityFolder.SENT.equals(folder.type)) if (EntityFolder.DRAFTS.equals(folder.type))
spSent.setSelection(pos); spDrafts.setSelection(pos);
else if (EntityFolder.ARCHIVE.equals(folder.type)) else if (EntityFolder.SENT.equals(folder.type))
spArchive.setSelection(pos); spSent.setSelection(pos);
else if (EntityFolder.TRASH.equals(folder.type)) else if (EntityFolder.ARCHIVE.equals(folder.type))
spTrash.setSelection(pos); spArchive.setSelection(pos);
else if (EntityFolder.JUNK.equals(folder.type)) else if (EntityFolder.TRASH.equals(folder.type))
spJunk.setSelection(pos); spTrash.setSelection(pos);
else if (EntityFolder.JUNK.equals(folder.type))
spJunk.setSelection(pos);
}
} }
EntityFolder ask = new EntityFolder(); {
ask.id = SWIPE_ACTION_ASK; List<EntityFolder> folders = new ArrayList<>();
ask.name = getString(R.string.title_ask_what);
folders.add(1, ask);
EntityFolder seen = new EntityFolder(); EntityFolder none = new EntityFolder();
seen.id = SWIPE_ACTION_SEEN; none.id = 0L;
seen.name = getString(R.string.title_seen); none.name = "-";
folders.add(1, seen); folders.add(none);
adapterSwipe.clear(); EntityFolder ask = new EntityFolder();
adapterSwipe.addAll(folders); ask.id = SWIPE_ACTION_ASK;
ask.name = getString(R.string.title_ask_what);
folders.add(ask);
Long left = (account == null ? null : account.swipe_left); EntityFolder seen = new EntityFolder();
Long right = (account == null ? null : account.swipe_right); seen.id = SWIPE_ACTION_SEEN;
seen.name = getString(R.string.title_seen);
folders.add(seen);
String leftDefault = EntityFolder.TRASH; folders.addAll(_folders);
String rightDefault = EntityFolder.TRASH;
for (EntityFolder folder : folders) adapterSwipe.clear();
if (EntityFolder.ARCHIVE.equals(folder.type)) { adapterSwipe.addAll(folders);
rightDefault = folder.type;
break; Long left = (account == null ? null : account.swipe_left);
} Long right = (account == null ? null : account.swipe_right);
for (int pos = 0; pos < folders.size(); pos++) { String leftDefault = EntityFolder.TRASH;
EntityFolder folder = folders.get(pos); String rightDefault = EntityFolder.TRASH;
for (EntityFolder folder : folders)
if (EntityFolder.ARCHIVE.equals(folder.type)) {
rightDefault = folder.type;
break;
}
if (left == null ? (account == null && leftDefault.equals(folder.type)) : left.equals(folder.id)) for (int pos = 0; pos < folders.size(); pos++) {
spLeft.setSelection(pos); EntityFolder folder = folders.get(pos);
if (right == null ? (account == null && rightDefault.equals(folder.type)) : right.equals(folder.id)) if (left == null ? (account == null && leftDefault.equals(folder.type)) : left.equals(folder.id))
spRight.setSelection(pos); spLeft.setSelection(pos);
if (right == null ? (account == null && rightDefault.equals(folder.type)) : right.equals(folder.id))
spRight.setSelection(pos);
}
} }
grpFolders.setVisibility(_folders.size() > 1 ? View.VISIBLE : View.GONE); grpFolders.setVisibility(_folders.size() > 1 ? View.VISIBLE : View.GONE);

Loading…
Cancel
Save