mirror of
https://github.com/M66B/FairEmail.git
synced 2025-02-21 21:57:19 +00:00
Move anywhere
This commit is contained in:
parent
6204cf8b7d
commit
b084626e38
1 changed files with 17 additions and 34 deletions
|
@ -411,7 +411,6 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
|||
boolean hasJunk = false;
|
||||
boolean hasTrash = false;
|
||||
boolean hasArchive = false;
|
||||
boolean hasUser = false;
|
||||
|
||||
if (folders != null)
|
||||
for (EntityFolder folder : folders) {
|
||||
|
@ -421,8 +420,6 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
|||
hasTrash = true;
|
||||
else if (EntityFolder.ARCHIVE.equals(folder.type))
|
||||
hasArchive = true;
|
||||
else if (EntityFolder.USER.equals(folder.type))
|
||||
hasUser = true;
|
||||
}
|
||||
|
||||
boolean inInbox = EntityFolder.INBOX.equals(message.folderType);
|
||||
|
@ -437,7 +434,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
|||
bnvActions.setTag(data);
|
||||
|
||||
bnvActions.getMenu().findItem(R.id.action_delete).setVisible((message.uid != null && hasTrash) || (inOutbox && !TextUtils.isEmpty(message.error)));
|
||||
bnvActions.getMenu().findItem(R.id.action_move).setVisible(message.uid != null && (!inInbox || hasUser));
|
||||
bnvActions.getMenu().findItem(R.id.action_move).setVisible(message.uid != null);
|
||||
bnvActions.getMenu().findItem(R.id.action_archive).setVisible(message.uid != null && !inArchive && hasArchive);
|
||||
|
||||
bnvActions.getMenu().findItem(R.id.action_reply).setEnabled(message.content);
|
||||
|
@ -1238,46 +1235,32 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
|||
new SimpleTask<List<EntityFolder>>() {
|
||||
@Override
|
||||
protected List<EntityFolder> onLoad(Context context, Bundle args) {
|
||||
EntityMessage message;
|
||||
List<EntityFolder> folders;
|
||||
|
||||
DB db = DB.getInstance(context);
|
||||
try {
|
||||
db.beginTransaction();
|
||||
|
||||
message = db.message().getMessage(args.getLong("id"));
|
||||
folders = db.folder().getUserFolders(message.account);
|
||||
|
||||
for (int i = 0; i < folders.size(); i++)
|
||||
if (folders.get(i).id.equals(message.folder)) {
|
||||
folders.remove(i);
|
||||
break;
|
||||
}
|
||||
|
||||
db.setTransactionSuccessful();
|
||||
} finally {
|
||||
db.endTransaction();
|
||||
}
|
||||
EntityMessage message = db.message().getMessage(args.getLong("id"));
|
||||
List<EntityFolder> folders = db.folder().getFolders(message.account);
|
||||
List<EntityFolder> targets = new ArrayList<>();
|
||||
for (EntityFolder f : folders)
|
||||
if (!f.id.equals(message.folder) && !EntityFolder.DRAFTS.equals(f.type))
|
||||
targets.add(f);
|
||||
|
||||
final Collator collator = Collator.getInstance(Locale.getDefault());
|
||||
collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc
|
||||
|
||||
Collections.sort(folders, new Comparator<EntityFolder>() {
|
||||
Collections.sort(targets, new Comparator<EntityFolder>() {
|
||||
@Override
|
||||
public int compare(EntityFolder f1, EntityFolder f2) {
|
||||
return collator.compare(f1.name, f2.name);
|
||||
int s = Integer.compare(
|
||||
EntityFolder.FOLDER_SORT_ORDER.indexOf(f1.type),
|
||||
EntityFolder.FOLDER_SORT_ORDER.indexOf(f2.type));
|
||||
if (s != 0)
|
||||
return s;
|
||||
return collator.compare(
|
||||
f1.name == null ? "" : f1.name,
|
||||
f2.name == null ? "" : f2.name);
|
||||
}
|
||||
});
|
||||
|
||||
EntityFolder sent = db.folder().getFolderByType(message.account, EntityFolder.SENT);
|
||||
if (sent != null && !message.folder.equals(sent.id))
|
||||
folders.add(0, sent);
|
||||
|
||||
EntityFolder inbox = db.folder().getFolderByType(message.account, EntityFolder.INBOX);
|
||||
if (inbox != null && !message.folder.equals(inbox.id))
|
||||
folders.add(0, inbox);
|
||||
|
||||
return folders;
|
||||
return targets;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue