diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 6dfa19993c..97f2d50569 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -1189,7 +1189,7 @@ public class AdapterMessage extends RecyclerView.Adapter() { @Override - protected Void onExecute(Context context, Bundle args) throws Throwable { + protected Void onExecute(Context context, Bundle args) { long id = args.getLong("id"); DB db = DB.getInstance(context); @@ -1197,7 +1197,7 @@ public class AdapterMessage extends RecyclerView.Adapter>() { - @Override - protected List onExecute(Context context, Bundle args) { - return DB.getInstance(context).answer().getAnswers(); - } - - @Override - protected void onExecuted(Bundle args, List answers) { - if (answers == null || answers.size() == 0) { - Snackbar snackbar = Snackbar.make( - itemView, - context.getString(R.string.title_no_answers), - Snackbar.LENGTH_LONG); - snackbar.setAction(R.string.title_fix, new View.OnClickListener() { - @Override - public void onClick(View v) { - LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); - lbm.sendBroadcast(new Intent(ActivityView.ACTION_EDIT_ANSWERS)); - } - }); - snackbar.show(); - } else { - final Collator collator = Collator.getInstance(Locale.getDefault()); - collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc - - Collections.sort(answers, new Comparator() { - @Override - public int compare(EntityAnswer a1, EntityAnswer a2) { - return collator.compare(a1.name, a2.name); - } - }); - - View anchor = bnvActions.findViewById(R.id.action_more); - PopupMenu popupMenu = new PopupMenu(context, anchor); - - int order = 0; - for (EntityAnswer answer : answers) - popupMenu.getMenu().add(Menu.NONE, answer.id.intValue(), order++, answer.name); - - popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem target) { - if (Helper.isPro(context)) - context.startActivity(new Intent(context, ActivityCompose.class) - .putExtra("action", "reply") - .putExtra("reference", data.message.id) - .putExtra("answer", (long) target.getItemId())); - else { - LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); - lbm.sendBroadcast(new Intent(ActivityView.ACTION_SHOW_PRO)); - } - return true; - } - }); - - popupMenu.show(); - } - } - - @Override - protected void onException(Bundle args, Throwable ex) { - Helper.unexpectedError(context, owner, ex); - } - }.execute(context, owner, new Bundle(), "message:answer"); - } - private void onMenuUnseen(final ActionData data) { Bundle args = new Bundle(); args.putLong("id", data.message.id); @@ -2230,9 +2163,6 @@ public class AdapterMessage extends RecyclerView.Adapter>() { + @Override + protected List onExecute(Context context, Bundle args) { + return DB.getInstance(context).answer().getAnswers(); + } + + @Override + protected void onExecuted(Bundle args, List answers) { + if (answers == null || answers.size() == 0) { + Snackbar snackbar = Snackbar.make( + itemView, + context.getString(R.string.title_no_answers), + Snackbar.LENGTH_LONG); + snackbar.setAction(R.string.title_fix, new View.OnClickListener() { + @Override + public void onClick(View v) { + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); + lbm.sendBroadcast(new Intent(ActivityView.ACTION_EDIT_ANSWERS)); + } + }); + snackbar.show(); + } else { + final Collator collator = Collator.getInstance(Locale.getDefault()); + collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc + + Collections.sort(answers, new Comparator() { + @Override + public int compare(EntityAnswer a1, EntityAnswer a2) { + return collator.compare(a1.name, a2.name); + } + }); + + View anchor = bnvActions.findViewById(R.id.action_reply); + PopupMenu popupMenu = new PopupMenu(context, anchor); + + int order = 0; + for (EntityAnswer answer : answers) + popupMenu.getMenu().add(Menu.NONE, answer.id.intValue(), order++, answer.name); + + popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem target) { + if (Helper.isPro(context)) + context.startActivity(new Intent(context, ActivityCompose.class) + .putExtra("action", "reply") + .putExtra("reference", data.message.id) + .putExtra("answer", (long) target.getItemId())); + else { + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); + lbm.sendBroadcast(new Intent(ActivityView.ACTION_SHOW_PRO)); + } + return true; + } + }); + + popupMenu.show(); + } + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Helper.unexpectedError(context, owner, ex); + } + }.execute(context, owner, new Bundle(), "message:answer"); + } + ItemDetailsLookup.ItemDetails getItemDetails(@NonNull MotionEvent motionEvent) { return new ItemDetailsMessage(this); } diff --git a/app/src/main/res/menu/menu_message.xml b/app/src/main/res/menu/menu_message.xml index 0f4f64ed5e..850c503483 100644 --- a/app/src/main/res/menu/menu_message.xml +++ b/app/src/main/res/menu/menu_message.xml @@ -4,14 +4,6 @@ android:id="@+id/menu_forward" android:title="@string/title_forward" /> - - - - diff --git a/app/src/main/res/menu/menu_reply.xml b/app/src/main/res/menu/menu_reply.xml new file mode 100644 index 0000000000..196db6a4fe --- /dev/null +++ b/app/src/main/res/menu/menu_reply.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 38a0a1c88e..9768cc499c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -316,7 +316,6 @@ Add star Remove star Forward - Reply to all Create rule … Share Show headers @@ -338,6 +337,9 @@ Snooze … Archive Reply + Sender + All + Template Moving to %1$s Open with