package fi.bitrite.android.ws.activity;
import android.app.Activity;
import android.support.v7.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import fi.bitrite.android.ws.R;
/**
* Helper class for progress dialogs.
*/
public class DialogHandler {
public static final int NO_DIALOG = 0;
public static final int TEXT_SEARCH = 1;
public static final int AUTHENTICATE = 2;
public static final int HOST_INFORMATION = 3;
public static final int HOST_CONTACT = 4;
public static final int MESSAGES = 5;
private static boolean inProgress = false;
private static int currentDialogId = NO_DIALOG;
private final Activity parentActivity;
private ProgressDialog progressDialog;
public DialogHandler(Activity parent) {
this.parentActivity = parent;
}
public void showDialog(int id) {
if (currentDialogId != id) {
currentDialogId = id;
inProgress = true;
parentActivity.showDialog(id);
}
}
public Dialog createDialog(int id, String message) {
progressDialog = new ProgressDialog(parentActivity);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage(message);
progressDialog.setCancelable(false);
return progressDialog;
}
private void showAlertDialog(String message) {
AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity);
builder .setMessage(message)
.setCancelable(true)
.setPositiveButton(parentActivity.getString(R.string.alert_neutral_button), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
}
public void alert(String message) {
showAlertDialog(message);
}
public void dismiss() {
inProgress = false;
try {
parentActivity.dismissDialog(currentDialogId);
} catch (IllegalArgumentException e) {
// OK - we assume it has been closed earlier
}
currentDialogId = NO_DIALOG;
}
public static boolean inProgress() {
return inProgress;
}
}