diff --git a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java index 96c1849f..82bca962 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java +++ b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java @@ -356,13 +356,30 @@ public class OpenScale { updateScaleData(); } - public String getFilenameFromUri(Uri uri) { + public String getFilenameFromUriMayThrow(Uri uri) { Cursor cursor = context.getContentResolver().query( uri, null, null, null, null); cursor.moveToFirst(); return cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)); } + public String getFilenameFromUri(Uri uri) { + try { + return getFilenameFromUriMayThrow(uri); + } + catch (Exception e) { + String name = uri.getLastPathSegment(); + if (name != null) { + return name; + } + name = uri.getPath(); + if (name != null) { + return name; + } + return uri.toString(); + } + } + public void importData(Uri uri) { try { final String filename = getFilenameFromUri(uri); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/MainActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/MainActivity.java index 9d1276f3..4b88efd6 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/MainActivity.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/MainActivity.java @@ -590,7 +590,7 @@ public class MainActivity extends BaseAppCompatActivity // Verify that the file still exists and that we have write permission getContentResolver().takePersistableUriPermission(uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION); - openScale.getFilenameFromUri(uri); + openScale.getFilenameFromUriMayThrow(uri); } catch (Exception ex) { uri = null;