diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 2530da5..715fda3 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -8,6 +8,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.res.Resources; +import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; @@ -1172,10 +1173,7 @@ private void addImagePoi(Uri data){ byte[] imgData = createImage(data); if(imgData == null || imageMarker == null) Log.d(TAG, "image data or marker is null..."); - String file = data.getPath(); - - String[] uidParts = imageMarker.getUid().split("_"); - long gpId = Long.parseLong(uidParts[1]); + String file = getFilePath(data); DbGeoPoint dbgp; ExifInterface exifInterface = null; @@ -1187,14 +1185,9 @@ float[] exifLatLon = new float[2]; if(exifInterface != null && exifInterface.getLatLong(exifLatLon)){ double alt = exifInterface.getAltitude(0); - SimpleDateFormat timestampFormat = new SimpleDateFormat(""); + + SimpleDateFormat timestampFormat = new SimpleDateFormat("yyyy:M:d H:m:s"); String timestamp = exifInterface.getAttribute(ExifInterface.TAG_DATETIME); - String latDeg = exifInterface.getAttribute(ExifInterface.TAG_GPS_LATITUDE_REF); - String lonDeg = exifInterface.getAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF); - - Log.d(TAG, "Lat: " + exifLatLon[0] + ", Lon: " + exifLatLon[1]); - Log.d(TAG, "Date: " + timestamp + "; Alt: " + alt + "; LatRef: " + latDeg + "; LonRef: " + lonDeg); - long time = 0; if(timestamp != null){ try { @@ -1203,11 +1196,14 @@ pe.printStackTrace(); } } + dbgp = new DbGeoPoint(exifLatLon[0], exifLatLon[1], alt, time); long rowId = addGp(dbgp); dbgp.setId(rowId); dbHandler.updatePoi(dbgp); } else { + String[] uidParts = imageMarker.getUid().split("_"); + long gpId = Long.parseLong(uidParts[1]); dbgp = (DbGeoPoint) dbHandler.getPoi(gpId, Types.GP); } addPoi(new Image(0, dbgp.getTypeId(), imgData, dbgp)); @@ -1336,4 +1332,16 @@ protected void onDestroy() { super.onDestroy(); } + + private String getFilePath(Uri uri){ + String[] filePathColumn = { MediaStore.Images.Media.DATA }; + Cursor cursor = getContentResolver().query(uri, filePathColumn, null, null, null); + String filePath = null; + if(cursor.moveToFirst()){ + int columnIndex = cursor.getColumnIndex(filePathColumn[0]); + filePath = cursor.getString(columnIndex); + } + cursor.close(); + return filePath; + } }