Added unexpected errors without reporting

pull/184/head
M66B 5 years ago
parent 6291aeba2e
commit 71ed6a62b5

@ -1836,7 +1836,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
at android.webkit.WebView.<init>(WebView.java:574) at android.webkit.WebView.<init>(WebView.java:574)
at android.webkit.WebView.<init>(WebView.java:564) at android.webkit.WebView.<init>(WebView.java:564)
*/ */
Log.unexpectedError(parentFragment.getParentFragmentManager(), ex); Log.unexpectedError(parentFragment.getParentFragmentManager(), ex, false);
return; return;
} }

@ -1020,10 +1020,15 @@ public class Log {
} }
static void unexpectedError(FragmentManager manager, Throwable ex) { static void unexpectedError(FragmentManager manager, Throwable ex) {
unexpectedError(manager, ex, true);
}
static void unexpectedError(FragmentManager manager, Throwable ex, boolean report) {
Log.e(ex); Log.e(ex);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable("ex", ex); args.putSerializable("ex", ex);
args.putBoolean("report", report);
FragmentDialogUnexpected fragment = new FragmentDialogUnexpected(); FragmentDialogUnexpected fragment = new FragmentDialogUnexpected();
fragment.setArguments(args); fragment.setArguments(args);
@ -1035,41 +1040,45 @@ public class Log {
@Override @Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
final Throwable ex = (Throwable) getArguments().getSerializable("ex"); final Throwable ex = (Throwable) getArguments().getSerializable("ex");
boolean report = getArguments().getBoolean("report", true);
return new AlertDialog.Builder(getContext()) AlertDialog.Builder builder = new AlertDialog.Builder(getContext())
.setTitle(R.string.title_unexpected_error) .setTitle(R.string.title_unexpected_error)
.setMessage(Log.formatThrowable(ex, false)) .setMessage(Log.formatThrowable(ex, false))
.setPositiveButton(android.R.string.cancel, null) .setPositiveButton(android.R.string.cancel, null);
.setNeutralButton(R.string.title_report, new DialogInterface.OnClickListener() {
@Override if (report)
public void onClick(DialogInterface dialog, int which) { builder.setNeutralButton(R.string.title_report, new DialogInterface.OnClickListener() {
// Dialog will be dismissed @Override
final Context context = getContext(); public void onClick(DialogInterface dialog, int which) {
// Dialog will be dismissed
new SimpleTask<Long>() { final Context context = getContext();
@Override
protected Long onExecute(Context context, Bundle args) throws Throwable { new SimpleTask<Long>() {
return Log.getDebugInfo(context, R.string.title_unexpected_info_remark, ex, null).id; @Override
} protected Long onExecute(Context context, Bundle args) throws Throwable {
return Log.getDebugInfo(context, R.string.title_unexpected_info_remark, ex, null).id;
@Override }
protected void onExecuted(Bundle args, Long id) {
context.startActivity(new Intent(context, ActivityCompose.class) @Override
.putExtra("action", "edit") protected void onExecuted(Bundle args, Long id) {
.putExtra("id", id)); context.startActivity(new Intent(context, ActivityCompose.class)
} .putExtra("action", "edit")
.putExtra("id", id));
@Override }
protected void onException(Bundle args, Throwable ex) {
if (ex instanceof IllegalArgumentException) @Override
ToastEx.makeText(context, ex.getMessage(), Toast.LENGTH_LONG).show(); protected void onException(Bundle args, Throwable ex) {
else if (ex instanceof IllegalArgumentException)
ToastEx.makeText(context, ex.toString(), Toast.LENGTH_LONG).show(); ToastEx.makeText(context, ex.getMessage(), Toast.LENGTH_LONG).show();
} else
}.execute(getContext(), getActivity(), new Bundle(), "error:unexpected"); ToastEx.makeText(context, ex.toString(), Toast.LENGTH_LONG).show();
} }
}) }.execute(getContext(), getActivity(), new Bundle(), "error:unexpected");
.create(); }
});
return builder.create();
} }
} }

Loading…
Cancel
Save