diff options
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/Settings.java | 17 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/SettingsActivity.java | 25 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgeogpxes.java | 4 |
3 files changed, 43 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/Settings.java b/main/src/cgeo/geocaching/Settings.java index 9e5a8a4..92241c2 100644 --- a/main/src/cgeo/geocaching/Settings.java +++ b/main/src/cgeo/geocaching/Settings.java @@ -22,6 +22,7 @@ import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.res.Configuration; import android.content.res.Resources; +import android.os.Environment; import android.preference.PreferenceManager; import java.util.Locale; @@ -95,6 +96,7 @@ public final class Settings { private static final String KEY_LAST_TRACKABLE_ACTION = "trackableaction"; private static final String KEY_SHARE_AFTER_EXPORT = "shareafterexport"; private static final String KEY_GPX_EXPORT_DIR = "gpxExportDir"; + private static final String KEY_GPX_IMPORT_DIR = "gpxImportDir"; private final static int unitsMetric = 1; @@ -1152,7 +1154,7 @@ public final class Settings { } public static String getGpxExportDir() { - return sharedPrefs.getString(KEY_GPX_EXPORT_DIR, "/sdcard/gpx"); + return sharedPrefs.getString(KEY_GPX_EXPORT_DIR, Environment.getExternalStorageDirectory().getPath() + "/gpx"); } public static void setGpxExportDir(final String gpxExportDir) { @@ -1164,6 +1166,19 @@ public final class Settings { }); } + public static String getGpxImportDir() { + return sharedPrefs.getString(KEY_GPX_IMPORT_DIR, Environment.getExternalStorageDirectory().getPath() + "/gpx"); + } + + public static void setGpxImportDir(final String gpxImportDir) { + editSharedSettings(new PrefRunnable() { + @Override + public void edit(Editor edit) { + edit.putString(KEY_GPX_IMPORT_DIR, gpxImportDir); + } + }); + } + public static boolean getShareAfterExport() { return sharedPrefs.getBoolean(KEY_SHARE_AFTER_EXPORT, true); } diff --git a/main/src/cgeo/geocaching/SettingsActivity.java b/main/src/cgeo/geocaching/SettingsActivity.java index 1f747b2..af0a6bd 100644 --- a/main/src/cgeo/geocaching/SettingsActivity.java +++ b/main/src/cgeo/geocaching/SettingsActivity.java @@ -57,6 +57,7 @@ public class SettingsActivity extends AbstractActivity { private final static int SELECT_MAPFILE_REQUEST = 1; private final static int SELECT_GPXDIR_REQUEST = 2; + private final static int SELECT_IMPGPXDIR_REQUEST = 3; private ProgressDialog loginDialog = null; @@ -573,6 +574,20 @@ public class SettingsActivity extends AbstractActivity { } }); + // GPX Import directory + final EditText gpxImportDir = (EditText) findViewById(R.id.gpx_importdir); + gpxImportDir.setText(Settings.getGpxImportDir()); + Button selectGpxImportDir = (Button) findViewById(R.id.select_gpx_importdir); + selectGpxImportDir.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + Intent dirChooser = new Intent(SettingsActivity.this, SimpleDirChooser.class); + dirChooser.putExtra(SimpleDirChooser.START_DIR, Settings.getGpxImportDir()); + startActivityForResult(dirChooser, SELECT_IMPGPXDIR_REQUEST); + } + }); + // Display trail on map final CheckBox trailButton = (CheckBox) findViewById(R.id.trail); trailButton.setChecked(Settings.isMapTrail()); @@ -925,6 +940,16 @@ public class SettingsActivity extends AbstractActivity { gpxExportDir.setText(Settings.getGpxExportDir()); gpxExportDir.requestFocus(); } + if (requestCode == SELECT_IMPGPXDIR_REQUEST) { + if (resultCode == RESULT_OK) { + if (data.hasExtra("chosenDir")) { + Settings.setGpxImportDir(data.getStringExtra("chosenDir")); + } + } + EditText gpxImportDir = (EditText) findViewById(R.id.gpx_importdir); + gpxImportDir.setText(Settings.getGpxExportDir()); + gpxImportDir.requestFocus(); + } } public static void startActivity(Context fromActivity) { diff --git a/main/src/cgeo/geocaching/cgeogpxes.java b/main/src/cgeo/geocaching/cgeogpxes.java index 205ee59..15c96fa 100644 --- a/main/src/cgeo/geocaching/cgeogpxes.java +++ b/main/src/cgeo/geocaching/cgeogpxes.java @@ -11,7 +11,6 @@ import org.apache.commons.lang3.StringUtils; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
-import android.os.Environment;
import java.io.File;
import java.util.List;
@@ -32,7 +31,8 @@ public class cgeogpxes extends FileList<GPXListAdapter> { @Override
protected File[] getBaseFolders() {
- return new File[] { new File(Environment.getExternalStorageDirectory(), "gpx") };
+ String gpxImportDir = Settings.getGpxImportDir();
+ return new File[] { new File(gpxImportDir) };
}
@Override
|
