package org.solovyev.android.calculator; import android.app.Activity; import android.content.DialogInterface; import android.support.annotation.StringRes; import android.support.v7.app.AlertDialog; import javax.annotation.Nonnull; public class RemovalConfirmationDialog { @Nonnull private final Activity activity; @Nonnull private final String name; @Nonnull private final DialogInterface.OnClickListener listener; @StringRes private final int message; private RemovalConfirmationDialog(@Nonnull Activity activity, @Nonnull String name, @Nonnull DialogInterface.OnClickListener listener, int message) { this.activity = activity; this.name = name; this.listener = listener; this.message = message; } public static void showForFunction(@Nonnull Activity activity, @Nonnull String name, @Nonnull DialogInterface.OnClickListener listener) { new RemovalConfirmationDialog(activity, name, listener, R.string.function_removal_confirmation_question).show(); } public static void showForVariable(@Nonnull Activity activity, @Nonnull String name, @Nonnull DialogInterface.OnClickListener listener) { new RemovalConfirmationDialog(activity, name, listener, R.string.c_var_removal_confirmation_question).show(); } private void show() { new AlertDialog.Builder(activity, App.getTheme().alertDialogTheme) .setCancelable(true) .setTitle(R.string.removal_confirmation) .setMessage(activity.getString(message, name)) .setNegativeButton(R.string.cpp_no, null) .setPositiveButton(R.string.cpp_yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { listener.onClick(dialog, DialogInterface.BUTTON_POSITIVE); dialog.dismiss(); } }) .create().show(); } }