diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/CommandTuils.java b/app/src/main/java/ohi/andre/consolelauncher/commands/CommandTuils.java index d526fffb53f4700e374629ac4dbb6b65f597c550..3d9b4244d77a89dcac5ea67897633f61118c3a82 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/commands/CommandTuils.java +++ b/app/src/main/java/ohi/andre/consolelauncher/commands/CommandTuils.java @@ -161,8 +161,7 @@ public class CommandTuils { CommandAbstraction abstraction = null; try { abstraction = active.getCommandByName(string); - } catch (Exception e) { - } + } catch (Exception e) {} return new ArgInfo(abstraction, null, abstraction != null, 1); } @@ -277,13 +276,11 @@ public class CommandTuils { return new ArgInfo(param, param != null ? input.substring(indexOfFirstSpace) : input, param != null, param != null ? 1 : 0); } - // cant use more args private static ArgInfo packageName(String input, AppsManager apps) { String packageName = apps.findPackage(input); return new ArgInfo(packageName, null, packageName != null, 1); } - // cant use more args private static ArgInfo contactNumber(String input, ContactManager contacts) { String number; @@ -295,13 +292,11 @@ public class CommandTuils { return new ArgInfo(number, null, number != null, 1); } - // cant use more args private static ArgInfo song(String input, MusicManager music) { String name = music.getSong(input, MIN_SONG_RATE); return new ArgInfo(name, null, name != null, 1); } - // is SU request? public static boolean isSuRequest(String input) { return input.equals(ShellUtils.COMMAND_SU); } diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/ExecInfo.java b/app/src/main/java/ohi/andre/consolelauncher/commands/ExecInfo.java index 5c63e2be5d49fd878c0fea70a7dc7ba2b88a68f1..ed2631b507637010391762549aba1df095ec1bfd 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/commands/ExecInfo.java +++ b/app/src/main/java/ohi/andre/consolelauncher/commands/ExecInfo.java @@ -152,7 +152,7 @@ public class ExecInfo { public void destroy() { player.destroy(this.context); - appsManager.unregisterReceiver(context); + appsManager.onDestroy(); } @SuppressWarnings("unchecked") diff --git a/app/src/main/java/ohi/andre/consolelauncher/tuils/Tuils.java b/app/src/main/java/ohi/andre/consolelauncher/tuils/Tuils.java index 07edf7def4806be528368816f6a691a76f99e87a..36f40e3f2ca56fd171c78ebb97dd92e7b5241fff 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/tuils/Tuils.java +++ b/app/src/main/java/ohi/andre/consolelauncher/tuils/Tuils.java @@ -10,15 +10,11 @@ import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.Build; import android.os.Environment; import android.provider.Settings; -import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; -import android.util.Log; import android.util.Patterns; import android.widget.Toast; @@ -27,17 +23,12 @@ import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; -import java.lang.reflect.Constructor; import java.util.ArrayList; -import java.util.Arrays; import java.util.Enumeration; -import java.util.HashSet; import java.util.List; -import java.util.Set; import java.util.regex.Pattern; import dalvik.system.DexFile; -import ohi.andre.consolelauncher.commands.CommandAbstraction; import ohi.andre.consolelauncher.managers.MusicManager; import ohi.andre.consolelauncher.tuils.tutorial.TutorialIndexActivity; @@ -50,35 +41,6 @@ public class Tuils { public static final String DOT = "."; public static final String EMPTYSTRING = ""; private static final String TUI_FOLDER = "t-ui"; - private static final String[] path = { - "/system/bin", - "/system/xbin" - }; - private static final String METACHARACTERS = "\\?*+[](){}^$.|"; - - public static List<String> getOSCommands() { - List<String> commands = new ArrayList<>(); - - for (String s : path) - commands.addAll(Arrays.asList(new File(s).list())); - - return commands; - } - - public static Set<AppInfo> getApps(PackageManager mgr) { - Set<AppInfo> set = new HashSet<>(); - - Intent i = new Intent(Intent.ACTION_MAIN, null); - i.addCategory(Intent.CATEGORY_LAUNCHER); - - List<ResolveInfo> infos = mgr.queryIntentActivities(i, 0); - - for (ResolveInfo info : infos) { - set.add(new AppInfo(info.activityInfo.packageName, info.loadLabel(mgr).toString())); - } - - return set; - } public static boolean arrayContains(int[] array, int value) { for(int i : array) { @@ -108,30 +70,17 @@ public class Tuils { } for (File file : files) { - Log.e("andre", file.getAbsolutePath()); if (file.isDirectory()) { - Log.e("andre", "dir"); songs.addAll(getSongsInFolder(file)); } else if (containsExtension(MusicManager.MUSIC_EXTENSIONS, file.getName())) { - Log.e("andre", "song"); songs.add(file); - } else { - Log.e("andre", "nothing"); } } return songs; } - @TargetApi(Build.VERSION_CODES.HONEYCOMB) - public static void enableUpNavigation(AppCompatActivity activity) { - try { - activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true); - } catch (NullPointerException e) { - } - } - public static void showTutorial(Context context) { Intent intent = new Intent(context, TutorialIndexActivity.class); context.startActivity(intent); @@ -179,18 +128,6 @@ public class Tuils { return classes; } - @SuppressWarnings("unchecked") - public static CommandAbstraction getCommandInstance(String cmdName) { - Class<CommandAbstraction> clazz; - try { - clazz = (Class<CommandAbstraction>) Class.forName(cmdName); - Constructor<?> constructor = clazz.getConstructor(); - return (CommandAbstraction) constructor.newInstance(); - } catch (Exception e) { - return null; - } - } - public static int findPrefix(List<String> list, String prefix) { for (int count = 0; count < list.size(); count++) if (list.get(count).startsWith(prefix)) @@ -283,6 +220,17 @@ public class Tuils { return Tuils.toPlanString(strings, NEWLINE); } + public static String toPlanString(Object[] objs, String separator) { + StringBuilder output = new StringBuilder(); + for(int count = 0; count < objs.length; count++) { + output.append(objs[count]); + if(count < objs.length - 1) { + output.append(separator); + } + } + return output.toString(); + } + public static CharSequence toPlanSequence(List<CharSequence> sequences, CharSequence separator) { return toPlanSequence(sequences.toArray(new CharSequence[sequences.size()]), separator); } @@ -314,68 +262,10 @@ public class Tuils { return TextUtils.concat(sequences); } -// public static CharSequence[] split(CharSequence input, CharSequence re, int limit) { -// int len = re.length(); -// if (len == 0) { -// return null; -// } -// char ch = re.charAt(0); -// if (len == 1 && METACHARACTERS.indexOf(ch) == -1) { -// // We're looking for a single non-metacharacter. Easy. -// } else if (len == 2 && ch == '\\') { -// // We're looking for a quoted character. -// // Quoted metacharacters are effectively single non-metacharacters. -// ch = re.charAt(1); -// if (METACHARACTERS.indexOf(ch) == -1) { -// return null; -// } -// } else { -// return null; -// } -// // We can do this cheaply... -// // Unlike Perl, which considers the result of splitting the empty string to be the empty -// // array, Java returns an array containing the empty string. -// if (input.length() == 0) { -// return new CharSequence[]{""}; -// } -// // Count separators -// int separatorCount = 0; -// int begin = 0; -// int end; -// while (separatorCount + 1 != limit && (end = input.toString().indexOf(ch, begin)) != -1) { -// ++separatorCount; -// begin = end + 1; -// } -// int lastPartEnd = input.length(); -// if (limit == 0 && begin == lastPartEnd) { -// // Last part is empty for limit == 0, remove all trailing empty matches. -// if (separatorCount == lastPartEnd) { -// // Input contains only separators. -// return new CharSequence[0]; -// } -// // Find the beginning of trailing separators. -// do { -// --begin; -// } while (input.charAt(begin - 1) == ch); -// // Reduce separatorCount and fix lastPartEnd. -// separatorCount -= input.length() - begin; -// lastPartEnd = begin; -// } -// // Collect the result parts. -// CharSequence[] result = new CharSequence[separatorCount]; -// begin = 0; -// for (int i = 0; i != separatorCount; ++i) { -// end = input.toString().indexOf(ch, begin); -// result[i] = input.subSequence(begin, end); -// begin = end + 1; -// } -// -// return result; -// } - public static String removeUnncesarySpaces(String string) { - while (string.contains(DOUBLE_SPACE)) + while (string.contains(DOUBLE_SPACE)) { string = string.replace(DOUBLE_SPACE, SPACE); + } return string; } @@ -399,23 +289,25 @@ public class Tuils { public static boolean isNumber(String s) { char[] chars = s.toCharArray(); - for (char c : chars) - if (Character.isLetter(c)) + for (char c : chars) { + if (Character.isLetter(c)) { return false; + } + } return true; } public static CharSequence trimWhitespaces(CharSequence source) { - if(source == null) - return ""; + if(source == null) { + return Tuils.EMPTYSTRING; + } int i = source.length(); // loop back to the first non-whitespace character - while(--i >= 0 && Character.isWhitespace(source.charAt(i))) { - } + while(--i >= 0 && Character.isWhitespace(source.charAt(i))) {} return source.subSequence(0, i+1); } diff --git a/app/src/main/java/ohi/andre/consolelauncher/tuils/tutorial/TutorialActivity.java b/app/src/main/java/ohi/andre/consolelauncher/tuils/tutorial/TutorialActivity.java index 17008dc4781308abb5ee48aae9131cad3730cc16..d4a36051cf86fcb1105763fb49c78df5351c9d2e 100644 --- a/app/src/main/java/ohi/andre/consolelauncher/tuils/tutorial/TutorialActivity.java +++ b/app/src/main/java/ohi/andre/consolelauncher/tuils/tutorial/TutorialActivity.java @@ -1,12 +1,12 @@ package ohi.andre.consolelauncher.tuils.tutorial; +import android.annotation.TargetApi; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.TextView; import ohi.andre.consolelauncher.R; -import ohi.andre.consolelauncher.tuils.Tuils; public class TutorialActivity extends AppCompatActivity { @@ -26,8 +26,9 @@ public class TutorialActivity extends AppCompatActivity { return; } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) - Tuils.enableUpNavigation(this); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + enableUpNavigation(); + } setContentView(R.layout.activity_tutorial); @@ -55,4 +56,11 @@ public class TutorialActivity extends AppCompatActivity { TextView tutorialText = (TextView) findViewById(R.id.tutorial_text); tutorialText.setText(textResource); } + + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + public void enableUpNavigation() { + try { + this.getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } catch (NullPointerException e) {} + } } diff --git a/app/src/main/java/ohi/andre/consolelauncher/tuils/tutorial/TutorialIndexActivity.java b/app/src/main/java/ohi/andre/consolelauncher/tuils/tutorial/TutorialIndexActivity.java index 1c500d0eaecddf33bf9731307ad49f795fd16852..b5242791d16586db2de9c58aff19ff1b20bcb88a 100644 --- a/app/src/main/java/ohi/andre/consolelauncher/tuils/tutorial/TutorialIndexActivity.java +++ b/app/src/main/java/ohi/andre/consolelauncher/tuils/tutorial/TutorialIndexActivity.java @@ -1,5 +1,6 @@ package ohi.andre.consolelauncher.tuils.tutorial; +import android.annotation.TargetApi; import android.content.Intent; import android.os.Build; import android.os.Bundle; @@ -9,7 +10,6 @@ import android.widget.AdapterView; import android.widget.ListView; import ohi.andre.consolelauncher.R; -import ohi.andre.consolelauncher.tuils.Tuils; public class TutorialIndexActivity extends AppCompatActivity { @@ -20,8 +20,9 @@ public class TutorialIndexActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tutorial_index); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) - Tuils.enableUpNavigation(this); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + enableUpNavigation(); + } ListView listView = (ListView) findViewById(R.id.tutorial_index_view); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @@ -39,4 +40,11 @@ public class TutorialIndexActivity extends AppCompatActivity { startActivity(intent); } + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + public void enableUpNavigation() { + try { + this.getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } catch (NullPointerException e) {} + } + }