package com.door43.translationstudio.dialogs; import android.app.DialogFragment; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import com.door43.translationstudio.R; /** * Created by joel on 1/30/2015. */ public class NoteMarkerDialog extends DialogFragment { private OnClickListener mListener; private CharSequence mPassage; private CharSequence mNotes; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getDialog().setTitle(R.string.title_note); View v = inflater.inflate(R.layout.dialog_note_marker, container, false); EditText passageText = (EditText)v.findViewById(R.id.passageText); EditText noteText = (EditText)v.findViewById(R.id.noteText); Button okButton = (Button)v.findViewById(R.id.okButton); Button deleteButton = (Button)v.findViewById(R.id.delete_button); Button cancelButton = (Button)v.findViewById(R.id.cancelButton); // load parameters Bundle args = getArguments(); if(args != null) { mPassage = args.getCharSequence("passage"); mNotes = args.getCharSequence("notes"); } // restore state if(savedInstanceState != null) { mPassage = savedInstanceState.getString("passage"); mNotes = savedInstanceState.getString("notes"); } passageText.setText(mPassage); noteText.setText(mNotes); // watch text change passageText.addTextChangedListener(new TextWatcher() { public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {} public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {} @Override public void afterTextChanged(Editable editable) { mPassage = editable.toString(); } }); noteText.addTextChangedListener(new TextWatcher() { public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {} public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {} @Override public void afterTextChanged(Editable editable) { mNotes = editable.toString(); } }); cancelButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dismiss(); } }); deleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(mListener != null) { mListener.onClick(mPassage, ""); } dismiss(); } }); okButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(mListener != null) { mListener.onClick(mPassage, mNotes); } dismiss(); } }); return v; } @Override public void onSaveInstanceState(Bundle outState) { outState.putCharSequence("passage", mPassage); outState.putCharSequence("notes", mNotes); super.onSaveInstanceState(outState); } /** * Sets the listener that will be triggered when the dialog is submitted. * @param listener */ public void setOkListener(OnClickListener listener) { mListener = listener; } public static interface OnClickListener { public void onClick(CharSequence passage, CharSequence notes); } }