package de.westnordost.streetcomplete.quests.roof_shape; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; import java.util.List; import de.westnordost.streetcomplete.R; import de.westnordost.streetcomplete.quests.ImageListQuestAnswerFragment; public class AddRoofShapeForm extends ImageListQuestAnswerFragment { protected static final int MORE_THAN_95_PERCENT_COVERED = 8; private static final OsmItem[] ROOF_SHAPES = new OsmItem[]{ new OsmItem("gabled", R.drawable.ic_roof_gabled), new OsmItem("hipped", R.drawable.ic_roof_hipped), new OsmItem("flat", R.drawable.ic_roof_flat), new OsmItem("pyramidal", R.drawable.ic_roof_pyramidal), new OsmItem("half-hipped", R.drawable.ic_roof_half_hipped), new OsmItem("skillion", R.drawable.ic_roof_skillion), new OsmItem("gambrel", R.drawable.ic_roof_gambrel), new OsmItem("round", R.drawable.ic_roof_round), new OsmItem("double_saltbox", R.drawable.ic_roof_double_saltbox), new OsmItem("saltbox", R.drawable.ic_roof_saltbox), new OsmItem("mansard", R.drawable.ic_roof_mansard), new OsmItem("dome", R.drawable.ic_roof_dome), new OsmItem("quadruple_saltbox", R.drawable.ic_roof_quadruple_saltbox), new OsmItem("round_gabled", R.drawable.ic_roof_round_gabled), new OsmItem("onion", R.drawable.ic_roof_onion), new OsmItem("cone", R.drawable.ic_roof_cone), }; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = super.onCreateView(inflater, container, savedInstanceState); setTitle(R.string.quest_roofShape_title); imageSelector.setCellLayout(R.layout.labeled_icon_select_cell); return view; } @Override protected int getMaxSelectableItems() { return 1; } @Override protected int getMaxNumberOfInitiallyShownItems() { return MORE_THAN_95_PERCENT_COVERED; } @Override protected OsmItem[] getItems() { return ROOF_SHAPES; } @Override protected List<Integer> getOtherAnswerResourceIds() { List<Integer> answers = super.getOtherAnswerResourceIds(); answers.add(R.string.quest_roofShape_answer_many); return answers; } @Override protected boolean onClickOtherAnswer(int itemResourceId) { if(super.onClickOtherAnswer(itemResourceId)) return true; if(itemResourceId == R.string.quest_roofShape_answer_many) { Bundle answer = new Bundle(); ArrayList<String> strings = new ArrayList<>(1); strings.add("many"); answer.putStringArrayList(OSM_VALUES, strings); applyImmediateAnswer(answer); return true; } return false; } }