diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/DownloadActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/DownloadActivity.java index 99d6004..4f2738e 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/DownloadActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/DownloadActivity.java @@ -105,8 +105,11 @@ if(addresses.size() == 0) { customLocationFound = false; customLocation = null; - InformDialog informDialog = new InformDialog(String.format(res.getString(R.string.inform_gps_pos_not_found_title), input), - res.getString(R.string.inform_gps_pos_not_found_msg)); + InformDialog informDialog = new InformDialog(); + Bundle args = new Bundle(); + args.putString("title", String.format(res.getString(R.string.inform_gps_pos_not_found_title), input)); + args.putString("msg", res.getString(R.string.inform_gps_pos_not_found_msg)); + informDialog.setArguments(args); informDialog.show(getFragmentManager(), "Inform Dialog"); } else { Address address = addresses.get(0); @@ -145,14 +148,21 @@ if(customLocationInput.getText().length() == 0) { l = MainActivity.getLocation(); if(l == null) { - InformDialog informDialog = new InformDialog(getString(R.string.inform_title), getString(R.string.inform_gps_pos_not_found)); + InformDialog informDialog = new InformDialog(); + Bundle args = new Bundle(); + args.putString("title", getString(R.string.inform_title)); + args.putString("msg", getString(R.string.inform_gps_pos_not_found)); + informDialog.setArguments(args); informDialog.show(getFragmentManager(), "Inform Dialog"); return; } } else if(!customLocationFound) { Resources res = MainActivity.getRes(); - InformDialog informDialog = new InformDialog(res.getString(R.string.inform_gps_custom_not_found_title), - res.getString(R.string.inform_gps_custom_not_found_msg)); + InformDialog informDialog = new InformDialog(); + Bundle args = new Bundle(); + args.putString("title", res.getString(R.string.inform_gps_custom_not_found_title)); + args.putString("msg", res.getString(R.string.inform_gps_custom_not_found_msg)); + informDialog.setArguments(args); informDialog.show(getFragmentManager(), "Inform Dialog"); return; } else { diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/InformDialog.java b/app/src/main/java/de/apps4ics/mountainnavigation/InformDialog.java index f220909..7d4a9c4 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/InformDialog.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/InformDialog.java @@ -30,9 +30,14 @@ private String title; private String msg; - public InformDialog(String title, String msg){ - this.title = title; - this.msg = msg; + public InformDialog() { + } + + @Override + public void setArguments(Bundle args) { + super.setArguments(args); + this.title = args.getString("title"); + this.msg = args.getString("msg"); } @Override diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/InformListDialog.java b/app/src/main/java/de/apps4ics/mountainnavigation/InformListDialog.java index 96426a0..a8778f0 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/InformListDialog.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/InformListDialog.java @@ -32,8 +32,16 @@ private String title; private ListAdapter adapter; - public InformListDialog(String title, ListAdapter adapter){ - this.title = title; + public InformListDialog() { + } + + @Override + public void setArguments(Bundle args) { + super.setArguments(args); + this.title = args.getString("title"); + } + + public void setAdapter(ListAdapter adapter) { this.adapter = adapter; } diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index c0561e1..c514122 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -70,6 +70,7 @@ import de.apps4ics.mountainnavigation.handlers.DatabaseHandler; import de.apps4ics.mountainnavigation.handlers.PoiHandler; import de.apps4ics.mountainnavigation.handlers.WeatherHandler; +import de.apps4ics.mountainnavigation.pois.AddPoiDialog; import de.apps4ics.mountainnavigation.pois.DbGeoPoint; import de.apps4ics.mountainnavigation.pois.Fountain; import de.apps4ics.mountainnavigation.pois.Poi; @@ -107,7 +108,7 @@ private FloatingActionButton fab; private DatabaseHandler dbHandler; - private PoiHandler poiHandler; + private static PoiHandler poiHandler; private static WeatherHandler weatherHandler; private long lastWeatherInformation; @@ -186,11 +187,15 @@ @Override public void onClick(View v) { if(mLocation == null){ - InformDialog informDialog = new InformDialog(getString(R.string.inform_title), getString(R.string.inform_gps_pos_not_found)); + InformDialog informDialog = new InformDialog(); + Bundle args = new Bundle(); + args.putString("title", getString(R.string.inform_title)); + args.putString("msg", getString(R.string.inform_gps_pos_not_found)); + informDialog.setArguments(args); informDialog.show(getFragmentManager(), "Inform Dialog"); return; } - PoiHandler.AddPoiDialog addPoiDialog = poiHandler.createAddPoiDialog(); + AddPoiDialog addPoiDialog = poiHandler.createAddPoiDialog(); addPoiDialog.show(getFragmentManager(), "Add POI Dialog"); } }); @@ -575,6 +580,8 @@ return drawerToggle.onOptionsItemSelected(item) || super.onOptionsItemSelected(item); } + public static PoiHandler getPoiHandler() { return poiHandler; } + public static WeatherHandler getWeatherHandler() { return weatherHandler; } public static NetworkInfo getActiveNetwork() { 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 3531cd7..d1f5211 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java @@ -88,6 +88,7 @@ import de.apps4ics.mountainnavigation.pois.AddHutDialog; import de.apps4ics.mountainnavigation.pois.AddPathDialog; import de.apps4ics.mountainnavigation.pois.AddPeakDialog; +import de.apps4ics.mountainnavigation.pois.AddPoiDialog; import de.apps4ics.mountainnavigation.pois.CellReception; import de.apps4ics.mountainnavigation.pois.DbGeoPoint; import de.apps4ics.mountainnavigation.pois.Fountain; @@ -188,6 +189,8 @@ return context; } + public Activity getActivity() { return activity; } + public static String[] getFountainSizes() { return fountainSizes; } @@ -307,71 +310,23 @@ return new AddPoiDialog(); } - public class AddPoiDialog extends DialogFragment { - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setTitle(R.string.add_poi_dialog_title) - //.setIcon(res.getDrawable(R.mipmap.ic_add_poi)) - .setAdapter(new ImageListAdapter(activity, PoiHandler.getEntries(), PoiHandler.getEntryImgs(), true), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - int type = MainActivity.getType(which); - switch (type) { - case Types.FOUNTAIN: - addFountain(); - break; - case Types.PATH: - addPathMap(); - break; - case Types.HUT: - addHut(); - break; - case Types.PEAK: - addPeak(); - break; - case Types.BREAK_POINT: - addBreakpoint(); - break; - case Types.TRASH_BIN: - addPoi(new TrashBin()); - break; - case Types.PIC: - addImageMap(); - break; - case Types.CELL_RECEPTION: - addCellReceptionPoi(); - break; - case Types.WIFI: - addWifiPoi(); - break; - case Types.LIFT: - addLiftMap(); - break; - } - } - }); - return builder.create(); - } - } - public void addFountain(){ - AddFountainDialog addFountainDialog = new AddFountainDialog(this); + AddFountainDialog addFountainDialog = new AddFountainDialog(); addFountainDialog.show(fragmentManager, "Add fountain POI Dialog"); } public void addBreakpoint(){ - AddBreakpointDialog addBreakpointDialog = new AddBreakpointDialog(this); + AddBreakpointDialog addBreakpointDialog = new AddBreakpointDialog(); addBreakpointDialog.show(fragmentManager, "Add Break point POI Dialog"); } public void addHut(){ - AddHutDialog addHutDialog = new AddHutDialog(this); + AddHutDialog addHutDialog = new AddHutDialog(); addHutDialog.show(fragmentManager, "Add Hut POI Dialog"); } public void addPeak(){ - AddPeakDialog addPeakDialog = new AddPeakDialog(this); + AddPeakDialog addPeakDialog = new AddPeakDialog(); addPeakDialog.show(fragmentManager, "Add Peak POI Dialog"); } @@ -417,7 +372,7 @@ .setPositiveButton(R.string.continue_button, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - AddPathDialog addPathDialog = new AddPathDialog(PoiHandler.this); + AddPathDialog addPathDialog = new AddPathDialog(); addPathDialog.show(fragmentManager, "Add Path POI Dialog"); } }) @@ -617,7 +572,7 @@ popupMapView.getOverlays().add(overlay); } - private void addCellReceptionPoi(){ + public void addCellReceptionPoi(){ if(MainActivity.hasInternet()){ TelephonyManager tm = MainActivity.getTelephonyManager(); int networkStrength = MainActivity.getNetworkStrength(); @@ -636,7 +591,7 @@ } } - private void addWifiPoi(){ + public void addWifiPoi(){ if(!MainActivity.getWifiManager().isWifiEnabled()){ AlertDialog.Builder wifiIntentDialogBuilder = new AlertDialog.Builder(context); wifiIntentDialogBuilder diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/WeatherHandler.java b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/WeatherHandler.java index fa8640e..04bfbba 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/WeatherHandler.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/WeatherHandler.java @@ -26,6 +26,7 @@ import android.content.Context; import android.content.res.Resources; import android.location.Location; +import android.os.Bundle; import android.util.Log; import com.survivingwithandroid.weather.lib.WeatherClient; @@ -352,7 +353,11 @@ descArr = descs.toArray(descArr); infosArr = infos.toArray(infosArr); WarningListAdapter warningAdapter = new WarningListAdapter(activity, titleArr, descArr, infosArr); - InformListDialog weatherHintDialog = new InformListDialog(MainActivity.getRes().getString(R.string.hint_dialog_title), warningAdapter); + InformListDialog weatherHintDialog = new InformListDialog(); + Bundle args = new Bundle(); + args.putString("title", MainActivity.getRes().getString(R.string.hint_dialog_title)); + weatherHintDialog.setArguments(args); + weatherHintDialog.setAdapter(warningAdapter); weatherHintDialog.show(fragmentManager, "Warning Hint Dialog"); } } @@ -362,7 +367,11 @@ if (weather.isSevereWeather(weather.getWeatherCode())) { Resources res = context.getResources(); String warnMsg = String.format(res.getString(R.string.weather_warning_dialog_msg), weather.getCity(), weather.getWeatherCode()); - InformDialog informAlertDialog = new InformDialog(res.getString(R.string.weather_warning_dialog_title), warnMsg); + InformDialog informAlertDialog = new InformDialog(); + Bundle args = new Bundle(); + args.putString("title", res.getString(R.string.weather_warning_dialog_title)); + args.putString("msg", warnMsg); + informAlertDialog.setArguments(args); informAlertDialog.show(fragmentManager, "Inform Dialog - Weather Warning"); } } diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddBreakpointDialog.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddBreakpointDialog.java index af38ca1..56ab541 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddBreakpointDialog.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddBreakpointDialog.java @@ -36,8 +36,8 @@ public class AddBreakpointDialog extends DialogFragment { PoiHandler poiHandler; - public AddBreakpointDialog(PoiHandler poiHandler){ - this.poiHandler = poiHandler; + public AddBreakpointDialog() { + this.poiHandler = MainActivity.getPoiHandler(); } @Override diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddFountainDialog.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddFountainDialog.java index f8c957d..fd16296 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddFountainDialog.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddFountainDialog.java @@ -37,8 +37,9 @@ public class AddFountainDialog extends DialogFragment { PoiHandler poiHandler; - public AddFountainDialog(PoiHandler poiHandler){ - this.poiHandler = poiHandler; + + public AddFountainDialog() { + this.poiHandler = MainActivity.getPoiHandler(); } @Override 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 d33adb0..12fc984 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddHutDialog.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddHutDialog.java @@ -40,8 +40,8 @@ public class AddHutDialog extends DialogFragment { PoiHandler poiHandler; - public AddHutDialog(PoiHandler poiHandler){ - this.poiHandler = poiHandler; + public AddHutDialog() { + this.poiHandler = MainActivity.getPoiHandler(); } @Override diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPathDialog.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPathDialog.java index bd50e86..d2edfb8 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPathDialog.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPathDialog.java @@ -46,8 +46,8 @@ public class AddPathDialog extends DialogFragment { PoiHandler poiHandler; - public AddPathDialog(PoiHandler poiHandler){ - this.poiHandler = poiHandler; + public AddPathDialog() { + this.poiHandler = MainActivity.getPoiHandler(); } @Override diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPeakDialog.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPeakDialog.java index 9966e2d..f622d2d 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPeakDialog.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPeakDialog.java @@ -35,8 +35,8 @@ public class AddPeakDialog extends DialogFragment { PoiHandler poiHandler; - public AddPeakDialog(PoiHandler poiHandler){ - this.poiHandler = poiHandler; + public AddPeakDialog() { + this.poiHandler = MainActivity.getPoiHandler(); } @Override diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPoiDialog.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPoiDialog.java new file mode 100644 index 0000000..afdcdab --- /dev/null +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/AddPoiDialog.java @@ -0,0 +1,88 @@ +/** + * 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 de.apps4ics.mountainnavigation.MainActivity; +import de.apps4ics.mountainnavigation.R; +import de.apps4ics.mountainnavigation.adapters.ImageListAdapter; +import de.apps4ics.mountainnavigation.handlers.PoiHandler; + +public class AddPoiDialog extends DialogFragment { + private PoiHandler poiHandler; + + public AddPoiDialog() { + this.poiHandler = MainActivity.getPoiHandler(); + } + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setTitle(R.string.add_poi_dialog_title) + //.setIcon(res.getDrawable(R.mipmap.ic_add_poi)) + .setAdapter(new ImageListAdapter(poiHandler.getActivity(), PoiHandler.getEntries(), PoiHandler.getEntryImgs(), true), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + int type = MainActivity.getType(which); + switch (type) { + case Types.FOUNTAIN: + poiHandler.addFountain(); + break; + case Types.PATH: + poiHandler.addPathMap(); + break; + case Types.HUT: + poiHandler.addHut(); + break; + case Types.PEAK: + poiHandler.addPeak(); + break; + case Types.BREAK_POINT: + poiHandler.addBreakpoint(); + break; + case Types.TRASH_BIN: + poiHandler.addPoi(new TrashBin()); + break; + case Types.PIC: + poiHandler.addImageMap(); + break; + case Types.CELL_RECEPTION: + poiHandler.addCellReceptionPoi(); + break; + case Types.WIFI: + poiHandler.addWifiPoi(); + break; + case Types.LIFT: + poiHandler.addLiftMap(); + break; + } + } + }); + return builder.create(); + } +}