package se.slide.timy; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.inputmethod.EditorInfo; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; public class InputDialog extends DialogFragment implements OnEditorActionListener { public static final String EXTRA_TITLE = "title"; public static final String EXTRA_CATEGORY_ID = "category_id"; public static final String EXTRA_CATEGORY_NAME = "category_name"; public static final int TYPE_PROJECT = 0; public static final int TYPE_CATEGORY = 1; private String mTitle = "About"; private EditText mInput; private int mCategoryId = 0; private String mCategoryName = ""; public interface EditNameDialogListener { void onFinishEditDialog(String text, int categoryId, int icon); } public InputDialog() { } public static final InputDialog newInstance(String title, int categoryId, String categoryName) { InputDialog fragment = new InputDialog(); Bundle bdl = new Bundle(2); bdl.putString(EXTRA_TITLE, title); bdl.putInt(EXTRA_CATEGORY_ID, categoryId); bdl.putString(EXTRA_CATEGORY_NAME, categoryName); fragment.setArguments(bdl); return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.input_dialog, container); Button btnOk = (Button) view.findViewById(R.id.btnOk); btnOk.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (mInput.getText() == null || mInput.getText().toString().trim().length() < 1) return; EditNameDialogListener activity = (EditNameDialogListener) getActivity(); activity.onFinishEditDialog(mInput.getText().toString(), mCategoryId, -1); dismiss(); } }); Button btnCancel = (Button) view.findViewById(R.id.btnCancel); btnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); mTitle = getArguments().getString(EXTRA_TITLE); mCategoryId = getArguments().getInt(EXTRA_CATEGORY_ID); mCategoryName = getArguments().getString(EXTRA_CATEGORY_NAME); getDialog().setTitle(mTitle); mInput = (EditText) view.findViewById(R.id.input); mInput.setHint(getString(R.string.hint_add_category)); mInput.setOnEditorActionListener(this); if (mCategoryName != null && mCategoryName.length() > 0) mInput.setText(mCategoryName); return view; } @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (EditorInfo.IME_ACTION_DONE == actionId) { // Return input text to activity EditNameDialogListener activity = (EditNameDialogListener) getActivity(); activity.onFinishEditDialog(mInput.getText().toString(), mCategoryId, -1); this.dismiss(); return true; } return false; } }