diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index d1968e806c..1bc2c85c87 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -431,6 +431,7 @@ public class FragmentMessages extends FragmentBase static final int REQUEST_BLOCK_SENDERS = 28; static final int REQUEST_CALENDAR = 29; static final int REQUEST_EDIT_SUBJECT = 30; + private static final int REQUEST_ANSWER_SETTINGS = 31; static final String ACTION_STORE_RAW = BuildConfig.APPLICATION_ID + ".STORE_RAW"; static final String ACTION_VERIFYDECRYPT = BuildConfig.APPLICATION_ID + ".VERIFYDECRYPT"; @@ -4146,6 +4147,7 @@ public class FragmentMessages extends FragmentBase private void onMenuAnswerSettings() { FragmentDialogAnswerButton fragment = new FragmentDialogAnswerButton(); + fragment.setTargetFragment(this, REQUEST_ANSWER_SETTINGS); fragment.show(getParentFragmentManager(), "dialog:answer"); } @@ -7604,9 +7606,10 @@ public class FragmentMessages extends FragmentBase long id = values.get("expanded").get(0); int pos = adapter.getPositionForKey(id); TupleMessageEx message = adapter.getItemAtPosition(pos); - if (message != null && !EntityFolder.OUTBOX.equals(message.folderType)) + if (message != null && !EntityFolder.OUTBOX.equals(message.folderType)) { + updateAnswerIcon(); fabReply.show(); - else + } else fabReply.hide(); } else fabReply.hide(); @@ -7616,6 +7619,39 @@ public class FragmentMessages extends FragmentBase ibUp.setVisibility(quick_scroll && expanded > 0 ? View.VISIBLE : View.GONE); } + private void updateAnswerIcon() { + if (!getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) + return; + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + String action = prefs.getString("answer_single", "menu"); + switch (action) { + case "reply": + fabReply.setImageResource(R.drawable.twotone_reply_24); + break; + case "reply_all": + fabReply.setImageResource(R.drawable.twotone_reply_all_24); + break; + case "list": + fabReply.setImageResource(R.drawable.twotone_reorder_24); + break; + case "forward": + fabReply.setImageResource(R.drawable.twotone_forward_24); + break; + case "resend": + fabReply.setImageResource(R.drawable.twotone_redo_24); + break; + case "editasnew": + fabReply.setImageResource(R.drawable.twotone_add_24); + break; + case "move": + fabReply.setImageResource(R.drawable.twotone_drive_file_move_24); + break; + default: + fabReply.setImageResource(R.drawable.twotone_reply_24_options); + } + } + private void handleExpand(long id) { SimpleTask taskExpand = new SimpleTask() { @Override @@ -8811,6 +8847,10 @@ public class FragmentMessages extends FragmentBase if (resultCode == RESULT_OK) onEditSubject(data.getBundleExtra("args")); break; + case REQUEST_ANSWER_SETTINGS: + if (resultCode == RESULT_OK) + updateAnswerIcon(); + break; } } catch (Throwable ex) { Log.e(ex); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index cf3949b112..eaf464c5b0 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptions.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java @@ -139,7 +139,7 @@ public class FragmentOptions extends FragmentBase { "subscriptions", "check_authentication", "check_tls", "check_reply_domain", "check_mx", "check_blocklist", "send_pending", - "startup", + "startup", "answer_single", "cards", "beige", "tabular_card_bg", "shadow_unread", "shadow_border", "shadow_highlight", "dividers", "portrait2", "portrait2c", "portrait_min_size", "landscape", "landscape_min_size", "column_width",