diff options
author | Kenny Root <kenny@the-b.org> | 2010-02-07 22:35:54 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2010-02-07 22:35:54 +0000 |
commit | 9a47db64251deac94da685a02bdcc2361d8b0992 (patch) | |
tree | 171a3b9cc7d3d6c25d447cf1218cf66a8b307195 /src | |
parent | 97f8879dded4936ebdb893c9dc339e8fe76e335e (diff) | |
download | connectbot-9a47db64251deac94da685a02bdcc2361d8b0992.tar.gz connectbot-9a47db64251deac94da685a02bdcc2361d8b0992.tar.bz2 connectbot-9a47db64251deac94da685a02bdcc2361d8b0992.zip |
Be smarter about errors in simple file picker
Don't NPE when someone has their SD card in a weird state.
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@467 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src')
-rw-r--r-- | src/org/connectbot/PubkeyListActivity.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/org/connectbot/PubkeyListActivity.java b/src/org/connectbot/PubkeyListActivity.java index 5413f7a..df21b7b 100644 --- a/src/org/connectbot/PubkeyListActivity.java +++ b/src/org/connectbot/PubkeyListActivity.java @@ -577,10 +577,8 @@ public class PubkeyListActivity extends ListActivity implements EventListener { // Don't show a dialog if the SD card is completely absent. final String state = Environment.getExternalStorageState(); - if (Environment.MEDIA_REMOVED.equals(state) - || Environment.MEDIA_BAD_REMOVAL.equals(state) - || Environment.MEDIA_UNMOUNTABLE.equals(state) - || Environment.MEDIA_UNMOUNTED.equals(state)) { + if (!Environment.MEDIA_MOUNTED_READ_ONLY.equals(state) + && !Environment.MEDIA_MOUNTED.equals(state)) { new AlertDialog.Builder(PubkeyListActivity.this) .setMessage(R.string.alert_sdcard_absent) .setNegativeButton(android.R.string.cancel, null).create().show(); @@ -588,9 +586,14 @@ public class PubkeyListActivity extends ListActivity implements EventListener { } List<String> names = new LinkedList<String>(); - for(File file : sdcard.listFiles()) { - if(file.isDirectory()) continue; - names.add(file.getName()); + { + File[] files = sdcard.listFiles(); + if (files != null) { + for(File file : sdcard.listFiles()) { + if(file.isDirectory()) continue; + names.add(file.getName()); + } + } } Collections.sort(names); |