diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/DatabaseHandler.java b/app/src/main/java/de/apps4ics/mountainnavigation/DatabaseHandler.java index abfa182..3113f64 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/DatabaseHandler.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/DatabaseHandler.java @@ -76,6 +76,7 @@ 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_IMAGE_ASSOC = "_associated_poi"; public DatabaseHandler(Context context){ super(context, DATABASE_NAME, null, DATABASE_VERSION); @@ -159,7 +160,8 @@ String CREATE_IMAGE_TABLE = "CREATE TABLE " + TABLE_IMAGE + "(" + KEY_POI_ID + " INTEGER PRIMARY KEY," + KEY_GP_ID + " INTEGER," - + KEY_IMAGE_IMG + " BLOB" + ")"; + + KEY_IMAGE_IMG + " BLOB," + + KEY_IMAGE_ASSOC + " INTEGER" + ")"; db.execSQL(CREATE_IMAGE_TABLE); //create trash bin table String CREATE_TRASH_TABLE = "CREATE TABLE " + TABLE_TRASH_BIN + "(" @@ -407,12 +409,13 @@ long _id = cursor.getLong(0); long _gp_id = cursor.getLong(1); byte[] img = cursor.getBlob(2); - return new Image(_id, img, getGeoPoint(_gp_id)); + int assoc_poi = cursor.getInt(3); + return new Image(_id, img, assoc_poi, getGeoPoint(_gp_id)); } private Image getImage(SQLiteDatabase db, long id){ Cursor cursor = db.query(TABLE_IMAGE, - new String[]{KEY_POI_ID, KEY_GP_ID, KEY_IMAGE_IMG}, + new String[]{KEY_POI_ID, KEY_GP_ID, KEY_IMAGE_IMG, KEY_IMAGE_ASSOC}, KEY_POI_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) { diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 522274d..5f0c8e7 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -1169,7 +1169,8 @@ if(imgData == null || imageMarker == null) Log.d(TAG, "image data or marker is null..."); String file = getFilePath(data); - DbGeoPoint dbgp; + int type = Integer.parseInt(imageMarker.getSnippet()); //Long.parseLong(uidParts[1]); + DbGeoPoint dbgp = null; ExifInterface exifInterface = null; try { exifInterface = new ExifInterface(file); @@ -1195,11 +1196,11 @@ long rowId = addGp(dbgp); dbgp.setId(rowId); } else { - String[] uidParts = imageMarker.getUid().split("_"); - long gpId = Long.parseLong(uidParts[1]); - dbgp = (DbGeoPoint) dbHandler.getPoi(gpId, Types.GP); + long id = Long.parseLong(imageMarker.getTitle()); + dbgp = dbHandler.getPoi(id, type).getGp(); } - addPoi(new Image(0, imgData, dbgp)); + + addPoi(new Image(0, imgData, type, dbgp)); } public long addGp(DbGeoPoint dbgp){ 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 d30aab0..0d4f65e 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Image.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Image.java @@ -7,6 +7,7 @@ */ public class Image extends Poi { byte[] image; + int associated_poi_type; public Image(long _id) { super(_id, Types.PIC); @@ -14,9 +15,14 @@ public Image(){ super(Types.PIC); } - public Image(long _id, byte[] image, DbGeoPoint gp){ + public Image(long _id, byte[] image, int associated_poi_type, DbGeoPoint gp){ super(_id, Types.PIC, gp); this.image = image; + this.associated_poi_type = associated_poi_type; + } + + public int getAssociatedPoiType(){ + return associated_poi_type; } public byte[] getImage(){