From 53a71bd632391ae906e4ad250d81e12f6b003caf Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 1 Jul 2019 16:27:22 +0200 Subject: [PATCH] Simplification, dialog fragment for quick setup --- .../java/eu/faircode/email/ActivitySetup.java | 2 +- .../java/eu/faircode/email/ActivityView.java | 4 +- .../eu/faircode/email/AdapterMessage.java | 6 +-- .../eu/faircode/email/DialogFragmentEx.java | 27 ++++++++++ .../eu/faircode/email/FragmentAnswer.java | 2 +- .../eu/faircode/email/FragmentCompose.java | 54 ++----------------- .../eu/faircode/email/FragmentContacts.java | 2 +- .../eu/faircode/email/FragmentDialogAsk.java | 20 +------ .../email/FragmentDialogDuration.java | 21 +------- .../faircode/email/FragmentDialogFolder.java | 25 +-------- .../eu/faircode/email/FragmentIdentity.java | 20 +------ .../eu/faircode/email/FragmentMessages.java | 4 +- .../eu/faircode/email/FragmentOperations.java | 2 +- .../email/FragmentOptionsDisplay.java | 2 +- .../email/FragmentOptionsSynchronize.java | 2 +- .../eu/faircode/email/FragmentQuickSetup.java | 51 +++++++++++++----- .../java/eu/faircode/email/FragmentRule.java | 2 +- .../java/eu/faircode/email/FragmentSetup.java | 2 +- .../main/java/eu/faircode/email/Helper.java | 2 +- 19 files changed, 90 insertions(+), 160 deletions(-) create mode 100644 app/src/main/java/eu/faircode/email/DialogFragmentEx.java diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index 14a41d8554..8a12274f46 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -1021,7 +1021,7 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On return intent; } - public static class FragmentDialogPassword extends DialogFragment { + public static class FragmentDialogPassword extends DialogFragmentEx { private TextInputLayout etPassword1; private TextInputLayout etPassword2; diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 2ab676cabb..e89d11c78e 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -1051,7 +1051,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB return intent; } - public static class FragmentDialogFirst extends DialogFragment { + public static class FragmentDialogFirst extends DialogFragmentEx { @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { @@ -1068,7 +1068,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB } } - public static class FragmentDialogRate extends DialogFragment { + public static class FragmentDialogRate extends DialogFragmentEx { @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index dfe0646cec..0e39d79ef6 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -3493,7 +3493,7 @@ public class AdapterMessage extends RecyclerView.Adapter(); long account = args.getLong("account"); - AdapterFolder adapter = new AdapterFolder( - getContext(), getActivity(), + AdapterFolder adapter = new AdapterFolder(getContext(), getActivity(), account, false, new AdapterFolder.IFolderSelectedListener() { @Override public void onFolderSelected(TupleFolderEx folder) { @@ -108,21 +102,6 @@ public class FragmentDialogFolder extends DialogFragment { return new AlertDialog.Builder(getContext()) .setTitle(title) .setView(dview) - .setOnDismissListener(new DialogInterface.OnDismissListener() { - @Override - public void onDismiss(DialogInterface dialogInterface) { - sendResult(RESULT_CANCELED); - } - }) .create(); } - - private void sendResult(int result) { - Fragment target = getTargetFragment(); - if (target != null) { - Intent data = new Intent(); - data.putExtra("args", getArguments()); - target.onActivityResult(getTargetRequestCode(), result, data); - } - } } diff --git a/app/src/main/java/eu/faircode/email/FragmentIdentity.java b/app/src/main/java/eu/faircode/email/FragmentIdentity.java index 16c64b7ed9..8918bdc8dc 100644 --- a/app/src/main/java/eu/faircode/email/FragmentIdentity.java +++ b/app/src/main/java/eu/faircode/email/FragmentIdentity.java @@ -56,8 +56,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.constraintlayout.widget.Group; -import androidx.fragment.app.DialogFragment; -import androidx.fragment.app.Fragment; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import com.google.android.material.snackbar.Snackbar; @@ -75,7 +73,6 @@ import java.util.Properties; import javax.mail.Session; import javax.mail.Transport; -import static android.app.Activity.RESULT_CANCELED; import static android.app.Activity.RESULT_OK; import static com.google.android.material.textfield.TextInputLayout.END_ICON_NONE; import static com.google.android.material.textfield.TextInputLayout.END_ICON_PASSWORD_TOGGLE; @@ -1086,7 +1083,7 @@ public class FragmentIdentity extends FragmentBase { etSignature.setTag(html); } - public static class FragmentDialogHtml extends DialogFragment { + public static class FragmentDialogHtml extends DialogFragmentEx { private EditText etHtml; @Override @@ -1119,22 +1116,7 @@ public class FragmentIdentity extends FragmentBase { sendResult(RESULT_OK); } }) - .setOnDismissListener(new DialogInterface.OnDismissListener() { - @Override - public void onDismiss(DialogInterface dialogInterface) { - sendResult(RESULT_CANCELED); - } - }) .create(); } - - private void sendResult(int result) { - Fragment target = getTargetFragment(); - if (target != null) { - Intent data = new Intent(); - data.putExtra("args", getArguments()); - target.onActivityResult(getTargetRequestCode(), result, data); - } - } } } diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 9ec9c247ed..5f81a235d6 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -4314,7 +4314,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. }; } - public static class FragmentDialogReporting extends DialogFragment { + public static class FragmentDialogReporting extends DialogFragmentEx { @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { @@ -4361,7 +4361,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. } } - public static class FragmentDialogError extends DialogFragment { + public static class FragmentDialogError extends DialogFragmentEx { @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { diff --git a/app/src/main/java/eu/faircode/email/FragmentOperations.java b/app/src/main/java/eu/faircode/email/FragmentOperations.java index 5a1421faa1..0516b27296 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOperations.java +++ b/app/src/main/java/eu/faircode/email/FragmentOperations.java @@ -143,7 +143,7 @@ public class FragmentOperations extends FragmentBase { return intent; } - public static class DialogDelete extends DialogFragment { + public static class DialogDelete extends DialogFragmentEx { @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java index eefd562419..df645156c3 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java @@ -288,7 +288,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer swActionbar.setChecked(prefs.getBoolean("actionbar", true)); } - public static class FragmentDialogTheme extends DialogFragment { + public static class FragmentDialogTheme extends DialogFragmentEx { @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java b/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java index 0b90465e52..4fc86e58d0 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java @@ -260,7 +260,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr return Helper.getTimeInstance(context, SimpleDateFormat.SHORT).format(cal.getTime()); } - public static class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener { + public static class TimePickerFragment extends DialogFragmentEx implements TimePickerDialog.OnTimeSetListener { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { diff --git a/app/src/main/java/eu/faircode/email/FragmentQuickSetup.java b/app/src/main/java/eu/faircode/email/FragmentQuickSetup.java index d34e1fa032..3ac20282ca 100644 --- a/app/src/main/java/eu/faircode/email/FragmentQuickSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentQuickSetup.java @@ -19,8 +19,10 @@ package eu.faircode.email; Copyright 2018-2019 by Marcel Bokhorst (M66B) */ +import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; +import android.content.Intent; import android.content.pm.PackageManager; import android.os.Bundle; import android.text.TextUtils; @@ -40,6 +42,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; import androidx.constraintlayout.widget.Group; import com.google.android.material.snackbar.Snackbar; @@ -57,6 +60,8 @@ import javax.mail.Folder; import javax.mail.Session; import javax.mail.Transport; +import static android.app.Activity.RESULT_OK; + public class FragmentQuickSetup extends FragmentBase { private ViewGroup view; @@ -73,6 +78,8 @@ public class FragmentQuickSetup extends FragmentBase { private Button btnSave; private Group grpSetup; + private static final int REQUEST_DONE = 1; + @Override @Nullable public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { @@ -362,18 +369,11 @@ public class FragmentQuickSetup extends FragmentBase { tvSmtp.setText(result == null ? null : result.smtp_host + ":" + result.smtp_port + (result.smtp_starttls ? " starttls" : " ssl")); grpSetup.setVisibility(result == null ? View.GONE : View.VISIBLE); - } else - new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner()) - .setMessage(R.string.title_setup_quick_success) - .setPositiveButton(android.R.string.ok, null) - .setOnDismissListener(new DialogInterface.OnDismissListener() { - @Override - public void onDismiss(DialogInterface dialog) { - finish(); - } - }) - .create() - .show(); + } else { + FragmentDialogDone fragment = new FragmentDialogDone(); + fragment.setTargetFragment(FragmentQuickSetup.this, REQUEST_DONE); + fragment.show(getFragmentManager(), "quick:done"); + } } @Override @@ -392,4 +392,31 @@ public class FragmentQuickSetup extends FragmentBase { } }.execute(FragmentQuickSetup.this, args, "setup:quick"); } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + + switch (requestCode) { + case REQUEST_DONE: + finish(); + break; + } + } + + public static class FragmentDialogDone extends DialogFragmentEx { + @NonNull + @Override + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + return new AlertDialog.Builder(getContext()) + .setMessage(R.string.title_setup_quick_success) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + sendResult(RESULT_OK); + } + }) + .create(); + } + } } diff --git a/app/src/main/java/eu/faircode/email/FragmentRule.java b/app/src/main/java/eu/faircode/email/FragmentRule.java index de589e89e8..101864f7ad 100644 --- a/app/src/main/java/eu/faircode/email/FragmentRule.java +++ b/app/src/main/java/eu/faircode/email/FragmentRule.java @@ -868,7 +868,7 @@ public class FragmentRule extends FragmentBase { } } - public static class FragmentDialogCheck extends DialogFragment { + public static class FragmentDialogCheck extends DialogFragmentEx { @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java index 94d4ca38b1..cdf79e6568 100644 --- a/app/src/main/java/eu/faircode/email/FragmentSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java @@ -348,7 +348,7 @@ public class FragmentSetup extends FragmentBase { btnPermissions.setEnabled(!has); } - public static class FragmentDialogDoze extends DialogFragment { + public static class FragmentDialogDoze extends DialogFragmentEx { @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 2fc42e5d57..97ffbdf044 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -447,7 +447,7 @@ public class Helper { fragment.show(manager, "error:unexpected"); } - public static class FragmentDialogUnexpected extends DialogFragment { + public static class FragmentDialogUnexpected extends DialogFragmentEx { @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {