diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index b81631b..42d1296 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -32,6 +32,7 @@ import android.support.v4.widget.DrawerLayout; import android.widget.AdapterView; import android.widget.ArrayAdapter; +import android.widget.CheckBox; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ListView; @@ -85,6 +86,8 @@ private ActionBarDrawerToggle drawerToggle; private String[] fountainSizes; + private String[] pathOptions; + private Integer[] pathOptionImgs; private String[] entries; private Integer[] entryImgs; private Integer[] fountainImgs; @@ -134,7 +137,15 @@ R.drawable.fountain_size_medium, R.drawable.fountain_size_big, }; - entries = getResources().getStringArray(R.array.toggleEntries); + pathOptions = res.getStringArray(R.array.path_dialog_options); + pathOptionImgs = new Integer[]{ + R.mipmap.path_exposed, + R.mipmap.path_difficult_wet, + R.mipmap.path_giddiness, + R.mipmap.path_climbing + }; + + entries = res.getStringArray(R.array.toggleEntries); entryImgs = new Integer[]{ R.drawable.water, R.drawable.path, @@ -418,10 +429,13 @@ @Override public void onClick(DialogInterface dialog, int which) { switch (which) { - case 0: + case Types.FOUNTAIN: AddFountainDialog addFountainDialog = new AddFountainDialog(); addFountainDialog.show(getFragmentManager(), "Add fountain POI Dialog"); break; + case Types.PATH: + AddPathDialog addPathDialog = new AddPathDialog(); + addPathDialog.show(getFragmentManager(), "Add Path POI Dialog"); } } }); @@ -438,15 +452,8 @@ @Override public void onClick(DialogInterface dialog, int which) { //Add POI to DB - double _lat = mLocation.getLatitude(); - double _lon = mLocation.getLongitude(); - double _alt = mLocation.getAltitude(); int _type = Types.FOUNTAIN; - long _time = System.currentTimeMillis() / 1000; - Poi poi = new Poi(_lat, _lon, _alt, _type, _time); - long rowId = dbHandler.addPoi(poi); - - if(rowId >= 0) Toaster(getString(R.string.add_poi_success), true); + long rowId = addPoi(_type); int size = 0; switch (which) { @@ -462,8 +469,6 @@ default: Log.e(TAG, "Wrong fountain size " + which); } - - //TODO Add POI properties to DB dbHandler.addPoiOptions(rowId, size); } }); @@ -471,6 +476,66 @@ } } + public class AddPathDialog extends DialogFragment { + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + final List mSelectedItems = new ArrayList<>(); + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setTitle(R.string.path_dialog_title) + .setMultiChoiceItems(R.array.path_dialog_options, null, + new DialogInterface.OnMultiChoiceClickListener() { + @Override + public void onClick(DialogInterface dialog, int which, boolean isChecked) { + if(isChecked){ + mSelectedItems.add(which); + } else { + mSelectedItems.remove(Integer.valueOf(which)); + } + } + }) + .setPositiveButton(R.string.ok_button, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + int _type = Types.PATH; + long rowId = addPoi(_type); + int[] options = new int[mSelectedItems.size()]; + for(int i=0; i= 0) Toaster(getString(R.string.add_poi_success), true); + return rowId; + } + private class ImageListAdapter extends ArrayAdapter { private final Activity context;