diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/FileManager.java b/app/src/main/java/ohi/andre/consolelauncher/managers/FileManager.java index ff27caafe0dceaff398fcf2d6a9c50beb7ddbd08..dae35564cad907342e30994720998b546e02d031 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/managers/FileManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/managers/FileManager.java @@ -277,13 +277,22 @@ public class FileManager { } public static WildcardInfo wildcard(String path) { - if (path == null || !path.contains(ASTERISK) || path.contains("/")) + if (path == null || !path.contains(ASTERISK) || path.contains(File.separator)) { return null; + } - String beforeDot = path.substring(0, path.lastIndexOf(DOT)); - String afterDot = path.substring(path.lastIndexOf(DOT) + 1); + if(path.trim().equals(ASTERISK)) { + return new WildcardInfo(true); + } - return new WildcardInfo(beforeDot, afterDot); + int dot = path.lastIndexOf(DOT); + try { + String beforeDot = path.substring(0, dot); + String afterDot = path.substring(dot + 1); + return new WildcardInfo(beforeDot, afterDot); + } catch (Exception e) { + return null; + } } public static class DirInfo { @@ -310,5 +319,12 @@ public class FileManager { allNames = name.length() == 0 || name.equals(ASTERISK); allExtensions = extension.length() == 0 || extension.equals(ASTERISK); } + + public WildcardInfo(boolean all) { + if(all) { + this.allExtensions = all; + this.allNames = all; + } + } } }