package se.chalmers.pd.device; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.widget.EditText; public class DialogFactory { public interface Callback { public void onConnectDialogAnswer(boolean result, String newBrokerUrl); } /** * Creates a Dialog with a specified message and allows the user to connect * to the broker by inputting the URL. Uses callback to notify the main activity. * @param context * @param callback * @param url the url to show as pre filled * @param messageStringId the message to show * @return */ public static AlertDialog buildConnectToUrlDialog(Context context, final Callback callback, String url, int messageStringId) { final EditText input = new EditText(context); input.setHint(context.getString(R.string.broker_url_pattern)); input.setText(url); AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context) .setView(input) .setTitle(context.getString(R.string.connect_title)) .setMessage(context.getString(messageStringId)) .setCancelable(false) .setPositiveButton(context.getString(R.string.connect), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { callback.onConnectDialogAnswer(true, input.getText().toString()); } }) .setNegativeButton(context.getString(R.string.cancel), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { callback.onConnectDialogAnswer(false, input.getText().toString()); dialog.cancel(); } }); return alertDialogBuilder.create(); } }