diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 55f4c85..cd14675 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -38,10 +38,13 @@ import android.support.v4.widget.DrawerLayout; import android.widget.AdapterView; import android.widget.ArrayAdapter; +import android.widget.CheckBox; +import android.widget.EditText; import android.widget.ImageView; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.RelativeLayout; +import android.widget.Spinner; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; @@ -128,6 +131,7 @@ private String[] pathOptions; private String[] pathDescs; private Integer[] pathOptionImgs; + private String[] hutTypes; private String[] breakPointOptions; private Integer[] breakPointOptionsImgs; private String[] entries; @@ -190,7 +194,7 @@ initGps(); - fountainSizes = getResources().getStringArray(R.array.fountain_size_dialog_options); + fountainSizes = res.getStringArray(R.array.fountain_size_dialog_options); fountainImgs = new Integer[]{ R.drawable.fountain_size_small, R.drawable.fountain_size_medium, @@ -204,6 +208,7 @@ R.mipmap.path_giddiness, R.mipmap.path_climbing }; + hutTypes = res.getStringArray(R.array.hut_dialog_types); breakPointOptions = res.getStringArray(R.array.break_point_dialog_options); breakPointOptionsImgs = new Integer[]{ R.mipmap.ic_rock, @@ -862,22 +867,19 @@ int type = getType(which); switch (type) { case Types.FOUNTAIN: - AddFountainDialog addFountainDialog = new AddFountainDialog(); - addFountainDialog.show(getFragmentManager(), "Add fountain POI Dialog"); + addFountain(); break; case Types.PATH: addPathMap(); break; case Types.HUT: - //TODO add Options (selbstversorger, schutzhütte, ...) - addPoi(new Hut()); + addHut(); break; case Types.PEAK: - addPoi(new Peak()); + addPeak(); break; case Types.BREAK_POINT: - AddBreakpointDialog addBreakpointDialog = new AddBreakpointDialog(); - addBreakpointDialog.show(getFragmentManager(), "Add Break point POI Dialog"); + addBreakpoint(); break; case Types.TRASH_BIN: addPoi(new TrashBin()); @@ -903,6 +905,26 @@ } } + public void addFountain(){ + AddFountainDialog addFountainDialog = new AddFountainDialog(); + addFountainDialog.show(getFragmentManager(), "Add fountain POI Dialog"); + } + + public void addBreakpoint(){ + AddBreakpointDialog addBreakpointDialog = new AddBreakpointDialog(); + addBreakpointDialog.show(getFragmentManager(), "Add Break point POI Dialog"); + } + + public void addHut(){ + AddHutDialog addHutDialog = new AddHutDialog(); + addHutDialog.show(getFragmentManager(), "Add Hut POI Dialog"); + } + + public void addPeak(){ + AddPeakDialog addPeakDialog = new AddPeakDialog(); + addPeakDialog.show(getFragmentManager(), "Add Peak POI Dialog"); + } + public class AddFountainDialog extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { @@ -934,6 +956,76 @@ } } + //TODO beautify + public class AddHutDialog extends DialogFragment { + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + LayoutInflater inflater = MainActivity.this.getLayoutInflater(); + View view = inflater.inflate(R.layout.hut_dialog, null, true); + final EditText input = (EditText) view.findViewById(R.id.hutName); + final Spinner types = (Spinner) view.findViewById(R.id.hutTypes); + final CheckBox cbWinterroom = (CheckBox) view.findViewById(R.id.hutWinterroom); + builder.setTitle(R.string.hut_dialog_title) + .setMessage(R.string.hut_dialog_msg) + .setView(view) + .setPositiveButton(R.string.ok_button, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String name = input.getText().toString().trim(); + if(name != null && !name.equals("")) { + int type = types.getSelectedItemPosition(); + int winterroom = cbWinterroom.isChecked() ? 1 : 0; + switch (type){ + case 0: + type = Features.HUT_REFUGE; + break; + case 1: + type = Features.HUT_SUPPORT; + break; + case 2: + type = Features.HUT_CATERING; + break; + } + addPoi(new Hut(0, type, winterroom, name, null)); + } + } + }) + .setNegativeButton(R.string.cancel_button, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + } + }); + return builder.create(); + } + } + + public class AddPeakDialog extends DialogFragment { + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + final EditText input = new EditText(getApplicationContext()); + builder.setTitle(R.string.peak_dialog_title) + .setMessage(R.string.peak_dialog_msg) + .setView(input) + .setPositiveButton(R.string.ok_button, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String name = input.getText().toString().trim(); + if (name != null && !name.equals("")) { + addPoi(new Peak(0, name, null)); + } + } + }) + .setNegativeButton(R.string.cancel_button, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + } + }); + return builder.create(); + } + } + public void addPathMap() { final MapView popupMapView = new MapView(getApplicationContext(), 256); popupMapView.setTileSource(TileSourceFactory.MAPNIK);