package de.westnordost.streetcomplete.quests;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import de.westnordost.streetcomplete.R;
/** Abstract base class for dialogs in which the user answers a quest with a form he has to fill
* out */
public abstract class AbstractQuestFormAnswerFragment extends AbstractQuestAnswerFragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View view = super.onCreateView(inflater, container, savedInstanceState);
View buttonPanel = setButtonsView(R.layout.quest_buttonpanel_ok);
Button buttonOk = (Button) buttonPanel.findViewById(R.id.buttonOk);
buttonOk.setOnClickListener(new View.OnClickListener()
{
@Override public void onClick(View v)
{
onClickOk();
}
});
return view;
}
/** Apply an answer given in the form with the "OK" button. Checks if the form has any changes
* first */
protected final void applyFormAnswer(Bundle data)
{
// each form should check this on its own, but in case it doesn't, this is the last chance
if(!hasChanges())
{
Toast.makeText(getActivity(), R.string.no_changes, Toast.LENGTH_SHORT).show();
return;
}
applyImmediateAnswer(data);
}
protected abstract void onClickOk();
public abstract boolean hasChanges();
}