From 6a4971b246b6276fa29e8971432a359e38c9614f Mon Sep 17 00:00:00 2001
From: Francesco Andreuzzi <andreuzzi.francesco@gmail.com>
Date: Thu, 16 Jun 2016 15:17:15 +0200
Subject: [PATCH] fixed duplicated commands

---
 .../commands/raw/shellcommands.java           | 34 +++++++++++++++----
 1 file changed, 28 insertions(+), 6 deletions(-)

diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/raw/shellcommands.java b/app/src/main/java/ohi/andre/consolelauncher/commands/raw/shellcommands.java
index 93e1b9c..0404730 100644
--- a/app/src/main/java/ohi/andre/consolelauncher/commands/raw/shellcommands.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/commands/raw/shellcommands.java
@@ -1,8 +1,14 @@
 package ohi.andre.consolelauncher.commands.raw;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 import ohi.andre.comparestring.Compare;
 import ohi.andre.consolelauncher.R;
@@ -17,20 +23,36 @@ public class shellcommands implements CommandAbstraction {
 
     @Override
     public String exec(ExecInfo info) throws Exception {
-        List<String> cmds = Tuils.getOSCommands();
+        Collection<String> cmds = getOSCommands();
+        List<String> commands = new ArrayList<>(cmds);
 
-        Collections.sort(cmds, new Comparator<String>() {
+        Collections.sort(commands, new Comparator<String>() {
             @Override
             public int compare(String lhs, String rhs) {
                 return Compare.alphabeticCompare(lhs, rhs);
             }
         });
 
-        Tuils.addPrefix(cmds, Tuils.DOUBLE_SPACE);
-        Tuils.addSeparator(cmds, Tuils.TRIBLE_SPACE);
-        Tuils.insertHeaders(cmds, true);
+        Tuils.addPrefix(commands, Tuils.DOUBLE_SPACE);
+        Tuils.addSeparator(commands, Tuils.TRIBLE_SPACE);
+        Tuils.insertHeaders(commands, true);
 
-        return Tuils.toPlanString(cmds, "");
+        return Tuils.toPlanString(commands, Tuils.EMPTYSTRING);
+    }
+
+    private final String[] path = {
+            "/system/bin",
+            "/system/xbin"
+    };
+
+    private Set<String> getOSCommands() {
+        Set<String> commands = new HashSet<>();
+
+        for (String s : path) {
+            commands.addAll(Arrays.asList(new File(s).list()));
+        }
+
+        return commands;
     }
 
     @Override
-- 
GitLab