diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index c7cc1eb..af8ceb3 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -84,6 +84,7 @@ import de.apps4ics.mountainnavigation.pois.AddPoiDialog; import de.apps4ics.mountainnavigation.pois.DbGeoPoint; import de.apps4ics.mountainnavigation.pois.Fountain; +import de.apps4ics.mountainnavigation.pois.Hike; import de.apps4ics.mountainnavigation.pois.Poi; import de.apps4ics.mountainnavigation.pois.Types; @@ -118,7 +119,7 @@ private static Resources res; private FloatingActionButton fab; - private DatabaseHandler dbHandler; + private static DatabaseHandler dbHandler; private static PoiHandler poiHandler; private static WeatherHandler weatherHandler; private static HikeHandler hikeHandler; @@ -290,6 +291,7 @@ if(!name.equals("")) { hikeHandler.stopRecording(); view.setText(hikeEntries[position]); + poiHandler.addPoi(new Hike(0, hikeHandler.getLength(), hikeHandler.getTime(), 0, name, "You", System.currentTimeMillis(), 0)); } } }) @@ -339,6 +341,11 @@ } } else if(key.equals(getString(R.string.hike_title_show_key))) { //TODO Open dialog with all hikes around current position (or enter position) + ArrayList hikes = (ArrayList) dbHandler.getPoiByType(Types.HIKE); + for(Poi p : hikes) { + Hike h = (Hike) p; + Log.d(TAG, h.getName() + " from " + h.getAuthor() + " with length of " + h.getLength() + "m and total time of " + h.getTime() + "s."); + } } } }); @@ -381,11 +388,10 @@ double _lon = 9.055; double _alt = 350; long _time = System.currentTimeMillis() / 1000; - 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); + Fountain fountain = new Fountain(0, 2); long f_id = dbHandler.addPoi(fountain); + DbGeoPoint dbgp = new DbGeoPoint(_lat, _lon, _alt, _time, f_id, Types.FOUNTAIN); + long gp_id = dbHandler.addPoi(dbgp); } private void toggleDrawerItems(TableLayout layout, int position){ @@ -598,7 +604,7 @@ return mapView; } - public DatabaseHandler getDbHandler(){ + public static DatabaseHandler getDbHandler(){ return dbHandler; } @@ -623,12 +629,13 @@ } public static void addPoiToMap(Poi poi) { - DbGeoPoint dbGeoPoint = poi.getGp(); + DbGeoPoint dbGeoPoint = dbHandler.getGeoPoint(poi.getId(), poi.getType()); + if(dbGeoPoint == null) return; GeoPoint gp = new GeoPoint(dbGeoPoint.getLat(), dbGeoPoint.getLon(), dbGeoPoint.getAlt()); Marker marker = new Marker(mapView); marker.setIcon(PoiHandler.createPoiMarker(poi.getType())); marker.setTitle(getTypeName(poi.getType())); - marker.setSnippet(poi.getGp().toString() + "\n" + poi.toString()); + marker.setSnippet(dbGeoPoint.toString() + "\n" + poi.toString()); marker.setPosition(gp); marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM); mapView.getOverlays().add(marker); diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/DatabaseHandler.java b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/DatabaseHandler.java index a58d939..286e59b 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/DatabaseHandler.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/DatabaseHandler.java @@ -32,6 +32,7 @@ import java.util.List; import de.apps4ics.mountainnavigation.MainActivity; +import de.apps4ics.mountainnavigation.pois.Hike; import de.apps4ics.mountainnavigation.pois.Types; import de.apps4ics.mountainnavigation.pois.BreakPoint; import de.apps4ics.mountainnavigation.pois.CellReception; @@ -47,7 +48,7 @@ import de.apps4ics.mountainnavigation.pois.Wifi; public class DatabaseHandler extends SQLiteOpenHelper { - private static final int DATABASE_VERSION = 2; + private static final int DATABASE_VERSION = 4; private static final float MAX_POI_DISTANCE = 12.5f; private static final String DATABASE_NAME = "mountainNavigation.db"; @@ -62,8 +63,9 @@ private static final String TABLE_CELL_RECEPTION = "cell_reception"; private static final String TABLE_WIFI = "wifi"; private static final String TABLE_LIFT = "lift"; - private static final String[] TABLES = new String[]{TABLE_FOUNTAIN, TABLE_PATH, TABLE_HUT, TABLE_PEAK, TABLE_BREAK_POINT, TABLE_TRASH_BIN, TABLE_IMAGE, TABLE_CELL_RECEPTION, TABLE_WIFI, TABLE_LIFT}; - private static final Integer[] TABLE_TYPES = new Integer[]{Types.FOUNTAIN, Types.PATH, Types.HUT, Types.PEAK, Types.BREAK_POINT, Types.TRASH_BIN, Types.PIC, Types.CELL_RECEPTION, Types.WIFI, Types.LIFT}; + private static final String TABLE_HIKE = "hike"; + private static final String[] TABLES = new String[]{TABLE_FOUNTAIN, TABLE_PATH, TABLE_HUT, TABLE_PEAK, TABLE_BREAK_POINT, TABLE_TRASH_BIN, TABLE_IMAGE, TABLE_CELL_RECEPTION, TABLE_WIFI, TABLE_LIFT, TABLE_HIKE}; + private static final Integer[] TABLE_TYPES = new Integer[]{Types.FOUNTAIN, Types.PATH, Types.HUT, Types.PEAK, Types.BREAK_POINT, Types.TRASH_BIN, Types.PIC, Types.CELL_RECEPTION, Types.WIFI, Types.LIFT, Types.HIKE}; private static final String KEY_POI_ID = "_id"; private static final String KEY_POI_LAT = "_lat"; @@ -73,9 +75,8 @@ private static final String KEY_POI_TIME = "_time"; private static final String KEY_GP_ID = "_gp_id"; + private static final String KEY_POI_EXT_ID = "_poi_id"; private static final String KEY_FOUNTAIN_SIZE = "_size"; - private static final String KEY_GP_S_ID = "_gp_s_id"; - private static final String KEY_GP_E_ID = "_gp_e_id"; private static final String KEY_PATH_LENGTH = "_length"; private static final String KEY_PATH_EXPOSED = "_path_exp"; private static final String KEY_PATH_DIFF_WET = "_path_diff"; @@ -98,6 +99,13 @@ private static final String KEY_WIFI_SSID = "_wifi_ssid"; private static final String KEY_WIFI_LEVELS = "_wifi_levels"; private static final String KEY_IMAGE_IMG = "_img_src"; + private static final String KEY_HIKE_LENGTH = "_hike_length"; + private static final String KEY_HIKE_TIME = "_hike_time"; + private static final String KEY_HIKE_DIFFICULTY = "_hike_difficulty"; + private static final String KEY_HIKE_NAME = "_hike_name"; + private static final String KEY_HIKE_AUTHOR = "_hike_author"; + private static final String KEY_HIKE_TIMESTAMP = "_hike_timestamp"; + private static final String KEY_HIKE_HEIGHT = "_hike_height"; public DatabaseHandler(Context context){ super(context, DATABASE_NAME, null, DATABASE_VERSION); @@ -111,19 +119,18 @@ + KEY_POI_LAT + " REAL," + KEY_POI_LON + " REAL," + KEY_POI_ALT + " REAL," + + KEY_POI_EXT_ID + " INTEGER," + + KEY_POI_TYPE + " INTEGER," + KEY_POI_TIME + " INTEGER" + ")"; db.execSQL(CREATE_GP_TABLE); //create Fountain table String CREATE_FOUNTAIN_TABLE = "CREATE TABLE " + TABLE_FOUNTAIN + "(" + KEY_POI_ID + " INTEGER PRIMARY KEY," - + KEY_GP_ID + " INTEGER," + KEY_FOUNTAIN_SIZE + " INTEGER" + ")"; db.execSQL(CREATE_FOUNTAIN_TABLE); //create Fountain table String CREATE_PATH_TABLE = "CREATE TABLE " + TABLE_PATH + "(" + KEY_POI_ID + " INTEGER PRIMARY KEY," - + KEY_GP_S_ID + " INTEGER," - + KEY_GP_E_ID + " INTEGER," + KEY_PATH_LENGTH + " INTEGER," + KEY_PATH_EXPOSED + " INTEGER," + KEY_PATH_DIFF_WET + " INTEGER," @@ -133,7 +140,6 @@ //create break point table String CREATE_BREAK_POINT_TABLE = "CREATE TABLE " + TABLE_BREAK_POINT + "(" + KEY_POI_ID + " INTEGER PRIMARY KEY," - + KEY_GP_ID + " INTEGER," + KEY_BREAK_POINT_STONE + " INTEGER," + KEY_BREAK_POINT_BENCH + " INTEGER," + KEY_BREAK_POINT_TABLE + " INTEGER," @@ -142,7 +148,6 @@ //create hut table String CREATE_HUT_TABLE = "CREATE TABLE " + TABLE_HUT + "(" + KEY_POI_ID + " INTEGER PRIMARY KEY," - + KEY_GP_ID + " INTEGER," + KEY_HUT_TYPE + " INTEGER," + KEY_HUT_WINTER_ROOM + " INTEGER," + KEY_HUT_NAME + " TEXT" + ")"; @@ -150,13 +155,11 @@ //create peak table String CREATE_PEAK_TABLE = "CREATE TABLE " + TABLE_PEAK + "(" + KEY_POI_ID + " INTEGER PRIMARY KEY," - + KEY_GP_ID + " INTEGER," + KEY_PEAK_NAME + " TEXT" + ")"; db.execSQL(CREATE_PEAK_TABLE); //create cell reception table String CREATE_CR_TABLE = "CREATE TABLE " + TABLE_CELL_RECEPTION + "(" + KEY_POI_ID + " INTEGER PRIMARY KEY," - + KEY_GP_ID + " INTEGER," + KEY_CELL_RECEPTION_STRENGTH + " INTEGER," + KEY_CELL_RECEPTION_OP_NAME + " TEXT," + KEY_CELL_RECEPTION_OP_COUNTRY + " TEXT," @@ -166,28 +169,36 @@ //create wifi table String CREATE_WIFI_TABLE = "CREATE TABLE " + TABLE_WIFI + "(" + KEY_POI_ID + " INTEGER PRIMARY KEY," - + KEY_GP_ID + " INTEGER," + KEY_WIFI_SSID + " TEXT," + KEY_WIFI_LEVELS + " INTEGER" + ")"; db.execSQL(CREATE_WIFI_TABLE); //create lift table String CREATE_LIFT_TABLE = "CREATE TABLE " + TABLE_LIFT + "(" + KEY_POI_ID + " INTEGER PRIMARY KEY," - + KEY_GP_S_ID + " INTEGER," - + KEY_GP_E_ID + " INTEGER," + KEY_LIFT_NAME + " TEXT" + ")"; db.execSQL(CREATE_LIFT_TABLE); //create image table String CREATE_IMAGE_TABLE = "CREATE TABLE " + TABLE_IMAGE + "(" + KEY_POI_ID + " INTEGER PRIMARY KEY," - + KEY_GP_ID + " INTEGER," + + KEY_POI_EXT_ID + " INTEGER," + + KEY_POI_TYPE + " INTEGER," + KEY_IMAGE_IMG + " BLOB" + ")"; db.execSQL(CREATE_IMAGE_TABLE); //create trash bin table String CREATE_TRASH_TABLE = "CREATE TABLE " + TABLE_TRASH_BIN + "(" - + KEY_POI_ID + " INTEGER PRIMARY KEY," - + KEY_GP_ID + " INTEGER" + ")"; + + KEY_POI_ID + " INTEGER PRIMARY KEY" + ")"; db.execSQL(CREATE_TRASH_TABLE); + //create hike table + String CREATE_HIKE_TABLE = "CREATE TABLE " + TABLE_HIKE + "(" + + KEY_POI_ID + " INTEGER PRIMARY KEY," + + KEY_HIKE_LENGTH + " REAL," + + KEY_HIKE_TIME + " INTEGER," + + KEY_HIKE_DIFFICULTY + " INTEGER," + + KEY_HIKE_NAME + " TEXT," + + KEY_HIKE_AUTHOR + " TEXT," + + KEY_HIKE_TIMESTAMP + " INTEGER," + + KEY_HIKE_HEIGHT + " INTEGER" + ")"; + db.execSQL(CREATE_HIKE_TABLE); } @Override @@ -203,6 +214,7 @@ db.execSQL("DROP TABLE IF EXISTS " + TABLE_CELL_RECEPTION); db.execSQL("DROP TABLE IF EXISTS " + TABLE_WIFI); db.execSQL("DROP TABLE IF EXISTS " + TABLE_LIFT); + db.execSQL("DROP TABLE IF EXISTS " + TABLE_HIKE); onCreate(db); } @@ -211,13 +223,10 @@ switch(poi.getType()){ case Types.FOUNTAIN: Fountain f = (Fountain) poi; - values.put(KEY_GP_ID, f.getGpId()); values.put(KEY_FOUNTAIN_SIZE, f.getSize()); break; case Types.PATH: Path p = (Path) poi; - values.put(KEY_GP_S_ID, p.getStartGpId()); - values.put(KEY_GP_E_ID, p.getEndGpId()); values.put(KEY_PATH_LENGTH, p.getLength()); values.put(KEY_PATH_EXPOSED, p.getExposed()); values.put(KEY_PATH_DIFF_WET, p.getDiffWet()); @@ -226,7 +235,6 @@ break; case Types.BREAK_POINT: BreakPoint bp = (BreakPoint) poi; - values.put(KEY_GP_ID, bp.getGpId()); values.put(KEY_BREAK_POINT_STONE, bp.getStone()); values.put(KEY_BREAK_POINT_BENCH, bp.getBench()); values.put(KEY_BREAK_POINT_TABLE, bp.getTable()); @@ -234,16 +242,15 @@ break; case Types.TRASH_BIN: TrashBin tb = (TrashBin) poi; - values.put(KEY_GP_ID, tb.getGpId()); break; case Types.PIC: Image i = (Image) poi; - values.put(KEY_GP_ID, i.getGpId()); + values.put(KEY_POI_EXT_ID, i.getPoiId()); + values.put(KEY_POI_TYPE, i.getPoiType()); values.put(KEY_IMAGE_IMG, i.getImage()); break; case Types.CELL_RECEPTION: CellReception cr = (CellReception) poi; - values.put(KEY_GP_ID, cr.getGpId()); values.put(KEY_CELL_RECEPTION_STRENGTH, cr.getStrength()); values.put(KEY_CELL_RECEPTION_OP_NAME, cr.getOpName()); values.put(KEY_CELL_RECEPTION_OP_COUNTRY, cr.getOpCountry()); @@ -252,24 +259,19 @@ break; case Types.WIFI: Wifi w = (Wifi) poi; - values.put(KEY_GP_ID, w.getGpId()); values.put(KEY_WIFI_SSID, w.getSsid()); values.put(KEY_WIFI_LEVELS, w.getLevels()); break; case Types.LIFT: Lift l = (Lift) poi; - values.put(KEY_GP_S_ID, l.getStartGpId()); - values.put(KEY_GP_E_ID, l.getEndGpId()); values.put(KEY_LIFT_NAME, l.getName()); break; case Types.PEAK: Peak peak = (Peak) poi; - values.put(KEY_GP_ID, peak.getGpId()); values.put(KEY_PEAK_NAME, peak.getName()); break; case Types.HUT: Hut h = (Hut) poi; - values.put(KEY_GP_ID, h.getGpId()); values.put(KEY_HUT_TYPE, h.getHutType()); values.put(KEY_HUT_WINTER_ROOM, h.getWinterRoom()); values.put(KEY_HUT_NAME, h.getName()); @@ -280,6 +282,18 @@ values.put(KEY_POI_LON, dbgp.getLon()); values.put(KEY_POI_ALT, dbgp.getAlt()); values.put(KEY_POI_TIME, dbgp.getTime()); + values.put(KEY_POI_EXT_ID, dbgp.get_poiId()); + values.put(KEY_POI_TYPE, dbgp.get_poiType()); + break; + case Types.HIKE: + Hike hike = (Hike) poi; + values.put(KEY_HIKE_LENGTH, hike.getLength()); + values.put(KEY_HIKE_TIME, hike.getTime()); + values.put(KEY_HIKE_DIFFICULTY, hike.getDifficulty()); + values.put(KEY_HIKE_NAME, hike.getName()); + values.put(KEY_HIKE_AUTHOR, hike.getAuthor()); + values.put(KEY_HIKE_TIMESTAMP, hike.getTimestamp()); + values.put(KEY_HIKE_HEIGHT, hike.getHeight()); break; } return values; @@ -318,23 +332,50 @@ return getHutFromCursor(cursor); case Types.GP: return getGeoPointFromCursor(cursor); + case Types.HIKE: + return getHikeFromCursor(cursor); } return null; } + private Hike getHikeFromCursor(Cursor cursor) { + long id = cursor.getLong(0); + float length = cursor.getFloat(1); + long time = cursor.getLong(2); + int difficulty = cursor.getInt(3); + String name = cursor.getString(4); + String author = cursor.getString(5); + long timestamp = cursor.getLong(6); + float height = cursor.getFloat(7); + return new Hike(id, length, time, difficulty, name, author, timestamp, height); + } + + private Hike getHike(SQLiteDatabase db, long id){ + Cursor cursor = db.query(TABLE_HIKE, + new String[]{KEY_POI_ID, KEY_HIKE_LENGTH, KEY_HIKE_TIME, KEY_HIKE_DIFFICULTY, KEY_HIKE_NAME, KEY_HIKE_AUTHOR, KEY_HIKE_TIMESTAMP, KEY_HIKE_HEIGHT}, + KEY_POI_ID + "=?", + new String[]{String.valueOf(id)}, null, null, null, null); + if (cursor != null) { + cursor.moveToFirst(); + } + return getHikeFromCursor(cursor); + } + private DbGeoPoint getGeoPointFromCursor(Cursor cursor){ long gp_id = cursor.getLong(0); double lat = cursor.getDouble(1); double lon = cursor.getDouble(2); double alt = cursor.getDouble(3); long time = cursor.getLong(4) * 1000; - return new DbGeoPoint(gp_id, lat, lon, alt, time); + long poiId = cursor.getLong(5); + int poiType = cursor.getInt(6); + return new DbGeoPoint(gp_id, lat, lon, alt, time, poiId, poiType); } private DbGeoPoint getGeoPoint(long gp_id){ SQLiteDatabase db = getReadableDatabase(); Cursor gpCursor = db.query(TABLE_GP, - new String[]{KEY_POI_ID, KEY_POI_LAT, KEY_POI_LON, KEY_POI_ALT, KEY_POI_TIME}, + new String[]{KEY_POI_ID, KEY_POI_LAT, KEY_POI_LON, KEY_POI_ALT, KEY_POI_TIME, KEY_POI_EXT_ID, KEY_POI_TYPE}, KEY_POI_ID + "=?", new String[]{String.valueOf(gp_id)}, null, null, null, null); if(gpCursor != null){ @@ -348,14 +389,13 @@ private Fountain getFountainFromCursor(Cursor cursor){ long _id = cursor.getLong(0); - long _gp_id = cursor.getLong(1); - int size = cursor.getInt(2); - return new Fountain(_id, size, getGeoPoint(_gp_id)); + int size = cursor.getInt(1); + return new Fountain(_id, size); } private Fountain getFountain(SQLiteDatabase db, long id){ Cursor cursor = db.query(TABLE_FOUNTAIN, - new String[]{KEY_POI_ID, KEY_GP_ID, KEY_FOUNTAIN_SIZE}, + new String[]{KEY_POI_ID, KEY_FOUNTAIN_SIZE}, KEY_POI_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) { @@ -366,19 +406,17 @@ private Path getPathFromCursor(Cursor cursor){ long _id = cursor.getLong(0); - long _gp_s_id = cursor.getLong(1); - long _gp_e_id = cursor.getLong(2); - long _length = cursor.getLong(3); - int exposed = cursor.getInt(4); - int diff_wet = cursor.getInt(5); - int giddiness = cursor.getInt(6); - int climbing = cursor.getInt(7); - return new Path(_id, _length, exposed, diff_wet, giddiness, climbing, getGeoPoint(_gp_s_id), getGeoPoint(_gp_e_id)); + long _length = cursor.getLong(1); + int exposed = cursor.getInt(2); + int diff_wet = cursor.getInt(3); + int giddiness = cursor.getInt(4); + int climbing = cursor.getInt(5); + return new Path(_id, _length, exposed, diff_wet, giddiness, climbing); } private Path getPath(SQLiteDatabase db, long id){ Cursor cursor = db.query(TABLE_PATH, - new String[]{KEY_POI_ID, KEY_GP_S_ID, KEY_GP_E_ID, KEY_PATH_LENGTH, KEY_PATH_EXPOSED, KEY_PATH_DIFF_WET, KEY_PATH_GIDDINESS, KEY_PATH_CLIMBING}, + new String[]{KEY_POI_ID, KEY_PATH_LENGTH, KEY_PATH_EXPOSED, KEY_PATH_DIFF_WET, KEY_PATH_GIDDINESS, KEY_PATH_CLIMBING}, KEY_POI_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) { @@ -389,17 +427,16 @@ private BreakPoint getBreakpointFromCursor(Cursor cursor){ long _id = cursor.getLong(0); - long _gp_id = cursor.getLong(1); - int stone = cursor.getInt(2); - int bench = cursor.getInt(3); - int table = cursor.getInt(4); - int roofed = cursor.getInt(5); - return new BreakPoint(_id, stone, bench, table, roofed, getGeoPoint(_gp_id)); + int stone = cursor.getInt(1); + int bench = cursor.getInt(2); + int table = cursor.getInt(3); + int roofed = cursor.getInt(4); + return new BreakPoint(_id, stone, bench, table, roofed); } private BreakPoint getBreakpoint(SQLiteDatabase db, long id){ Cursor cursor = db.query(TABLE_BREAK_POINT, - new String[]{KEY_POI_ID, KEY_GP_ID, KEY_BREAK_POINT_STONE, KEY_BREAK_POINT_BENCH, KEY_BREAK_POINT_TABLE, KEY_BREAK_POINT_ROOFED}, + new String[]{KEY_POI_ID, KEY_BREAK_POINT_STONE, KEY_BREAK_POINT_BENCH, KEY_BREAK_POINT_TABLE, KEY_BREAK_POINT_ROOFED}, KEY_POI_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) { @@ -410,13 +447,12 @@ private TrashBin getTrashbinFromCursor(Cursor cursor){ long _id = cursor.getLong(0); - long _gp_id = cursor.getLong(1); - return new TrashBin(_id, getGeoPoint(_gp_id)); + return new TrashBin(_id); } private TrashBin getTrashbin(SQLiteDatabase db, long id){ Cursor cursor = db.query(TABLE_TRASH_BIN, - new String[]{KEY_POI_ID, KEY_GP_ID}, + new String[]{KEY_POI_ID}, KEY_POI_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) { @@ -427,9 +463,10 @@ private Image getImageFromCursor(Cursor cursor){ long _id = cursor.getLong(0); - long _gp_id = cursor.getLong(1); - byte[] img = cursor.getBlob(2); - return new Image(_id, img, getGeoPoint(_gp_id)); + long poiId = cursor.getLong(1); + int poiType = cursor.getInt(2); + byte[] img = cursor.getBlob(3); + return new Image(_id, img, poiId, poiType); } private Image getImage(SQLiteDatabase db, long id){ @@ -445,18 +482,17 @@ private CellReception getCellReceptionFromCursor(Cursor cursor){ long _id = cursor.getLong(0); - long _gp_id = cursor.getLong(1); - int strength = cursor.getInt(2); - String opName = cursor.getString(3); - String opCountry = cursor.getString(4); - int roaming = cursor.getInt(5); - String nwType = cursor.getString(6); - return new CellReception(_id, strength, opName, opCountry, roaming, nwType, getGeoPoint(_gp_id)); + int strength = cursor.getInt(1); + String opName = cursor.getString(2); + String opCountry = cursor.getString(3); + int roaming = cursor.getInt(4); + String nwType = cursor.getString(5); + return new CellReception(_id, strength, opName, opCountry, roaming, nwType); } private CellReception getCellReception(SQLiteDatabase db, long id){ Cursor cursor = db.query(TABLE_CELL_RECEPTION, - new String[]{KEY_POI_ID, KEY_GP_ID, KEY_CELL_RECEPTION_STRENGTH, KEY_CELL_RECEPTION_OP_NAME, KEY_CELL_RECEPTION_OP_COUNTRY, KEY_CELL_RECEPTION_ROAMING, KEY_CELL_RECEPTION_NW_TYPE}, + new String[]{KEY_POI_ID, KEY_CELL_RECEPTION_STRENGTH, KEY_CELL_RECEPTION_OP_NAME, KEY_CELL_RECEPTION_OP_COUNTRY, KEY_CELL_RECEPTION_ROAMING, KEY_CELL_RECEPTION_NW_TYPE}, KEY_POI_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) { @@ -467,15 +503,14 @@ private Wifi getWifiFromCursor(Cursor cursor){ long _id = cursor.getLong(0); - long _gp_id = cursor.getLong(1); - String ssid = cursor.getString(2); - int levels = cursor.getInt(3); - return new Wifi(_id, ssid, levels, getGeoPoint(_gp_id)); + String ssid = cursor.getString(1); + int levels = cursor.getInt(2); + return new Wifi(_id, ssid, levels); } private Wifi getWifi(SQLiteDatabase db, long id){ Cursor cursor = db.query(TABLE_WIFI, - new String[]{KEY_POI_ID, KEY_GP_ID, KEY_WIFI_SSID, KEY_WIFI_LEVELS}, + new String[]{KEY_POI_ID, KEY_WIFI_SSID, KEY_WIFI_LEVELS}, KEY_POI_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) { @@ -486,15 +521,13 @@ private Lift getLiftFromCursor(Cursor cursor){ long _id = cursor.getLong(0); - long _gp_s_id = cursor.getLong(1); - long _gp_e_id = cursor.getLong(2); String name = cursor.getString(3); - return new Lift(_id, name, getGeoPoint(_gp_s_id), getGeoPoint(_gp_e_id)); + return new Lift(_id, name); } private Lift getLift(SQLiteDatabase db, long id){ Cursor cursor = db.query(TABLE_LIFT, - new String[]{KEY_POI_ID, KEY_GP_S_ID, KEY_GP_E_ID, KEY_LIFT_NAME}, + new String[]{KEY_POI_ID, KEY_LIFT_NAME}, KEY_POI_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) { @@ -505,14 +538,13 @@ private Peak getPeakFromCursor(Cursor cursor){ long _id = cursor.getLong(0); - long _gp_id = cursor.getLong(1); - String name = cursor.getString(2); - return new Peak(_id, name, getGeoPoint(_gp_id)); + String name = cursor.getString(1); + return new Peak(_id, name); } private Peak getPeak(SQLiteDatabase db, long id){ Cursor cursor = db.query(TABLE_PEAK, - new String[]{KEY_POI_ID, KEY_GP_ID, KEY_PEAK_NAME}, + new String[]{KEY_POI_ID, KEY_PEAK_NAME}, KEY_POI_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) { @@ -523,16 +555,15 @@ private Hut getHutFromCursor(Cursor cursor){ long _id = cursor.getLong(0); - long _gp_id = cursor.getLong(1); - int hut_type = cursor.getInt(2); - int winterroom = cursor.getInt(3); - String name = cursor.getString(4); - return new Hut(_id, hut_type, winterroom, name, getGeoPoint(_gp_id)); + int hut_type = cursor.getInt(1); + int winterroom = cursor.getInt(2); + String name = cursor.getString(3); + return new Hut(_id, hut_type, winterroom, name); } private Hut getHut(SQLiteDatabase db, long id){ Cursor cursor = db.query(TABLE_HUT, - new String[]{KEY_POI_ID, KEY_GP_ID, KEY_HUT_TYPE, KEY_HUT_WINTER_ROOM, KEY_HUT_NAME}, + new String[]{KEY_POI_ID, KEY_HUT_TYPE, KEY_HUT_WINTER_ROOM, KEY_HUT_NAME}, KEY_POI_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) { @@ -541,9 +572,23 @@ return getHutFromCursor(cursor); } + public DbGeoPoint getGeoPoint(long poiId, int poiType) { + SQLiteDatabase db = this.getReadableDatabase(); + Cursor cursor = db.query(TABLE_GP, + null, + KEY_POI_EXT_ID + "=? AND " + KEY_POI_TYPE + "=?", + new String[]{String.valueOf(poiId), String.valueOf(poiType)}, + null, + null, + null); + if(cursor != null && cursor.moveToFirst()) { + return getGeoPointFromCursor(cursor); + } + return null; + } + public Poi getPoi(long id, int type){ SQLiteDatabase db = this.getReadableDatabase(); - switch(type){ case Types.FOUNTAIN: return getFountain(db, id); @@ -567,6 +612,8 @@ return getHut(db, id); case Types.GP: return getGeoPoint(id); + case Types.HIKE: + return getHike(db, id); } db.close(); @@ -615,105 +662,14 @@ return rowId; } - private void deleteByGpId(long gpId) { - SQLiteDatabase db = this.getWritableDatabase(); - int nrOfEntries = 0; - String[] selections = new String[]{KEY_GP_ID}; - String selectionArgs = KEY_GP_ID + "=?"; - String[] values = new String[]{String.valueOf(gpId)}; - for(String table : TABLES){ - if(table.equals(TABLE_GP)) continue; - if(table.equals(TABLE_LIFT) || table.equals(TABLE_PATH)) { - selections = new String[]{KEY_GP_S_ID, KEY_GP_E_ID}; - selectionArgs = KEY_GP_S_ID + "=? OR " + KEY_GP_E_ID + "=?"; - values = new String[]{String.valueOf(gpId), String.valueOf(gpId)}; - } - Cursor cursor = db.query(table, - selections, - selectionArgs, - values, null, null, null, null); - nrOfEntries += cursor.getCount(); - cursor.close(); - } - if(nrOfEntries == 1) { //no other POI uses this geopoint anymore - db.delete( - TABLE_GP, - KEY_POI_ID + "=?", - new String[]{String.valueOf(gpId)} - ); - } - db.close(); - } - public void deletePoi(long _id, int type){ SQLiteDatabase db = this.getWritableDatabase(); String table = getTableName(type); - if(table.equals(TABLE_PATH) || table.equals(TABLE_LIFT)) { - Cursor cursor = db.query(table, - new String[]{KEY_GP_S_ID, KEY_GP_E_ID}, - KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}, null, null, null, null); - if(cursor.moveToFirst()){ - deleteByGpId(cursor.getLong(0)); - deleteByGpId(cursor.getLong(1)); - } - cursor.close(); - } else { - Cursor cursor = db.query(table, - new String[]{KEY_GP_ID}, - KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}, null, null, null, null); - if(cursor.moveToFirst()){ - deleteByGpId(cursor.getLong(0)); // there is only one column - } - cursor.close(); - } - switch (type){ - case Types.FOUNTAIN: - db.delete(TABLE_FOUNTAIN, KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}); - break; - case Types.PATH: - db.delete(TABLE_PATH, KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}); - break; - case Types.BREAK_POINT: - db.delete(TABLE_BREAK_POINT, KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}); - break; - case Types.TRASH_BIN: - db.delete(TABLE_TRASH_BIN, KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}); - break; - case Types.PIC: - db.delete(TABLE_IMAGE, KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}); - break; - case Types.CELL_RECEPTION: - db.delete(TABLE_CELL_RECEPTION, KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}); - break; - case Types.WIFI: - db.delete(TABLE_WIFI, KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}); - break; - case Types.LIFT: - db.delete(TABLE_LIFT, KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}); - break; - case Types.PEAK: - db.delete(TABLE_PEAK, KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}); - break; - case Types.HUT: - db.delete(TABLE_HUT, KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}); - break; - case Types.GP: - db.delete(TABLE_GP, KEY_POI_ID + "=?", - new String[]{String.valueOf(_id)}); - break; - } + db.delete(table, KEY_POI_ID + "=?", + new String[]{String.valueOf(_id)}); + db.delete(TABLE_GP, + KEY_POI_EXT_ID + "=? AND " + KEY_POI_TYPE + "=?", + new String[]{String.valueOf(_id), String.valueOf(type)}); db.close(); } @@ -844,6 +800,9 @@ case Types.GP: table = TABLE_GP; break; + case Types.HIKE: + table = TABLE_HIKE; + break; } return table; } diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/HikeHandler.java b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/HikeHandler.java index 40ddec3..80490fc 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/HikeHandler.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/HikeHandler.java @@ -53,12 +53,16 @@ public void startRecording() { isRecording = true; + path.setPoints(new ArrayList()); + time = 0; + length = 0; + timestamps = new ArrayList<>(); + geopoints = new ArrayList<>(); } public void stopRecording() { isRecording = false; updateProperties(); - path.setPoints(new ArrayList()); } private void updateProperties() { 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 4cdc67f..3de0577 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java @@ -354,7 +354,7 @@ List poiMarker = dbHandler.getAllPois(); for(Poi p : poiMarker){ - DbGeoPoint dbgp = p.getGp(); + DbGeoPoint dbgp = dbHandler.getGeoPoint(p.getId(), p.getType()); GeoPoint gp = new GeoPoint(dbgp.getLat(), dbgp.getLon(), dbgp.getAlt()); OverlayItem oI = new OverlayItem(String.valueOf(dbgp.getTime()), String.valueOf(p.getId()), String.valueOf(p.getType()), gp); Drawable[] iconLayer = new Drawable[2]; @@ -431,7 +431,7 @@ List poiMarker = dbHandler.getAllPois(); for(Poi p : poiMarker){ - DbGeoPoint dbgp = p.getGp(); + DbGeoPoint dbgp = dbHandler.getGeoPoint(p.getId(), p.getType()); GeoPoint gp = new GeoPoint(dbgp.getLat(), dbgp.getLon(), dbgp.getAlt()); OverlayItem oI = new OverlayItem(String.valueOf(dbgp.getTime()), String.valueOf(p.getId()), String.valueOf(p.getType()), gp); Drawable[] iconLayer = new Drawable[2]; @@ -456,8 +456,7 @@ public void onClick(DialogInterface dialog, int which) { ArrayList pathMarkers = MainActivity.getPathMarkers(); ArrayList waypoints = new ArrayList<>(); - DbGeoPoint current; - DbGeoPoint last = null; + long poiId = addPoi(new Lift(0, "")); for(int i=0; i overlayItemList = new ArrayList<>(); List poiMarker = dbHandler.getAllPois(); for(Poi p : poiMarker){ - DbGeoPoint dbgp = p.getGp(); + DbGeoPoint dbgp = dbHandler.getGeoPoint(p.getId(), p.getType()); GeoPoint gp = new GeoPoint(dbgp.getLat(), dbgp.getLon(), dbgp.getAlt()); OverlayItem oI = new OverlayItem(String.valueOf(dbgp.getTime()), String.valueOf(p.getId()), String.valueOf(p.getType()), gp); Drawable[] iconLayer = new Drawable[2]; @@ -586,7 +576,7 @@ String opCountry = tm.getNetworkCountryIso(); String nwType = MainActivity.getActiveNetwork().getSubtypeName(); int roaming = (tm.isNetworkRoaming()) ? 1 : 0; - addPoi(new CellReception(0, networkStrength, opName, opCountry, roaming, nwType, null)); + addPoi(new CellReception(0, networkStrength, opName, opCountry, roaming, nwType)); } else { Log.d(MainActivity.TAG, "You are not connected to a phone network"); } @@ -623,7 +613,7 @@ int rssi = wm.getConnectionInfo().getRssi(); int levels = WifiManager.calculateSignalLevel(rssi, MainActivity.MAX_WIFI_LEVELS); Log.d(MainActivity.TAG, "You are currently connected to '" + ssid + "' with " + levels + " (" + rssi + ")"); - addPoi(new Wifi(0, ssid, levels, null)); + addPoi(new Wifi(0, ssid, levels)); } else { Log.d(MainActivity.TAG, "Wifi network not available/connected"); } @@ -639,6 +629,8 @@ String file = getFilePath(data); int type = Integer.parseInt(MainActivity.imageMarker.getSnippet()); //Long.parseLong(uidParts[1]); + long id = Long.parseLong(MainActivity.imageMarker.getTitle()); + long imgId = dbHandler.addPoi(new Image(0, imgData, id, type)); DbGeoPoint dbgp; ExifInterface exifInterface = null; try { @@ -661,15 +653,13 @@ } } - dbgp = new DbGeoPoint(exifLatLon[0], exifLatLon[1], alt, time); - long rowId = addGp(dbgp); - dbgp.setId(rowId); + dbgp = new DbGeoPoint(exifLatLon[0], exifLatLon[1], alt, time, imgId, Types.PIC); } else { - long id = Long.parseLong(MainActivity.imageMarker.getTitle()); - dbgp = dbHandler.getPoi(id, type).getGp(); + dbgp = dbHandler.getGeoPoint(id, type); + dbgp.set_poiId(imgId); + dbgp.set_poiType(Types.PIC); } - - addPoi(new Image(0, imgData, type, dbgp)); + dbHandler.addPoi(dbgp); } public long addGp(DbGeoPoint dbgp){ @@ -677,22 +667,16 @@ } public long addPoi(Poi poi){ - DbGeoPoint dbgp = poi.getGp(); - if(dbgp == null){ - Location mLocation = MainActivity.getLocation(); - double _lat = mLocation.getLatitude(); - double _lon = mLocation.getLongitude(); - double _alt = mLocation.getAltitude(); - long _time = System.currentTimeMillis() / 1000; - - 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) MainActivity.Toaster(context.getString(R.string.add_poi_success), true, context); + Location mLocation = MainActivity.getLocation(); + double _lat = mLocation.getLatitude(); + double _lon = mLocation.getLongitude(); + double _alt = mLocation.getAltitude(); + long _time = System.currentTimeMillis() / 1000; + + DbGeoPoint dbgp = new DbGeoPoint(_lat, _lon, _alt, _time, rowId, poi.getType()); + long gp_id = dbHandler.addPoi(dbgp); if(MainActivity.hasInternet()) addPoiToOsm(dbgp.getLat(), dbgp.getLon(), dbgp.getAlt(), poi.getType(), null); else ;//TODO add callback, not part of core return rowId; @@ -766,7 +750,7 @@ List tempPoiList = params[0]; //This is only one list for(int i=0; i waypoints = new ArrayList<>(); - DbGeoPoint current; - DbGeoPoint last = null; + long poiId = poiHandler.addPoi(new Path(0, 0, exposed, diffWet, giddiness, climbing)); for(int i=0; i. + * + * @copyright Copyright (c) 2016 Vinzenz Rosenkanz + * + * @author Vinzenz Rosenkranz + */ + +package de.apps4ics.mountainnavigation.pois; + +public class Hike extends Poi { + private float length; + private long time; + private int difficulty; + private String name; + private String author; + private long timestamp; + private float height; + + public Hike(long _id) { + super(_id, Types.HIKE); + } + public Hike(){ + super(Types.HIKE); + } + public Hike(long _id, float length, long time, int difficulty, String name, String author, long timestamp, float height){ + super(_id, Types.HIKE); + this.length = length; + this.time = time; + this.difficulty = difficulty; + this.name = name; + this.author = author; + this.timestamp = timestamp; + this.height = height; + } + + public long getTimestamp() { + return timestamp; + } + + public void setTimestamp(long timestamp) { + this.timestamp = timestamp; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public int getDifficulty() { + return difficulty; + } + + public void setDifficulty(int difficulty) { + this.difficulty = difficulty; + } + + public float getHeight() { + return height; + } + + public void setHeight(float height) { + this.height = height; + } + + public float getLength() { + return length; + } + + public void setLength(float length) { + this.length = length; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public long getTime() { + return time; + } + + public void setTime(long time) { + this.time = time; + } +} diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Hut.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Hut.java index 1e33949..20423df 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Hut.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Hut.java @@ -32,8 +32,8 @@ public Hut(){ super(Types.HUT); } - public Hut(long _id, int hut_type, int winterroom, String name, DbGeoPoint gp){ - super(_id, Types.HUT, gp); + public Hut(long _id, int hut_type, int winterroom, String name){ + super(_id, Types.HUT); this.huttype = hut_type; this.winterroom = winterroom; this.name = name; diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Image.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Image.java index 46ebfa9..c694188 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Image.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Image.java @@ -23,6 +23,8 @@ public class Image extends Poi { private byte[] image; + private long poiId; + private int poiType; public Image(long _id) { super(_id, Types.PIC); @@ -30,16 +32,22 @@ public Image(){ super(Types.PIC); } - public Image(long _id, byte[] image, DbGeoPoint gp){ - super(_id, Types.PIC, gp); + public Image(long _id, byte[] image, long poiId, int poiType){ + super(_id, Types.PIC); this.image = image; - } - - public long getGpId(){ - return gpId; + this.poiId = poiId; + this.poiType = poiType; } public byte[] getImage(){ return image; } + + public int getPoiType() { + return poiType; + } + + public long getPoiId() { + return poiId; + } } \ No newline at end of file diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Lift.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Lift.java index 91b507e..4fd1cd1 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Lift.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Lift.java @@ -22,8 +22,6 @@ package de.apps4ics.mountainnavigation.pois; public class Lift extends Poi { - private DbGeoPoint end; - private long endGpId; private String name; public Lift(long _id) { @@ -32,27 +30,9 @@ public Lift(){ super(Types.LIFT); } - public Lift(long _id, String name, DbGeoPoint start, DbGeoPoint end){ - super(_id, Types.LIFT, start); + public Lift(long _id, String name){ + super(_id, Types.LIFT); this.name = name; - this.end = end; - this.endGpId = end.getId(); - } - - public long getStartGpId() { - return gpId; - } - - public DbGeoPoint getStartGp(){ - return gp; - } - - public long getEndGpId() { - return endGpId; - } - - public DbGeoPoint getEndGp(){ - return end; } public String getName() { diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Path.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Path.java index 0edcec9..1674d6f 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Path.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Path.java @@ -22,13 +22,11 @@ package de.apps4ics.mountainnavigation.pois; public class Path extends Poi { - private long gp_e_id; private long length; private int exposed; private int diffWet; private int giddiness; private int climbing; - private DbGeoPoint end; public Path(long _id) { super(_id, Types.PATH); @@ -36,33 +34,15 @@ public Path() { super(Types.PATH); } - public Path(long _id, long _length, int exposed, int diff_wet, int giddiness, int climbing, DbGeoPoint start, DbGeoPoint end){ - super(_id, Types.PATH, start); + public Path(long _id, long _length, int exposed, int diff_wet, int giddiness, int climbing){ + super(_id, Types.PATH); this.length = _length; this.exposed = exposed; this.diffWet = diff_wet; this.giddiness = giddiness; this.climbing = climbing; - this.end = end; - this.gp_e_id = end.getId(); } - public long getStartGpId() { - return gpId; - } - - public DbGeoPoint getStartGp(){ - return gp; - } - - public long getEndGpId() { - return gp_e_id; - } - - - public DbGeoPoint getEndGp(){ - return end; - } public long getLength() { return length; diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Peak.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Peak.java index 52a307b..455735b 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Peak.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Peak.java @@ -30,8 +30,8 @@ public Peak(){ super(Types.PEAK); } - public Peak(long _id, String name, DbGeoPoint gp){ - super(_id, Types.PEAK, gp); + public Peak(long _id, String name){ + super(_id, Types.PEAK); this.name = name; } diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Poi.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Poi.java index b463c61..1cae016 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Poi.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Poi.java @@ -28,15 +28,12 @@ public class Poi { protected long _id; protected int _type; - protected DbGeoPoint gp; - protected long gpId; protected String infoFromOsm; public Poi() { } public Poi(POI p) { - gp = new DbGeoPoint(p.mLocation); infoFromOsm = p.mCategory + ":" + p.mDescription + ":" + p.mType; switch (p.mType) { case "path": @@ -84,23 +81,6 @@ return result; } - public long getGpId(){ - return gpId; - } - - public DbGeoPoint getGp(){ - return gp; - } - - public void setGpId(long gpId){ - this.gpId = gpId; - } - - public void setGp(DbGeoPoint gp){ - this.gp = gp; - this.gpId = gp.getId(); - } - public Poi(int _type){ this._type = _type; } @@ -110,14 +90,6 @@ this._type = _type; } - public Poi(long _id, int _type, DbGeoPoint _gp){ - this(_id, _type); - if(_gp != null){ - this.gp = _gp; - this.gpId = _gp.getId(); - } - } - public void display() { MainActivity.addPoiToMap(this); } diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/TrashBin.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/TrashBin.java index fdbcee2..623dc74 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/TrashBin.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/TrashBin.java @@ -28,7 +28,4 @@ public TrashBin(){ super(Types.TRASH_BIN); } - public TrashBin(long id, DbGeoPoint gp){ - super(id, Types.TRASH_BIN, gp); - } } \ No newline at end of file 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 550676c..243a30b 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Types.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Types.java @@ -33,6 +33,7 @@ public static final int PEAK = 8; public static final int HUT = 9; public static final int GP = 10; + public static final int HIKE = 11; - public static final int SIZE = 11; + public static final int SIZE = 12; } diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Wifi.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Wifi.java index 702ddc2..eed5fd2 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Wifi.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Wifi.java @@ -31,8 +31,8 @@ public Wifi(){ super(Types.WIFI); } - public Wifi(long _id, String ssid, int levels, DbGeoPoint gp){ - super(_id, Types.WIFI, gp); + public Wifi(long _id, String ssid, int levels){ + super(_id, Types.WIFI); this.ssid = ssid; this.levels = levels; }