package org.droidplanner.android.dialogs;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import org.droidplanner.android.R;
/**
* Created by fhuya on 10/14/14.
*/
public class EditInputDialog extends YesNoDialog {
protected static final String EXTRA_HINT = "hint";
public interface Listener {
void onOk(final CharSequence input);
void onCancel();
}
public static EditInputDialog newInstance(Context context, String title,
String hint, Listener listener){
EditInputDialog dialog = new EditInputDialog();
Bundle bundle = new Bundle();
bundle.putString(EXTRA_TITLE, title);
if(hint == null){
hint = "";
}
bundle.putString(EXTRA_HINT, hint);
dialog.setArguments(bundle);
dialog.mListener = listener;
return dialog;
}
protected Listener mListener;
private EditText mEditText;
@Override
protected AlertDialog.Builder buildDialog(Bundle savedInstanceState){
final Bundle arguments = getArguments();
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
.setTitle(arguments.getString(EXTRA_TITLE))
.setView(generateContentView(savedInstanceState))
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
CharSequence input = mEditText.getText();
if(TextUtils.isEmpty(input)) input = mEditText.getHint();
mListener.onOk(input);
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mListener.onCancel();
}
});
return builder;
}
@Override
protected View generateContentView(Bundle savedInstanceState){
final View contentView = getActivity().getLayoutInflater().inflate(R.layout
.dialog_edit_input_content, null);
if(contentView == null)
return contentView;
mEditText = (EditText) contentView.findViewById(R.id.dialog_edit_text_content);
mEditText.setHint(getArguments().getString(EXTRA_HINT));
return contentView;
}
}