diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index da0aad2851..357edf563b 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -1687,41 +1687,59 @@ public class FragmentMessages extends FragmentBase } }); - ibMove.setOnClickListener(new View.OnClickListener() { + Runnable runMoveTo = new RunnableEx("moveto") { @Override - public void onClick(View v) { + protected void delegate() { MoreResult result = (MoreResult) cardMore.getTag(); if (result == null) return; - if (result.copyto != null) - onActionMoveSelectionAccount(result.copyto.id, false, result.folders); - else { - PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(v.getContext(), getViewLifecycleOwner(), ibMove); + PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(getContext(), getViewLifecycleOwner(), ibMove); - int order = 0; - for (EntityAccount account : result.imapAccounts) { - order++; - popupMenu.getMenu().add(Menu.NONE, order, order, account.name) - .setIntent(new Intent().putExtra("account", account.id)); + int order = 0; + for (EntityAccount account : result.imapAccounts) { + order++; + popupMenu.getMenu().add(Menu.NONE, order, order, account.name) + .setIntent(new Intent().putExtra("account", account.id)); + } + + popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem target) { + Intent intent = target.getIntent(); + if (intent == null) + return false; + + long account = intent.getLongExtra("account", -1); + onActionMoveSelectionAccount(account, false, result.folders); + + return true; } + }); - popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem target) { - Intent intent = target.getIntent(); - if (intent == null) - return false; + popupMenu.show(); + } + }; - long account = intent.getLongExtra("account", -1); - onActionMoveSelectionAccount(account, false, result.folders); + ibMove.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + MoreResult result = (MoreResult) cardMore.getTag(); + if (result == null) + return; - return true; - } - }); + if (result.copyto == null) + runMoveTo.run(); + else + onActionMoveSelectionAccount(result.copyto.id, false, result.folders); + } + }); - popupMenu.show(); - } + ibMove.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + runMoveTo.run(); + return true; } });