package de.westnordost.streetcomplete.quests; import android.os.Bundle; import de.westnordost.streetcomplete.data.QuestGroup; public class QuestAnswerComponent { private static final String ARG_QUEST_ID = "questId"; private static final String ARG_QUEST_GROUP = "questGroup"; private OsmQuestAnswerListener callbackListener; private long questId; private QuestGroup questGroup; public static Bundle createArguments(long questId, QuestGroup group) { Bundle args = new Bundle(); args.putLong(ARG_QUEST_ID, questId); args.putString(ARG_QUEST_GROUP, group.name()); return args; } public Bundle getArguments() { return createArguments(questId, questGroup); } public void onCreate(Bundle arguments) { if(arguments == null || arguments.getLong(ARG_QUEST_ID, -1) == -1 || arguments.getString(ARG_QUEST_GROUP, null) == null) { throw new IllegalStateException("Use QuestAnswerComponent.createArguments and pass the " + "created bundle as an argument."); } questId = arguments.getLong(ARG_QUEST_ID); questGroup = QuestGroup.valueOf(arguments.getString(ARG_QUEST_GROUP)); } public void onAttach(OsmQuestAnswerListener listener) { callbackListener = listener; } public void onAnswerQuest(Bundle answer) { callbackListener.onAnsweredQuest(questId, questGroup, answer); } public void onLeaveNote(String text) { callbackListener.onLeaveNote(questId, questGroup, text); } public void onSkippedQuest() { callbackListener.onSkippedQuest(questId, questGroup); } public long getQuestId() { return questId; } public QuestGroup getQuestGroup() { return questGroup; } }