diff options
| author | rsudev <rasch@munin-soft.de> | 2012-02-05 01:47:30 -0800 |
|---|---|---|
| committer | rsudev <rasch@munin-soft.de> | 2012-02-05 01:47:30 -0800 |
| commit | 6e933169ec467366a1a5b5e71523812daa71b20d (patch) | |
| tree | 5d30d964a49a1c61746150f48e964419d60710a6 /main/src/cgeo/geocaching/files/FileList.java | |
| parent | 9a53d3a65760180687a113a745cbca04bd8401f6 (diff) | |
| parent | 88e5a960c859001349dba220c3fe83274ee51d95 (diff) | |
| download | cgeo-6e933169ec467366a1a5b5e71523812daa71b20d.zip cgeo-6e933169ec467366a1a5b5e71523812daa71b20d.tar.gz cgeo-6e933169ec467366a1a5b5e71523812daa71b20d.tar.bz2 | |
Merge pull request #1091 from stephanme/importzip
fix #986: mention standard GPX directory in progress dialog
Diffstat (limited to 'main/src/cgeo/geocaching/files/FileList.java')
| -rw-r--r-- | main/src/cgeo/geocaching/files/FileList.java | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/main/src/cgeo/geocaching/files/FileList.java b/main/src/cgeo/geocaching/files/FileList.java index 2f810ea..2ad05f5 100644 --- a/main/src/cgeo/geocaching/files/FileList.java +++ b/main/src/cgeo/geocaching/files/FileList.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.List; public abstract class FileList<T extends ArrayAdapter<File>> extends AbstractListActivity { + private static final int MSG_SEARCH_WHOLE_SD_CARD = 1; private List<File> files = new ArrayList<File>(); private T adapter = null; @@ -29,15 +30,36 @@ public abstract class FileList<T extends ArrayAdapter<File>> extends AbstractLis private loadFiles searchingThread = null; private boolean endSearching = false; private int listId = 1; + final private Handler changeWaitDialogHandler = new Handler() { + private String searchInfo; @Override public void handleMessage(Message msg) { if (msg.obj != null && waitDialog != null) { - waitDialog.setMessage(res.getString(R.string.file_searching_in) + " " + (String) msg.obj); + if (searchInfo == null) { + searchInfo = res.getString(R.string.file_searching_in) + " "; + } + if (msg.what == MSG_SEARCH_WHOLE_SD_CARD) { + searchInfo = String.format(res.getString(R.string.file_searching_sdcard_in), getDefaultFolders()); + } + waitDialog.setMessage(searchInfo + (String) msg.obj); + } + } + + private String getDefaultFolders() { + StringBuilder sb = new StringBuilder(); + for (File f : getBaseFolders()) { + String fName = f.getPath(); + if (sb.length() > 0) { + sb.append("\n"); + } + sb.append(fName); } + return sb.toString(); } }; + final private Handler loadFilesHandler = new Handler() { @Override @@ -162,6 +184,7 @@ public abstract class FileList<T extends ArrayAdapter<File>> extends AbstractLis } } if (!loaded) { + changeWaitDialogHandler.sendMessage(Message.obtain(changeWaitDialogHandler, MSG_SEARCH_WHOLE_SD_CARD, Environment.getExternalStorageDirectory().getName())); listDir(list, Environment.getExternalStorageDirectory()); } } else { @@ -171,14 +194,12 @@ public abstract class FileList<T extends ArrayAdapter<File>> extends AbstractLis Log.e(Settings.tag, "cgFileList.loadFiles.run: " + e.toString()); } - final Message msg = new Message(); - msg.obj = "loaded directories"; - changeWaitDialogHandler.sendMessage(msg); + changeWaitDialogHandler.sendMessage(Message.obtain(changeWaitDialogHandler, 0, "loaded directories")); files.addAll(list); list.clear(); - loadFilesHandler.sendMessage(new Message()); + loadFilesHandler.sendMessage(Message.obtain(loadFilesHandler)); } } @@ -209,9 +230,7 @@ public abstract class FileList<T extends ArrayAdapter<File>> extends AbstractLis if (name.length() > 16) { name = name.substring(0, 14) + "..."; } - final Message msg = new Message(); - msg.obj = name; - changeWaitDialogHandler.sendMessage(msg); + changeWaitDialogHandler.sendMessage(Message.obtain(changeWaitDialogHandler, 0, name)); listDir(result, file); // go deeper } |
