package com.kth.baasio.helpcenter.ui.dialog;
import com.actionbarsherlock.app.SherlockDialogFragment;
import com.kth.baasio.helpcenter.R;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
public class DefaultDialogFragment extends SherlockDialogFragment {
private String mBody;
private String mTitle;
private boolean hasNegativeButton = true;
public static DefaultDialogFragment newInstance() {
DefaultDialogFragment frag = new DefaultDialogFragment();
return frag;
}
public void setTitle(String title) {
this.mTitle = title;
}
public void setBody(String body) {
this.mBody = body;
}
public void setNeedNegativeButton(boolean need) {
hasNegativeButton = need;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
setStyle(SherlockDialogFragment.STYLE_NORMAL, R.style.Theme_Sherlock_Light_Dialog);
AlertDialog dialog = null;
if (hasNegativeButton) {
dialog = new AlertDialog.Builder(getActivity())
.setTitle(mTitle)
.setMessage(mBody)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (mListener != null) {
mListener.onPositiveButtonSelected(getTag());
}
dialog.dismiss();
}
})
.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (mListener != null) {
mListener.onNegativeButtonSelected(getTag());
}
dialog.dismiss();
}
}).create();
} else {
dialog = new AlertDialog.Builder(getActivity()).setTitle(mTitle).setMessage(mBody)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (mListener != null) {
mListener.onPositiveButtonSelected(getTag());
}
dialog.dismiss();
}
}).create();
}
return dialog;
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
if (mListener != null) {
mListener.onDismiss(getTag(), dialog);
}
}
private DialogResultListener mListener;
public interface DialogResultListener {
public boolean onPositiveButtonSelected(String tag);
public boolean onNegativeButtonSelected(String tag);
public boolean onDismiss(String tag, DialogInterface dialog);
}
public void setDialogResultListener(DialogResultListener listener) {
mListener = listener;
}
}