From 9a1a043bd93907a3329f44d1a23566d5509d5c58 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 15 Jan 2019 13:31:31 +0000 Subject: [PATCH] Refactoring --- .../eu/faircode/email/AdapterMessage.java | 7 +- .../eu/faircode/email/DialogDuration.java | 81 ++++++++++++++ .../eu/faircode/email/FragmentCompose.java | 100 +++++------------- .../eu/faircode/email/FragmentMessages.java | 60 ++--------- 4 files changed, 120 insertions(+), 128 deletions(-) create mode 100644 app/src/main/java/eu/faircode/email/DialogDuration.java diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index b399ad75b5..c8461ea8bc 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -807,11 +807,8 @@ public class AdapterMessage extends RecyclerView.Adapter() { + @Override + protected Void onExecute(Context context, Bundle args) { + long id = args.getLong("id"); + Long wakeup = args.getLong("wakeup"); - new SimpleTask() { - @Override - protected Void onExecute(Context context, Bundle args) { - long id = args.getLong("id"); - Long wakeup = args.getLong("wakeup"); + DB db = DB.getInstance(context); + db.message().setMessageSnoozed(id, wakeup); - DB db = DB.getInstance(context); - db.message().setMessageSnoozed(id, wakeup); + return null; + } - return null; - } + @Override + protected void onExecuted(Bundle args, Void data) { + onAction(R.id.action_send); + } - @Override - protected void onExecuted(Bundle args, Void data) { - onAction(R.id.action_send); - } + @Override + protected void onException(Bundle args, Throwable ex) { + Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); + } + }.execute(FragmentCompose.this, args, "compose:send:after"); + } + + @Override + public void onDismiss() { - @Override - protected void onException(Bundle args, Throwable ex) { - Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); - } - }.execute(FragmentCompose.this, args, "compose:send:after"); - } else { - FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); - fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro"); - fragmentTransaction.commit(); - } } - }) - .show(); + }); } private void onMenuZoom() { diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index aca2fd3a54..b259616af8 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -44,7 +44,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.ImageButton; -import android.widget.NumberPicker; import android.widget.TextView; import com.google.android.material.bottomnavigation.BottomNavigationView; @@ -52,10 +51,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.snackbar.Snackbar; import java.io.Serializable; -import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -1198,58 +1194,21 @@ public class FragmentMessages extends FragmentEx { } private void onActionSnooze() { - final View dview = LayoutInflater.from(getContext()).inflate(R.layout.dialog_duration, null); - final NumberPicker npHours = dview.findViewById(R.id.npHours); - final NumberPicker npDays = dview.findViewById(R.id.npDays); - final TextView tvTime = dview.findViewById(R.id.tvTime); - final long HOUR_MS = 3600L * 1000L; - final long now = new Date().getTime() / HOUR_MS * HOUR_MS; - - npHours.setMinValue(0); - npHours.setMaxValue(24); - - npDays.setMinValue(0); - npDays.setMaxValue(90); - - NumberPicker.OnValueChangeListener valueChanged = new NumberPicker.OnValueChangeListener() { - @Override - public void onValueChange(NumberPicker picker, int oldVal, int newVal) { - int hours = npHours.getValue(); - int days = npDays.getValue(); - long duration = (hours + days * 24) * HOUR_MS; - long time = now + duration; - DateFormat df = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.MEDIUM, SimpleDateFormat.SHORT); - tvTime.setText(new SimpleDateFormat("E").format(time) + " " + df.format(time)); - tvTime.setVisibility(duration == 0 ? View.INVISIBLE : View.VISIBLE); - } - }; - - npHours.setOnValueChangedListener(valueChanged); - npDays.setOnValueChangedListener(valueChanged); - valueChanged.onValueChange(null, 0, 0); - - new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner()) - .setTitle(R.string.title_snooze) - .setView(dview) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + DialogDuration.show(getContext(), getViewLifecycleOwner(), R.string.title_snooze, + new DialogDuration.IDialogDuration() { @Override - public void onClick(DialogInterface dialog, int which) { + public void onDurationSelected(long duration, long time) { if (Helper.isPro(getContext())) { - int hours = npHours.getValue(); - int days = npDays.getValue(); - long duration = (hours + days * 24) * HOUR_MS; - long time = now + duration; - Bundle args = new Bundle(); args.putLongArray("ids", getSelection()); - args.putLong("wakeup", duration == 0 ? 0 : time); + args.putLong("wakeup", duration == 0 ? -1 : time); new SimpleTask() { @Override protected Void onExecute(Context context, Bundle args) { long[] ids = args.getLongArray("ids"); Long wakeup = args.getLong("wakeup"); - if (wakeup == 0) + if (wakeup < 0) wakeup = null; DB db = DB.getInstance(context); @@ -1279,14 +1238,12 @@ public class FragmentMessages extends FragmentEx { fragmentTransaction.commit(); } } - }) - .setOnDismissListener(new DialogInterface.OnDismissListener() { + @Override - public void onDismiss(DialogInterface dialog) { + public void onDismiss() { selectionTracker.clearSelection(); } - }) - .show(); + }); } }); @@ -1992,7 +1949,6 @@ public class FragmentMessages extends FragmentEx { } }.execute(FragmentMessages.this, args, "messages:navigation"); } - } Log.i("Submit messages=" + messages.size());