summaryrefslogtreecommitdiff
path: root/Source/Android/src
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2013-09-26 23:06:10 -0400
committerLioncash <mathew1800@gmail.com>2013-09-26 23:06:10 -0400
commit8aba748735e83ed5865a2e78f6af9d966e0017b2 (patch)
treed85775c7b549b5f70380b9970272a752f4813af7 /Source/Android/src
parentbea76ac129e6e918e98a0defdd1dda1d844c216c (diff)
[Android] Fix a situation within the FolderBrowser where the application would crash. listFiles() returns null when either the File object it's called on isn't a directory or if an I/O error happens (in their infinite wisdom, they actually thought NOT throwing an exception was a cool way to handle this. How about that?). In the case of trying to access system directories as a normal user, an I/O error will occur due to permission access rights. This fixes that.
Diffstat (limited to 'Source/Android/src')
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java46
1 files changed, 25 insertions, 21 deletions
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java
index e28f30206d..e8a3fd9c94 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java
@@ -48,39 +48,43 @@ public final class FolderBrowser extends ListFragment
{
m_activity.setTitle(getString(R.string.current_dir) + currDir.getName());
File[] dirs = currDir.listFiles();
- List<FolderBrowserItem>dir = new ArrayList<FolderBrowserItem>();
- List<FolderBrowserItem>fls = new ArrayList<FolderBrowserItem>();
+ List<FolderBrowserItem> dir = new ArrayList<FolderBrowserItem>();
+ List<FolderBrowserItem> fls = new ArrayList<FolderBrowserItem>();
// Supported extensions to filter by
Set<String> validExts = new HashSet<String>(Arrays.asList(".dff", ".dol", ".elf", ".gcm", ".gcz", ".iso", ".wad", ".wbfs"));
- // Search for any directories or files within the current dir.
- for(File entry : dirs)
+ // If dirs is null, then we don't have access permissions to the selected folder.
+ if (dirs != null)
{
- try
+ // Search for any directories or files within the current dir.
+ for(File entry : dirs)
{
- String entryName = entry.getName();
- boolean hasExtension = (entryName.lastIndexOf(".") != -1);
-
- // Skip hidden folders/files.
- if (!entry.isHidden())
+ try
{
- if(entry.isDirectory())
- {
- dir.add(new FolderBrowserItem(entryName, entry.getAbsolutePath()));
- }
- else if (entry.isFile() && hasExtension)
+ String entryName = entry.getName();
+ boolean hasExtension = (entryName.lastIndexOf(".") != -1);
+
+ // Skip hidden folders/files.
+ if (!entry.isHidden())
{
- if (validExts.contains(entryName.toLowerCase().substring(entryName.lastIndexOf('.'))))
+ if(entry.isDirectory())
+ {
+ dir.add(new FolderBrowserItem(entryName, entry.getAbsolutePath()));
+ }
+ else if (entry.isFile() && hasExtension)
{
- fls.add(new FolderBrowserItem(entryName, getString(R.string.file_size)+entry.length(), entry.getAbsolutePath()));
+ if (validExts.contains(entryName.toLowerCase().substring(entryName.lastIndexOf('.'))))
+ {
+ fls.add(new FolderBrowserItem(entryName, getString(R.string.file_size)+entry.length(), entry.getAbsolutePath()));
+ }
}
}
}
- }
- catch (Exception ex)
- {
- Log.e("FolderBrowser", ex.toString());
+ catch (Exception ex)
+ {
+ Log.e("FolderBrowser", ex.toString());
+ }
}
}