From b7715b4a885e6c854da585e62d9c3bb9b9db74c8 Mon Sep 17 00:00:00 2001
From: Francesco Andreuzzi <andreuzzi.francesco@gmail.com>
Date: Tue, 7 Jun 2016 21:37:05 +0200
Subject: [PATCH] fixed wildcard problem

---
 .../consolelauncher/managers/FileManager.java | 24 +++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

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 ff27caa..dae3556 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;
+            }
+        }
     }
 }
-- 
GitLab