package org.fdroid.fdroid.acra; import android.content.DialogInterface; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.widget.EditText; import org.acra.dialog.BaseCrashReportDialog; import org.fdroid.fdroid.R; public class CrashReportActivity extends BaseCrashReportDialog implements DialogInterface.OnDismissListener, DialogInterface.OnClickListener { private static final String STATE_COMMENT = "comment"; private EditText comment; @Override protected void init(Bundle savedInstanceState) { super.init(savedInstanceState); final AlertDialog dialog = new AlertDialog.Builder(this) .setTitle(R.string.crash_dialog_title) .setView(R.layout.crash_report_dialog) .setPositiveButton(R.string.ok, this) .setNegativeButton(R.string.cancel, this) .create(); dialog.setCanceledOnTouchOutside(false); dialog.setOnDismissListener(this); dialog.show(); comment = (EditText) dialog.findViewById(android.R.id.input); if (savedInstanceState != null) { comment.setText(savedInstanceState.getString(STATE_COMMENT)); } } @Override public void onDismiss(DialogInterface dialog) { finish(); } @Override public void onClick(DialogInterface dialog, int which) { if (which == DialogInterface.BUTTON_POSITIVE) { sendCrash(comment.getText().toString(), ""); } else { cancelReports(); } finish(); } @Override protected void onSaveInstanceState(Bundle outState) { outState.putString(STATE_COMMENT, comment.getText().toString()); super.onSaveInstanceState(outState); } }