From 0fa0e55e2c374d3ce81100bd5e51d7088a3b2cd4 Mon Sep 17 00:00:00 2001 From: Eder Bastos Date: Mon, 11 May 2015 21:40:42 -0400 Subject: [PATCH] Android: Fix a possible crash in the file browser if attempting to show a file with no extension. --- .../dolphinemu/model/FileListItem.java | 30 ++++++++++++------ Source/Android/code-style-java.jar | Bin 1534 -> 1542 bytes 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/FileListItem.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/FileListItem.java index 69b39438e8..b9c8a571cf 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/FileListItem.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/FileListItem.java @@ -22,6 +22,7 @@ public class FileListItem implements Comparable public FileListItem(File file) { mPath = file.getAbsolutePath(); + mFilename = file.getName(); if (file.isDirectory()) { @@ -29,23 +30,32 @@ public class FileListItem implements Comparable } else { - String fileExtension = mPath.substring(mPath.lastIndexOf('.')); + String fileExtension = null; - // Extensions to filter by. - Set allowedExtensions = new HashSet(Arrays.asList(".dff", ".dol", ".elf", ".gcm", ".gcz", ".iso", ".wad", ".wbfs")); - - // Check that the file has an appropriate extension before trying to read out of it. - if (allowedExtensions.contains(fileExtension)) + int extensionStart = mPath.lastIndexOf('.'); + if (extensionStart < 1) { - mType = NativeLibrary.IsWiiTitle(mPath) ? TYPE_WII : TYPE_GC; + // Ignore hidden files & files without extensions. + mType = TYPE_OTHER; } else { - mType = TYPE_OTHER; + fileExtension = mPath.substring(extensionStart); + + // The extensions we care about. + Set allowedExtensions = new HashSet(Arrays.asList(".dff", ".dol", ".elf", ".gcm", ".gcz", ".iso", ".wad", ".wbfs")); + + // Check that the file has an extension we care about before trying to read out of it. + if (allowedExtensions.contains(fileExtension)) + { + mType = NativeLibrary.IsWiiTitle(mPath) ? TYPE_WII : TYPE_GC; + } + else + { + mType = TYPE_OTHER; + } } } - - mFilename = file.getName(); } public int getType() diff --git a/Source/Android/code-style-java.jar b/Source/Android/code-style-java.jar index 8140ad66f9d0318f07681facaddb87e9cc037492..04a041c0489f6bf0e73877deda94771fe6acdea9 100644 GIT binary patch delta 869 zcmeyz-NrNF4etwwHEzdU3{HJxVqn-X@uy0CbpC7uk-Gcq9Wwl`fP0zRulQ%SB}g zb6{t4>vMPcbthy6+uyS|c8Q-9+AbO!zo6K*XVT?;6M3 z$2M6S%GAG^QIVv)=GFCOPZKU5;JUPMVF<_b=e+`z8|+(lw0%mqc%-rWPqFyBkOfm1 z5;_Cewda~zn5x&fe{gb^{&zavE=u70v@_vHCS^=J^3O-)UG1}*H~WjsWIJ?DuFzQ0 zV{l)#!`^ekC8KVpwl?l>D}D;bZq9YuU3i1-&3c_rkvLJn{GP47FhP5v>YaA8 zhIrOu%PO`Yrm0qC*{6ftli6QikXq@c`fBs#%Trf94016~RQP-A{e!j3_n}_Bj)roMb#Po^*b8~>OS8G&E6Q0F9a~m3f%}rh!9874FSM_P zFq=M&xh+xhEsjUZxyoHMOGwwE+}Krm*ckIbu4(N ziLT#_)&;4K$t@f5wEQjS%1)V(BlSnfcfsPKx)5i_Jx_1G+OEFC|Geta-g*_!A9a=H z{Sl&yCz+y-K7Kr9m-ffdZ8c|iHO_WA6qA2>8ux{OZMk=5ZGZ95S;8fAe@?NGM$Xrz zJ5##)&Q%*pN!h%eGF{}B{*sMmn`I@gD0wf~=E|9)rqmd&m%jKF^+VCc|jY z46%ScN5l^IO}K3R@_ntk%`vfBhOX^F^^?Ax;=cM=-?Bj`&(SG3Aa;{^UAl$t&JX=Z za)gT+wC~^F|1;|zca;13T+Z5P%j|`F zw|?!v`Enndwa&hGldq>Hmd)F%oSS=Tn*JLO+0(46^Gi2;-FWYZe^RDS{YCzI<^XSI z77+$^1`ZAeM#nXi#aKLe7hneLK%;9t}c#(ZXr`n0tN)LyO;mHgzD!TEh3 z?}PAzG3(|vObG~;-JN|p$X%T8>PFL`-c>97`})H}d#AgW$hI1l=*_loIg>Vr{iBZd z;+z9dx9auh9>22ESH|7ct*mudSt6%xvv%z3C}F!9E8W~8=7s!7%~$j)ULfT0Y1?6r zh0^E67QAuTb0mJl4UzhHXAT)H+-BU^x7q1`MCZLL72iKz=qygus@^HU%hINoHDP^7 zFz=-!k~K{gr;_r-=0#3b+*;2Sr8!mK;7EDLR%WiN8&pCre~N5<7@r~X@gh#ZLEi zT(*9--$K3S-1FL&E_NUD*HbyKHa{1we{wEA;FM8_>P_kMk`q+*|1=xiKJ;ecsqf$O z=jBfGpYy-{U3c}9_(!+?-jmqHf3oTF?u1i+osDnkPB`B*^E^M-+prf$w|?!v`m&C< zY{!pX`f<~_H-CO5o01*8?N5UHlL)zpy{i|mo&NP$zL0nF&#kpTqyxN}Swt8ZI5-%J zx>vbPmS^!`F6v%2Ig8~mYUY@1#cBhVsbrP5;bdW8$jmD)NzBPfP0=fr1Z0ue3=E-@FR&W0O<(~D0svU7ozwsT