From dc574e466eadb92a5db5fa81829b567326502b3f Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 8 Aug 2020 19:02:05 +0200 Subject: [PATCH] Improved move ask dialog --- .../eu/faircode/email/FragmentMessages.java | 57 +++++++++++++-- app/src/main/res/layout/dialog_ask_move.xml | 70 +++++++++++++++++++ app/src/main/res/values-nl-rNL/strings.xml | 4 +- app/src/main/res/values/strings.xml | 4 +- 4 files changed, 124 insertions(+), 11 deletions(-) create mode 100644 app/src/main/res/layout/dialog_ask_move.xml diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index e0fefecbdb..fb390b9886 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -4876,15 +4876,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. } Bundle aargs = new Bundle(); - aargs.putString("question", getResources() - .getQuantityString(R.plurals.title_moving_messages, - result.size(), result.size(), - getDisplay(result, false), - getDisplay(result, true))); aargs.putString("notagain", key); aargs.putParcelableArrayList("result", result); - FragmentDialogAsk ask = new FragmentDialogAsk(); + FragmentMoveAsk ask = new FragmentMoveAsk(); ask.setArguments(aargs); ask.setTargetFragment(FragmentMessages.this, REQUEST_ASKED_MOVE); ask.show(getParentFragmentManager(), "messages:move"); @@ -5078,7 +5073,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. }.execute(this, args, "undo:hide"); } - private String getDisplay(ArrayList result, boolean dest) { + private static String getDisplay(ArrayList result, boolean dest) { boolean across = false; for (MessageTarget target : result) if (target.isAccross()) @@ -7534,4 +7529,52 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. .create(); } } + + public static class FragmentMoveAsk extends FragmentDialogBase { + @NonNull + @Override + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + String notagain = getArguments().getString("notagain"); + ArrayList result = getArguments().getParcelableArrayList("result"); + + View dview = LayoutInflater.from(getContext()).inflate(R.layout.dialog_ask_move, null); + TextView tvMessages = dview.findViewById(R.id.tvMessages); + TextView tvSourceFolders = dview.findViewById(R.id.tvSourceFolders); + TextView tvTargetFolders = dview.findViewById(R.id.tvTargetFolders); + CheckBox cbNotAgain = dview.findViewById(R.id.cbNotAgain); + + String question = getResources() + .getQuantityString(R.plurals.title_moving_messages, + result.size(), result.size()); + + tvMessages.setText(question); + tvSourceFolders.setText(getDisplay(result, false)); + tvTargetFolders.setText(getDisplay(result, true)); + + if (notagain != null) + cbNotAgain.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + prefs.edit().putBoolean(notagain, isChecked).apply(); + } + }); + + return new AlertDialog.Builder(getContext()) + .setView(dview) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + sendResult(Activity.RESULT_OK); + } + }) + .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + sendResult(Activity.RESULT_CANCELED); + } + }) + .create(); + } + } } diff --git a/app/src/main/res/layout/dialog_ask_move.xml b/app/src/main/res/layout/dialog_ask_move.xml new file mode 100644 index 0000000000..4303345a16 --- /dev/null +++ b/app/src/main/res/layout/dialog_ask_move.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index cf8b475c4f..c06ba25d09 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -55,8 +55,8 @@ %1$d gesprekken geselecteerd - Één bericht verplaatsen van %2$s naar %3$s? - %1$d berichten verplaatsen van %2$s naar %3$s? + Één bericht verplaatsen? + %1$d berichten verplaatsen? Verwijder één bericht definitief? diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4c3ee03716..1812184a6f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -71,8 +71,8 @@ - Move %1$d message from %2$s to %3$s? - Move %1$d messages from %2$s to %3$s? + Move %1$d message? + Move %1$d messages?