package ru.ltst.u2020mvp.ui.bugreport; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.view.LayoutInflater; import ru.ltst.u2020mvp.R; public final class BugReportDialog extends AlertDialog implements BugReportView.ReportDetailsListener { public interface ReportListener { void onBugReportSubmit(BugReportView.Report report); } private ReportListener listener; public BugReportDialog(Context context) { super(context); final BugReportView view = (BugReportView) LayoutInflater.from(context).inflate(R.layout.bugreport_view, null); view.setBugReportListener(this); setTitle("Report a bug"); setView(view); setButton(Dialog.BUTTON_NEGATIVE, "Cancel", (OnClickListener) null); setButton(Dialog.BUTTON_POSITIVE, "Submit", (dialog, which) -> { if (listener != null) { listener.onBugReportSubmit(view.getReport()); } }); } public void setReportListener(ReportListener listener) { this.listener = listener; } @Override protected void onStart() { getButton(Dialog.BUTTON_POSITIVE).setEnabled(false); } @Override public void onStateChanged(boolean valid) { getButton(Dialog.BUTTON_POSITIVE).setEnabled(valid); } }