aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2013-01-08 14:26:45 +0100
committerSamuel Tardieu <sam@rfc1149.net>2013-01-08 14:26:45 +0100
commitac9c2acc85904d99e201138e3ba1b338f8d68f57 (patch)
tree26a7987251b42a28b697a1b6c3102b59ff87e171
parentfd2a02a84b2a7e62ec45f31f6979f50c5bed5116 (diff)
parenta358917d95b169a0c03c445a3ca816a0d2fb26a6 (diff)
downloadcgeo-ac9c2acc85904d99e201138e3ba1b338f8d68f57.zip
cgeo-ac9c2acc85904d99e201138e3ba1b338f8d68f57.tar.gz
cgeo-ac9c2acc85904d99e201138e3ba1b338f8d68f57.tar.bz2
Merge branch 'release' into upstream
Conflicts: main/res/values/strings.xml main/src/cgeo/geocaching/files/SimpleDirChooser.java
-rw-r--r--main/src/cgeo/geocaching/files/SimpleDirChooser.java23
1 files changed, 13 insertions, 10 deletions
diff --git a/main/src/cgeo/geocaching/files/SimpleDirChooser.java b/main/src/cgeo/geocaching/files/SimpleDirChooser.java
index 9e99aec..c59b0cb 100644
--- a/main/src/cgeo/geocaching/files/SimpleDirChooser.java
+++ b/main/src/cgeo/geocaching/files/SimpleDirChooser.java
@@ -42,16 +42,7 @@ public class SimpleDirChooser extends ListActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Bundle extras = getIntent().getExtras();
- String startDir = "";
- if (extras != null) {
- startDir = extras.getString(START_DIR);
- }
- if (StringUtils.isBlank(startDir)) {
- startDir = Environment.getExternalStorageDirectory().getPath();
- } else {
- startDir = startDir.substring(0, startDir.lastIndexOf(File.separatorChar));
- }
- currentDir = new File(startDir);
+ currentDir = dirContaining(extras.getString(START_DIR));
ActivityMixin.setTheme(this);
setContentView(R.layout.simple_dir_chooser);
@@ -84,6 +75,18 @@ public class SimpleDirChooser extends ListActivity {
});
}
+ /**
+ * Return the directory containing a given path, or a sensible default.
+ *
+ * @param path the path to get the enclosing directory from, can be null or empty
+ * @return the directory containing <code>path</code>, or a sensible default if none
+ */
+ private static File dirContaining(final String path) {
+ return StringUtils.contains(path, File.separatorChar) ?
+ new File(StringUtils.substringBeforeLast(path, Character.toString(File.separatorChar))) :
+ Environment.getExternalStorageDirectory();
+ }
+
private void fill(File dir) {
EditText path = (EditText) findViewById(R.id.simple_dir_chooser_path);
path.setText(this.getResources().getString(R.string.simple_dir_chooser_current_path) + " " + dir.getAbsolutePath());