From 0da4fc45cbfab1de9887cf759257fb80de2a39bd Mon Sep 17 00:00:00 2001 From: Zahnstocher <1073398+Zahnstocher@users.noreply.github.com> Date: Thu, 1 Aug 2024 15:35:07 +0200 Subject: [PATCH] Export to public directory (Fix #443, Fix #440) --- app/src/main/java/net/osmtracker/activity/About.java | 12 ++++++++++-- app/src/main/java/net/osmtracker/db/DataHelper.java | 2 +- .../java/net/osmtracker/gpx/ExportToStorageTask.java | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/net/osmtracker/activity/About.java b/app/src/main/java/net/osmtracker/activity/About.java index 8386ef4f9..69406cb30 100644 --- a/app/src/main/java/net/osmtracker/activity/About.java +++ b/app/src/main/java/net/osmtracker/activity/About.java @@ -10,6 +10,7 @@ import android.app.Dialog; import android.app.ProgressDialog; import android.content.DialogInterface; +import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; @@ -76,7 +77,7 @@ public void onClick(View view) { File dbFile = getDatabasePath(DatabaseHelper.DB_NAME); File targetFolder = new File( - view.getContext().getExternalFilesDir(null), + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), //Environment.getExternalStorageDirectory(), PreferenceManager.getDefaultSharedPreferences(About.this).getString( OSMTracker.Preferences.KEY_STORAGE_DIR, @@ -128,10 +129,17 @@ public ProgressDialog getExportDbProgressDialog() { private String getDebugInfo() { File externalStorageDir = this.getExternalFilesDir(null); + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); + String exportDirectoryNameInPreferences = preferences.getString( + OSMTracker.Preferences.KEY_STORAGE_DIR, OSMTracker.Preferences.VAL_STORAGE_DIR); + File baseExportDirectory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), + exportDirectoryNameInPreferences); return "External Storage Directory: '" + externalStorageDir + "'\n" + "External Storage State: '" + Environment.getExternalStorageState() + "'\n" + "Can write to external storage: " - + Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) + "\n"; + + Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) + "\n" + + "Export External Public Storage Directory: '" + + baseExportDirectory + "'\n"; } } diff --git a/app/src/main/java/net/osmtracker/db/DataHelper.java b/app/src/main/java/net/osmtracker/db/DataHelper.java index 3dd174563..ea8daa96b 100644 --- a/app/src/main/java/net/osmtracker/db/DataHelper.java +++ b/app/src/main/java/net/osmtracker/db/DataHelper.java @@ -396,7 +396,7 @@ public static File getTrackDirectory(long trackId, Context context) { File _return = null; String trackStorageDirectory = context.getExternalFilesDir(null) - + "/osmtracker/track" + trackId; + + OSMTracker.Preferences.VAL_STORAGE_DIR + File.separator + "track" + trackId; _return = new File(trackStorageDirectory); return _return; diff --git a/app/src/main/java/net/osmtracker/gpx/ExportToStorageTask.java b/app/src/main/java/net/osmtracker/gpx/ExportToStorageTask.java index 32d97718d..b53d65a65 100644 --- a/app/src/main/java/net/osmtracker/gpx/ExportToStorageTask.java +++ b/app/src/main/java/net/osmtracker/gpx/ExportToStorageTask.java @@ -97,7 +97,7 @@ public File getBaseExportDirectory(SharedPreferences prefs) throws ExportTrackEx OSMTracker.Preferences.KEY_STORAGE_DIR, OSMTracker.Preferences.VAL_STORAGE_DIR); Log.d(TAG,"exportDirectoryNameInPreferences: " + exportDirectoryNameInPreferences); - File baseExportDirectory = new File(context.getExternalFilesDir(null), + File baseExportDirectory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), exportDirectoryNameInPreferences); if(! baseExportDirectory.exists()){