diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 9bb865374d..d3a4eb33a7 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1002,10 +1002,6 @@ public class FragmentCompose extends FragmentEx { } private void onAction(int action) { - busy = true; - Helper.setViewsEnabled(view, false); - getActivity().invalidateOptionsMenu(); - EntityIdentity identity = (EntityIdentity) spIdentity.getSelectedItem(); Bundle args = new Bundle(); @@ -1602,6 +1598,20 @@ public class FragmentCompose extends FragmentEx { }; private SimpleTask actionLoader = new SimpleTask() { + @Override + protected void onInit(Bundle args) { + busy = true; + Helper.setViewsEnabled(view, false); + getActivity().invalidateOptionsMenu(); + } + + @Override + protected void onCleanup(Bundle args) { + busy = false; + Helper.setViewsEnabled(view, true); + getActivity().invalidateOptionsMenu(); + } + @Override protected EntityMessage onLoad(final Context context, Bundle args) throws Throwable { // Get data @@ -1807,10 +1817,6 @@ public class FragmentCompose extends FragmentEx { int action = args.getInt("action"); Log.i("Loaded action id=" + (draft == null ? null : draft.id) + " action=" + action); - busy = false; - Helper.setViewsEnabled(view, true); - getActivity().invalidateOptionsMenu(); - etTo.setText(MessageHelper.getFormattedAddresses(draft.to, true)); etCc.setText(MessageHelper.getFormattedAddresses(draft.cc, true)); etBcc.setText(MessageHelper.getFormattedAddresses(draft.bcc, true)); @@ -1833,10 +1839,6 @@ public class FragmentCompose extends FragmentEx { @Override protected void onException(Bundle args, Throwable ex) { - busy = false; - Helper.setViewsEnabled(view, true); - getActivity().invalidateOptionsMenu(); - if (ex instanceof MessageRemovedException) finish(); else if (ex instanceof IllegalArgumentException) diff --git a/app/src/main/java/eu/faircode/email/FragmentFolder.java b/app/src/main/java/eu/faircode/email/FragmentFolder.java index d9fc978ff5..6dd615beb5 100644 --- a/app/src/main/java/eu/faircode/email/FragmentFolder.java +++ b/app/src/main/java/eu/faircode/email/FragmentFolder.java @@ -126,10 +126,6 @@ public class FragmentFolder extends FragmentEx { btnSave.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Helper.setViewsEnabled(view, false); - btnSave.setEnabled(false); - pbSave.setVisibility(View.VISIBLE); - Bundle args = new Bundle(); args.putLong("id", id); args.putLong("account", account); @@ -147,6 +143,20 @@ public class FragmentFolder extends FragmentEx { : etKeepDays.getText().toString()); new SimpleTask() { + @Override + protected void onInit(Bundle args) { + Helper.setViewsEnabled(view, false); + btnSave.setEnabled(false); + pbSave.setVisibility(View.VISIBLE); + } + + @Override + protected void onCleanup(Bundle args) { + Helper.setViewsEnabled(view, true); + btnSave.setEnabled(true); + pbSave.setVisibility(View.GONE); + } + @Override protected Void onLoad(Context context, Bundle args) { long id = args.getLong("id"); @@ -244,10 +254,6 @@ public class FragmentFolder extends FragmentEx { @Override protected void onException(Bundle args, Throwable ex) { - Helper.setViewsEnabled(view, true); - btnSave.setEnabled(true); - pbSave.setVisibility(View.GONE); - if (ex instanceof IllegalArgumentException) Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show(); else