diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index a295b6d..b52fd47 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -725,7 +725,7 @@ type = Types.LIFT; break; case 10: - type = Types.GP; + type = Types.BIOTA; break; default: type = 0; diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java index ca5c646..14bfce7 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java @@ -79,6 +79,7 @@ import de.apps4ics.mountainnavigation.R; import de.apps4ics.mountainnavigation.overlays.ImageDialogItemizedIconOverlay; import de.apps4ics.mountainnavigation.overlays.MapDialogItemizedIconOverlay; +import de.apps4ics.mountainnavigation.pois.AddBiotaDialog; import de.apps4ics.mountainnavigation.pois.AddBreakpointDialog; import de.apps4ics.mountainnavigation.pois.AddFountainDialog; import de.apps4ics.mountainnavigation.pois.AddHutDialog; @@ -544,6 +545,12 @@ popupMapView.getOverlays().add(overlay); } + public void addBiota() { + Log.d(MainActivity.TAG, "test"); + AddBiotaDialog addBiotaDialog = new AddBiotaDialog(); + addBiotaDialog.show(fragmentManager, "Add Biota POI Dialog"); + } + public void addImageMap() { final MapView popupMapView = new MapView(context); popupMapView.setTileSource(TileSourceFactory.MAPNIK); diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddBiotaDialog.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddBiotaDialog.java new file mode 100644 index 0000000..ec7f468 --- /dev/null +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddBiotaDialog.java @@ -0,0 +1,114 @@ +/** + * This file is part of MountainNavigation. + * + * MountainNavigation is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * MountainNavigation is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with MountainNavigation. If not, see . + * + * @copyright Copyright (c) 2016 Vinzenz Rosenkanz + * + * @author Vinzenz Rosenkranz + */ + +package de.apps4ics.mountainnavigation.pois; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.DialogFragment; +import android.content.DialogInterface; +import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.EditText; +import android.widget.ListView; +import android.widget.Spinner; +import android.widget.TextView; + +import java.util.ArrayList; +import java.util.List; + +import de.apps4ics.mountainnavigation.Features; +import de.apps4ics.mountainnavigation.MainActivity; +import de.apps4ics.mountainnavigation.R; +import de.apps4ics.mountainnavigation.handlers.PoiHandler; + +public class AddBiotaDialog extends DialogFragment { + private PoiHandler poiHandler; + private ArrayAdapter listAdapter; + private List listItems; + + public AddBiotaDialog() { + this.poiHandler = MainActivity.getPoiHandler(); + this.listItems = new ArrayList<>(); + } + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + LayoutInflater inflater = getActivity().getLayoutInflater(); + final View view = inflater.inflate(R.layout.biota_dialog, null, true); + listAdapter = new ArrayAdapter<>(view.getContext(), android.R.layout.simple_list_item_1, listItems); + final EditText addElementInput = (EditText) view.findViewById(R.id.endangered_name); + final Button addElementButton = (Button) view.findViewById(R.id.endangered_add); + final ListView elementList = (ListView) view.findViewById(R.id.endangered_list); + builder.setTitle(R.string.biota_dialog_title) + .setView(view) + .setPositiveButton(R.string.ok_button, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + } + }) + .setNegativeButton(R.string.cancel_button, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + } + }); + AlertDialog dialog = builder.create(); + dialog.create(); + + final Button positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE); + positiveButton.setEnabled(false); + elementList.setAdapter(listAdapter); + + addElementInput.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + if (s.length() > 0) addElementButton.setEnabled(true); + else addElementButton.setEnabled(false); + } + + @Override + public void afterTextChanged(Editable s) { + } + }); + + addElementButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + listItems.add(addElementInput.getText().toString()); + listAdapter.notifyDataSetChanged(); + } + }); + + return dialog; + } +} diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddHutDialog.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddHutDialog.java index e4edeb6..e644bf3 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddHutDialog.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddHutDialog.java @@ -26,8 +26,11 @@ import android.app.DialogFragment; import android.content.DialogInterface; import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; +import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Spinner; @@ -81,6 +84,25 @@ public void onClick(DialogInterface dialog, int which) { } }); - return builder.create(); + AlertDialog dialog = builder.create(); + dialog.create(); + final Button positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE); + positiveButton.setEnabled(false); + input.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + if (s.length() > 0) positiveButton.setEnabled(true); + else positiveButton.setEnabled(false); + } + + @Override + public void afterTextChanged(Editable s) { + } + }); + return dialog; } } diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPoiDialog.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPoiDialog.java index afdcdab..eef56fe 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPoiDialog.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPoiDialog.java @@ -80,6 +80,8 @@ case Types.LIFT: poiHandler.addLiftMap(); break; + case Types.BIOTA: + poiHandler.addBiota(); } } }); diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Types.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Types.java index 243a30b..2456bcf 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Types.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Types.java @@ -34,6 +34,7 @@ public static final int HUT = 9; public static final int GP = 10; public static final int HIKE = 11; + public static final int BIOTA = 12; - public static final int SIZE = 12; + public static final int SIZE = 13; } diff --git a/app/src/main/res/layout/biota_dialog.xml b/app/src/main/res/layout/biota_dialog.xml new file mode 100644 index 0000000..4f4cb96 --- /dev/null +++ b/app/src/main/res/layout/biota_dialog.xml @@ -0,0 +1,65 @@ + + + + + + + +