diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index bc44893..0cbf19b 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -324,10 +324,14 @@ double _lat = 48.52; double _lon = 9.055; double _alt = 350; - int _type = Types.FOUNTAIN; long _time = System.currentTimeMillis() / 1000; - Poi poi = new Poi(_lat, _lon, _alt, _type, _time); - dbHandler.addPoi(poi); + DbGeoPoint dbgp = new DbGeoPoint(_lat, _lon, _alt, _time); + long gp_id = dbHandler.addPoi(dbgp); + dbgp.setId(gp_id); + Fountain fountain = new Fountain(0, 2, dbgp); + long f_id = dbHandler.addPoi(fountain); + dbgp.setTypeId("fountain_" + f_id); + dbHandler.updatePoi(dbgp); } private void toggleDrawerItems(TableLayout layout, int position){ @@ -502,6 +506,9 @@ case 9: type = Types.LIFT; break; + case 10: + type = Types.GP; + break; default: type = 0; break; @@ -509,6 +516,43 @@ return type; } + private String getTypeName(int type){ + String name = ""; + switch(type){ + case Types.FOUNTAIN: + name = "fountain"; + break; + case Types.PATH: + name = "path"; + break; + case Types.HUT: + name = "hut"; + break; + case Types.PEAK: + name = "peak"; + break; + case Types.BREAK_POINT: + name = "break_point"; + break; + case Types.TRASH_BIN: + name = "trash_bin"; + break; + case Types.PIC: + name = "image"; + break; + case Types.CELL_RECEPTION: + name = "cell_reception"; + break; + case Types.WIFI: + name = "wifi"; + break; + case Types.LIFT: + name = "lift"; + break; + } + return name; + } + private void initGps(){ locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); boolean isLocationEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); @@ -791,21 +835,21 @@ break; case Types.HUT: //TODO add Options (selbstversorger, schutzhütte, ...) - addPoi(Types.HUT); + addPoi(new Hut()); break; case Types.PEAK: - addPoi(Types.PEAK); + addPoi(new Peak()); break; case Types.BREAK_POINT: AddBreakpointDialog addBreakpointDialog = new AddBreakpointDialog(); addBreakpointDialog.show(getFragmentManager(), "Add Break point POI Dialog"); break; case Types.TRASH_BIN: - addPoi(Types.TRASH_BIN); + addPoi(new TrashBin()); break; case Types.PIC: //TODO add picture only to existing POI - addPoi(Types.PIC); + addPoi(new Image()); break; case Types.CELL_RECEPTION: addCellReceptionPoi(); @@ -815,7 +859,7 @@ break; case Types.LIFT: //TODO as in path, choose two markers - addPoi(Types.LIFT); + addPoi(new Lift()); break; } } @@ -1091,7 +1135,7 @@ int rssi = wm.getConnectionInfo().getRssi(); int levels = WifiManager.calculateSignalLevel(rssi, MAX_WIFI_LEVELS); Log.d(TAG, "You are currently connected to '" + ssid + "' with " + levels + " (" + rssi + ")"); - addPoi(Types.WIFI); + addPoi(new Wifi(0, ssid, levels, null)); } else { Log.d(TAG, "Wifi network not available/connected"); } @@ -1101,14 +1145,23 @@ } } - private long addPoi(int _type){ + private long addPoi(Poi poi){ double _lat = mLocation.getLatitude(); double _lon = mLocation.getLongitude(); double _alt = mLocation.getAltitude(); long _time = System.currentTimeMillis() / 1000; - Poi poi = new Poi(_lat, _lon, _alt, _type, _time); + + DbGeoPoint dbgp = new DbGeoPoint(_lat, _lon, _alt, _time); + long gp_id = dbHandler.addPoi(dbgp); + dbgp.setId(gp_id); + + poi.setGp(dbgp); long rowId = dbHandler.addPoi(poi); if(rowId >= 0) Toaster(getString(R.string.add_poi_success), true); + dbgp.setTypeId(getTypeName(poi.getType()) + "_" + rowId); + + dbHandler.updatePoi(dbgp); + return rowId; }