diff --git a/gpslogger/src/main/java/com/mendhak/gpslogger/settings/LoggingSettingsActivity.java b/gpslogger/src/main/java/com/mendhak/gpslogger/settings/LoggingSettingsActivity.java
index 61726326f..4c0526f03 100644
--- a/gpslogger/src/main/java/com/mendhak/gpslogger/settings/LoggingSettingsActivity.java
+++ b/gpslogger/src/main/java/com/mendhak/gpslogger/settings/LoggingSettingsActivity.java
@@ -27,6 +27,7 @@
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
+import android.text.Html;
import android.view.MenuItem;
import com.mendhak.gpslogger.GpsMainActivity;
import com.mendhak.gpslogger.R;
@@ -107,7 +108,11 @@ protected void onPostCreate(Bundle savedInstanceState) {
Preference gpsloggerFolder = (Preference) findPreference("gpslogger_folder");
gpsloggerFolder.setOnPreferenceClickListener(this);
- gpsloggerFolder.setSummary(prefs.getString("gpslogger_folder", Utilities.GetDefaultStorageFolder(getApplicationContext()).getAbsolutePath()));
+ String gpsLoggerFolderPath = prefs.getString("gpslogger_folder", Utilities.GetDefaultStorageFolder(getApplicationContext()).getAbsolutePath());
+ gpsloggerFolder.setSummary(gpsLoggerFolderPath);
+ if(!(new File(gpsLoggerFolderPath)).canWrite()){
+ gpsloggerFolder.setSummary(Html.fromHtml("" + gpsLoggerFolderPath + ""));
+ }
CheckBoxPreference chkLog_opengts = (CheckBoxPreference) findPreference("log_opengts");
chkLog_opengts.setOnPreferenceClickListener(this);
@@ -169,6 +174,11 @@ public synchronized void onActivityResult(final int requestCode, int resultCode,
}
tracer.debug("Folder path selected" + filePath);
+ if(!chosenFile.canWrite()){
+ Utilities.MsgBox(getString(R.string.sorry), getString(R.string.pref_logging_file_no_permissions), LoggingSettingsActivity.this);
+ return;
+ }
+
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putString("gpslogger_folder", filePath);
@@ -177,6 +187,8 @@ public synchronized void onActivityResult(final int requestCode, int resultCode,
Preference gpsloggerFolder = (Preference) findPreference("gpslogger_folder");
gpsloggerFolder.setSummary(filePath);
+
+
} else if (resultCode == Activity.RESULT_CANCELED) {
tracer.debug("No file selected");
}
diff --git a/gpslogger/src/main/res/values/strings.xml b/gpslogger/src/main/res/values/strings.xml
index 886f7f8e7..ff2fdf18b 100644
--- a/gpslogger/src/main/res/values/strings.xml
+++ b/gpslogger/src/main/res/values/strings.xml
@@ -474,5 +474,6 @@
Which location providers to use when they are available; GPS for satellites, Network for cell tower/wifi, Passive is a special provider that listens for locations requested from other applications.
Location providers
Number of minutes
+ That folder is not writable by GPSLogger