package de.westnordost.streetcomplete.quests;
import android.app.Activity;
import android.app.DialogFragment;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import de.westnordost.streetcomplete.R;
public class LeaveNoteDialog extends DialogFragment
{
public static final String ARG_QUEST_TITLE = "questTitle";
private EditText noteInput;
private Button buttonOk;
private QuestAnswerComponent questAnswerComponent;
private String questTitle;
public LeaveNoteDialog()
{
super();
questAnswerComponent = new QuestAnswerComponent();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.leave_note, container, false);
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
Button buttonCancel = (Button) view.findViewById(R.id.buttonCancel);
buttonCancel.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
onClickCancel();
}
});
buttonOk = (Button) view.findViewById(R.id.buttonOk);
buttonOk.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
onClickOk();
}
});
noteInput = (EditText) view.findViewById(R.id.noteInput);
return view;
}
@Override public void onCreate(Bundle inState)
{
super.onCreate(inState);
questAnswerComponent.onCreate(getArguments());
questTitle = getArguments().getString(ARG_QUEST_TITLE);
}
@Override
public void onAttach(Context ctx)
{
super.onAttach(ctx);
questAnswerComponent.onAttach((OsmQuestAnswerListener) ctx);
}
@Override
public void onAttach(Activity activity)
{
super.onAttach(activity);
questAnswerComponent.onAttach((OsmQuestAnswerListener) activity);
}
private void onClickOk()
{
String inputText = noteInput.getText().toString().trim();
if(inputText.isEmpty())
{
noteInput.setError(getResources().getString(R.string.quest_generic_error_field_empty));
return;
}
String noteText;
if(questTitle != null)
{
noteText = String.format(
getResources().getString(R.string.quest_leave_new_note_in_response_to),
questTitle, inputText);
}
else
{
noteText = inputText;
}
questAnswerComponent.onLeaveNote(noteText);
dismiss();
}
private void onClickCancel()
{
questAnswerComponent.onSkippedQuest();
dismiss();
}
}