Skip to content

Commit 477d76f

Browse files
author
mendhak
committed
Indicate whether the selected folder is writeable
Issue #275
1 parent 8c6bc4b commit 477d76f

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

gpslogger/src/main/java/com/mendhak/gpslogger/settings/LoggingSettingsActivity.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import android.preference.Preference;
2828
import android.preference.PreferenceActivity;
2929
import android.preference.PreferenceManager;
30+
import android.text.Html;
3031
import android.view.MenuItem;
3132
import com.mendhak.gpslogger.GpsMainActivity;
3233
import com.mendhak.gpslogger.R;
@@ -107,7 +108,11 @@ protected void onPostCreate(Bundle savedInstanceState) {
107108

108109
Preference gpsloggerFolder = (Preference) findPreference("gpslogger_folder");
109110
gpsloggerFolder.setOnPreferenceClickListener(this);
110-
gpsloggerFolder.setSummary(prefs.getString("gpslogger_folder", Utilities.GetDefaultStorageFolder(getApplicationContext()).getAbsolutePath()));
111+
String gpsLoggerFolderPath = prefs.getString("gpslogger_folder", Utilities.GetDefaultStorageFolder(getApplicationContext()).getAbsolutePath());
112+
gpsloggerFolder.setSummary(gpsLoggerFolderPath);
113+
if(!(new File(gpsLoggerFolderPath)).canWrite()){
114+
gpsloggerFolder.setSummary(Html.fromHtml("<font color='red'>" + gpsLoggerFolderPath + "</font>"));
115+
}
111116

112117
CheckBoxPreference chkLog_opengts = (CheckBoxPreference) findPreference("log_opengts");
113118
chkLog_opengts.setOnPreferenceClickListener(this);
@@ -169,6 +174,11 @@ public synchronized void onActivityResult(final int requestCode, int resultCode,
169174
}
170175
tracer.debug("Folder path selected" + filePath);
171176

177+
if(!chosenFile.canWrite()){
178+
Utilities.MsgBox(getString(R.string.sorry), getString(R.string.pref_logging_file_no_permissions), LoggingSettingsActivity.this);
179+
return;
180+
}
181+
172182
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
173183
SharedPreferences.Editor editor = prefs.edit();
174184
editor.putString("gpslogger_folder", filePath);
@@ -177,6 +187,8 @@ public synchronized void onActivityResult(final int requestCode, int resultCode,
177187
Preference gpsloggerFolder = (Preference) findPreference("gpslogger_folder");
178188
gpsloggerFolder.setSummary(filePath);
179189

190+
191+
180192
} else if (resultCode == Activity.RESULT_CANCELED) {
181193
tracer.debug("No file selected");
182194
}

gpslogger/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,5 +474,6 @@
474474
<string name="listeners_summary">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.</string>
475475
<string name="listeners_title">Location providers</string>
476476
<string name="autosend_frequency_hint">Number of minutes</string>
477+
<string name="pref_logging_file_no_permissions">That folder is not writable by GPSLogger</string>
477478

478479
</resources>

0 commit comments

Comments
 (0)