diff options
| -rw-r--r-- | main/res/values-de/strings.xml | 1 | ||||
| -rw-r--r-- | main/res/values/strings.xml | 3 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/files/SimpleDirChooser.java | 42 |
3 files changed, 45 insertions, 1 deletions
diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml index 55f9d36..31c601d 100644 --- a/main/res/values-de/strings.xml +++ b/main/res/values-de/strings.xml @@ -620,6 +620,7 @@ <string name="file_title_searching">Suche</string> <string name="simple_dir_chooser_title">Verzeichnis wählen</string> <string name="simple_dir_chooser_current_path">Pfad:</string> + <string name="simple_dir_chooser_invalid_path">Ungültiger Pfad</string> <string name="gpx_import_loading_caches">Lade Caches aus GPX-Datei</string> <string name="gpx_import_loading_waypoints">Lade Wegpunkte aus GPX-Datei</string> <string name="gpx_import_store_static_maps">Schreibe statische Karten</string> diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index a4e7350..a9bf793 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -715,7 +715,8 @@ <!-- simple_dir_chooser --> <string name="simple_dir_chooser_title">Choose directory</string> <string name="simple_dir_chooser_current_path">Path:</string> - + <string name="simple_dir_chooser_invalid_path">Invalid Path</string> + <!-- gpx --> <string name="gpx_import_loading_caches">Loading caches from .gpx file</string> <string name="gpx_import_loading_waypoints">Loading waypoints file</string> diff --git a/main/src/cgeo/geocaching/files/SimpleDirChooser.java b/main/src/cgeo/geocaching/files/SimpleDirChooser.java index e59287d..3f6182c 100644 --- a/main/src/cgeo/geocaching/files/SimpleDirChooser.java +++ b/main/src/cgeo/geocaching/files/SimpleDirChooser.java @@ -7,11 +7,14 @@ import cgeo.geocaching.activity.ActivityMixin; import org.apache.commons.lang3.StringUtils; +import android.app.AlertDialog; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Environment; +import android.text.InputType; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; @@ -73,6 +76,45 @@ public class SimpleDirChooser extends AbstractListActivity { finish(); } }); + + EditText pathField = (EditText) findViewById(R.id.simple_dir_chooser_path); + pathField.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + editPath(); + } + + }); + } + + public void editPath() { + AlertDialog.Builder builder = new AlertDialog.Builder(SimpleDirChooser.this); + builder.setTitle(R.string.simple_dir_chooser_current_path); + final EditText input = new EditText(SimpleDirChooser.this); + input.setInputType(InputType.TYPE_CLASS_TEXT); + input.setText(currentDir.getPath()); + builder.setView(input); + builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String pathText = input.getText().toString(); + File newPathDir = new File(pathText); + if (newPathDir.exists() && newPathDir.isDirectory()) { + currentDir = newPathDir; + fill(currentDir); + } else { + showToast(SimpleDirChooser.this.getResources().getString(R.string.simple_dir_chooser_invalid_path)); + } + } + }); + builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.cancel(); + } + }); + + builder.show(); } /** |
