From 4e9b05f5b1eca7ff875336da1bbdf4d480d55087 Mon Sep 17 00:00:00 2001 From: Francesco Andreuzzi <andreuzzi.francesco@gmail.com> Date: Thu, 15 Dec 2016 14:10:02 +0100 Subject: [PATCH] 4.7 --- app/build.gradle | 26 ++-- app/src/main/AndroidManifest.xml | 1 + .../ohi/andre/consolelauncher/UIManager.java | 70 +++++++++- .../consolelauncher/commands/raw/call.java | 12 +- .../commands/raw/contacts.java | 68 --------- .../managers/MusicManager.java | 64 +++++---- .../managers/PreferencesManager.java | 1 + .../consolelauncher/managers/SkinManager.java | 129 ++++++++++-------- .../managers/SuggestionsManager.java | 13 +- .../managers/TerminalMAnager.java | 22 ++- .../tuils/SuggestionRunnable.java | 17 ++- .../andre/consolelauncher/tuils/Tuils.java | 34 +++++ app/src/main/res/drawable/cursor.xml | 3 +- app/src/main/res/layout-v12/input_group.xml | 19 ++- app/src/main/res/layout/input_group.xml | 19 ++- app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2517 -> 1065 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1794 -> 691 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3555 -> 1439 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 5497 -> 2271 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 7110 -> 2970 bytes app/src/main/res/raw/settings.txt | 3 +- app/src/main/res/values-h1024dp/dimension.xml | 3 +- app/src/main/res/values-h320dp/dimension.xml | 3 +- app/src/main/res/values-h720dp/dimension.xml | 3 +- app/src/main/res/values/dimension.xml | 3 +- app/src/main/res/values/strings.xml | 10 +- build.gradle | 3 +- 27 files changed, 299 insertions(+), 227 deletions(-) delete mode 100755 app/src/main/java/ohi/andre/consolelauncher/commands/raw/contacts.java diff --git a/app/build.gradle b/app/build.gradle index a33a8d7..fdc7b15 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,20 +1,22 @@ apply plugin: 'com.android.application' -apply plugin: 'versionPlugin' - android { signingConfigs { config { + keyAlias 'mykey' + keyPassword 'Dodici12' + storeFile file('/Users/francescoandreuzzi/Programming/Android/Build/my-release-key.keystore') + storePassword 'Dodici12' } } - compileSdkVersion 23 - buildToolsVersion '24.0.0' + compileSdkVersion 25 + buildToolsVersion '25.0.1' defaultConfig { applicationId "ohi.andre.consolelauncher" minSdkVersion 8 targetSdkVersion 23 - versionCode 75 - versionName "4.5" + versionCode 77 + versionName "4.7" } buildTypes { @@ -22,18 +24,10 @@ android { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + zipAlignEnabled true } } - versionPlugin { - buildTypesMatcher = 'release' - - supportBuildNumber = true - buildNumberPrefix = 'b' - - fileNameFormat = 't-ui-vrs_$versionName' - } - compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 @@ -45,4 +39,6 @@ android { compile 'commons-io:commons-io:2.4' } +} +dependencies { } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eded6f3..7d098ee 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -52,6 +52,7 @@ android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize" android:launchMode="singleTask" android:stateNotNeeded="true" + android:excludeFromRecents="true" android:windowSoftInputMode="stateAlwaysVisible|adjustResize"> <intent-filter> <action android:name="android.intent.action.MAIN" /> diff --git a/app/src/main/java/ohi/andre/consolelauncher/UIManager.java b/app/src/main/java/ohi/andre/consolelauncher/UIManager.java index bab6b7d..b4c6ad3 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/UIManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/UIManager.java @@ -10,6 +10,7 @@ import android.os.Build; import android.os.Handler; import android.text.Editable; import android.text.TextWatcher; +import android.util.Log; import android.view.GestureDetector; import android.view.GestureDetector.OnDoubleTapListener; import android.view.Gravity; @@ -28,8 +29,16 @@ import android.widget.TextView; import java.io.File; import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import ohi.andre.comparestring.Compare; import ohi.andre.consolelauncher.commands.ExecInfo; +import ohi.andre.consolelauncher.managers.AppsManager; +import ohi.andre.consolelauncher.managers.ContactManager; +import ohi.andre.consolelauncher.managers.FileManager; +import ohi.andre.consolelauncher.managers.MusicManager; import ohi.andre.consolelauncher.managers.PreferencesManager; import ohi.andre.consolelauncher.managers.SkinManager; import ohi.andre.consolelauncher.managers.SuggestionsManager; @@ -125,6 +134,9 @@ public class UIManager implements OnTouchListener { String lastWord = inputText.substring(lastSpace != -1 ? lastSpace + 1 : 0); String before = inputText.substring(0, lastSpace + 1); + boolean execOnClick = (boolean) v.getTag(R.id.exec_on_click_id); + int suggestionType = (int) v.getTag(R.id.suggestion_type_id); + StringBuilder builder = new StringBuilder(); if (suggestedText.equals(File.separator)) { builder.append(before); @@ -136,12 +148,64 @@ public class UIManager implements OnTouchListener { builder.append(before); builder.append(suggestedText); } else { - builder.append(before); - builder.append(suggestedText); + if(!suggestedText.contains(Tuils.SPACE)) { + builder.append(before); + builder.append(suggestedText); + } else { + String[] suggestParts = suggestedText.split(Tuils.SPACE); + String[] inputParts = inputText.split(Tuils.SPACE); + + boolean useScrollCompare; + int minRate; + switch (suggestionType) { + case SuggestionsManager.Suggestion.TYPE_APP: + useScrollCompare = AppsManager.USE_SCROLL_COMPARE; + minRate = SuggestionsManager.MIN_APPS_RATE; + break; + case SuggestionsManager.Suggestion.TYPE_SONG: + useScrollCompare = MusicManager.USE_SCROLL_COMPARE; + minRate = SuggestionsManager.MIN_SONGS_RATE; + break; + case SuggestionsManager.Suggestion.TYPE_CONTACT: + useScrollCompare = ContactManager.USE_SCROLL_COMPARE; + minRate = SuggestionsManager.MIN_CONTACTS_RATE; + break; + case SuggestionsManager.Suggestion.TYPE_FILE: + useScrollCompare = FileManager.USE_SCROLL_COMPARE; + minRate = SuggestionsManager.MIN_FILE_RATE; + break; + default: + builder.append(before); + builder.append(suggestedText); + return; + } + + int count; + for(count = 0; count < inputParts.length; count++) { + int rate = useScrollCompare ? Compare.scrollComparison(inputParts[count], suggestParts[0]) : + Compare.linearComparison(inputParts[count], suggestParts[0]); + + if(rate >= minRate) { + break; + } + } + + List<String> finalText = new ArrayList<>(Arrays.asList(inputParts)); + for(int c = 0; c < suggestParts.length; c++) { + if(finalText.size() > c + count) { + finalText.set(c + count, suggestParts[c]); + } else { + finalText.add(suggestParts[c]); + } + } + + builder.append(Tuils.toPlanString(finalText, Tuils.SPACE)); + } } mTerminalAdapter.setInput(builder.toString()); - if (executeOnSuggestionClick && v.getId() == SuggestionsManager.Suggestion.EXEC_ON_CLICK) { + + if (executeOnSuggestionClick && execOnClick) { mTerminalAdapter.simulateEnter(); } else { mTerminalAdapter.focusInputEnd(); diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/raw/call.java b/app/src/main/java/ohi/andre/consolelauncher/commands/raw/call.java index 39b6039..2d1222f 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/commands/raw/call.java +++ b/app/src/main/java/ohi/andre/consolelauncher/commands/raw/call.java @@ -6,9 +6,12 @@ import android.content.pm.PackageManager; import android.net.Uri; import android.support.v4.content.ContextCompat; +import java.util.List; + import ohi.andre.consolelauncher.R; import ohi.andre.consolelauncher.commands.CommandAbstraction; import ohi.andre.consolelauncher.commands.ExecInfo; +import ohi.andre.consolelauncher.tuils.Tuils; public class call implements CommandAbstraction { @@ -63,7 +66,14 @@ public class call implements CommandAbstraction { @Override public String onNotArgEnough(ExecInfo info, int nArgs) { - return info.res.getString(helpRes()); + if (ContextCompat.checkSelfPermission(info.context, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { + return info.res.getString(R.string.output_nopermissions); + } + + List<String> contacts = info.contacts.listNamesAndNumbers(); + Tuils.addPrefix(contacts, " "); + Tuils.insertHeaders(contacts, false); + return Tuils.toPlanString(contacts); } @Override diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/raw/contacts.java b/app/src/main/java/ohi/andre/consolelauncher/commands/raw/contacts.java deleted file mode 100755 index aceef23..0000000 --- a/app/src/main/java/ohi/andre/consolelauncher/commands/raw/contacts.java +++ /dev/null @@ -1,68 +0,0 @@ -package ohi.andre.consolelauncher.commands.raw; - -import android.Manifest; -import android.content.pm.PackageManager; -import android.support.v4.content.ContextCompat; - -import java.util.List; - -import ohi.andre.consolelauncher.R; -import ohi.andre.consolelauncher.commands.CommandAbstraction; -import ohi.andre.consolelauncher.commands.ExecInfo; -import ohi.andre.consolelauncher.tuils.Tuils; - -public class contacts implements CommandAbstraction { - - @Override - public String exec(ExecInfo info) { - if (ContextCompat.checkSelfPermission(info.context, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { - return info.res.getString(R.string.output_nopermissions); - } - - List<String> contacts = info.contacts.listNamesAndNumbers(); - Tuils.addPrefix(contacts, " "); - Tuils.insertHeaders(contacts, false); - return Tuils.toPlanString(contacts); - } - - @Override - public int helpRes() { - return R.string.help_contacts; - } - - @Override - public int minArgs() { - return 0; - } - - @Override - public int maxArgs() { - return 0; - } - - @Override - public int[] argType() { - return null; - } - - @Override - public int priority() { - return 2; - } - - @Override - public String[] parameters() { - return null; - } - - @Override - public String onNotArgEnough(ExecInfo info, int nArgs) { - return null; - } - - @Override - public int notFoundRes() { - return 0; - } - -} diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/MusicManager.java b/app/src/main/java/ohi/andre/consolelauncher/managers/MusicManager.java index 0872d3c..e721e55 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/managers/MusicManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/managers/MusicManager.java @@ -23,14 +23,12 @@ public class MusicManager implements OnCompletionListener { public static final boolean USE_SCROLL_COMPARE = true; - private File songFolder; + private List<File> files; private MediaPlayer mp; private int currentSongIndex = 0; private File currentSong = null; - private boolean randomActive; - // headset broadcast private BroadcastReceiver headsetReceiver = new HeadsetBroadcast(new Runnable() { @Override @@ -46,9 +44,17 @@ public class MusicManager implements OnCompletionListener { c.registerReceiver(headsetReceiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG)); - randomActive = Boolean.parseBoolean(preferencesManager.getValue(PreferencesManager.PLAY_RANDOM)); + boolean randomActive = Boolean.parseBoolean(preferencesManager.getValue(PreferencesManager.PLAY_RANDOM)); - songFolder = new File(preferencesManager.getValue(PreferencesManager.SONGSFOLDER)); + if(Boolean.parseBoolean(preferencesManager.getValue(PreferencesManager.FROM_MEDIASTORE))) { + files = Tuils.getMediastoreSongs(c); + } else { + files = Tuils.getSongsInFolder(new File(preferencesManager.getValue(PreferencesManager.SONGSFOLDER))); + } + + if(randomActive) { + Collections.shuffle(files); + } } public boolean initPlayer() { @@ -62,23 +68,22 @@ public class MusicManager implements OnCompletionListener { // return the path by complete name public String getPath(String name) { - File file = new File(songFolder, name); - if (!file.exists()) { - return null; + int count = 0; + File file = files.get(count); + while(!file.getName().equals(name)) { + if(count == files.size()) { + return null; + } + file = files.get(++count); } return file.getAbsolutePath(); } // return names public List<String> getNames() { - List<File> songs = Tuils.getSongsInFolder(songFolder); - if(songs == null) { - return null; - } - List<String> names = new ArrayList<>(); - for (File file : songs) + for (File file : files) names.add(file.getName()); Collections.sort(names); @@ -88,10 +93,10 @@ public class MusicManager implements OnCompletionListener { // return paths public List<String> getPaths() { - List<File> songs = Tuils.getSongsInFolder(songFolder); + List<String> paths = new ArrayList<>(); - for (File file : songs) + for (File file : files) paths.add(file.getAbsolutePath()); return paths; @@ -106,28 +111,21 @@ public class MusicManager implements OnCompletionListener { } private boolean prepareSong(int songIndex) { - if (songFolder == null) + if (files == null) return false; List<String> songs = getPaths(); - if (randomActive) { - Random random = new Random(); - int totalSongs = songs.size(); - - int newSong; - do { - newSong = random.nextInt(totalSongs); - } while (songIndex == newSong); - songIndex = newSong; - } else { - if (songIndex >= songs.size()) - songIndex -= songs.size(); - else if (songIndex < 0) - songIndex += songs.size(); - - currentSongIndex = songIndex; + if(songs == null) { + return false; } + if (songIndex >= songs.size()) + songIndex -= songs.size(); + else if (songIndex < 0) + songIndex += songs.size(); + + currentSongIndex = songIndex; + return prepareSong(songs.get(songIndex)); } diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/PreferencesManager.java b/app/src/main/java/ohi/andre/consolelauncher/managers/PreferencesManager.java index ab29065..47b6a36 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/managers/PreferencesManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/managers/PreferencesManager.java @@ -51,6 +51,7 @@ public class PreferencesManager { public static final String PLAY_RANDOM = "playRandom"; public static final String SONGSFOLDER = "songsFolder"; + public static final String FROM_MEDIASTORE = "fromMediastore"; public static final String USE_SYSTEMWP = "useSystemWallpaper"; public static final String FULLSCREEN = "fullscreen"; diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/SkinManager.java b/app/src/main/java/ohi/andre/consolelauncher/managers/SkinManager.java index 56fb5a4..15b5aa5 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/managers/SkinManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/managers/SkinManager.java @@ -3,6 +3,7 @@ package ohi.andre.consolelauncher.managers; import android.graphics.Color; import android.graphics.Typeface; import android.graphics.drawable.ColorDrawable; +import android.util.Log; import java.util.HashMap; @@ -47,7 +48,7 @@ public class SkinManager { private boolean useSystemWp; private boolean showSuggestions; - private HashMap<Integer, ColorDrawable> suggestionBgs = new HashMap<>(); + private HashMap<Integer, Integer> suggestionBgs = new HashMap<>(); private int suggestionTextColor; @@ -117,75 +118,79 @@ public class SkinManager { try { multicolorSuggestions = Boolean.parseBoolean(prefs.getValue(PreferencesManager.USE_MULTICOLOR_SUGGESTIONS)); } catch (Exception e) { - transparentSuggestions = true; - } - if(multicolorSuggestions) { - transparentSuggestions = !multicolorSuggestions; + multicolorSuggestions = false; } - if(!transparentSuggestions && !multicolorSuggestions) { - int defaultSuggestionBg; - try { - defaultSuggestionBg = Color.parseColor(prefs.getValue(PreferencesManager.DEFAULT_SUGGESTION_BG)); - } catch (Exception e) { - defaultSuggestionBg = defaultSuggestionBgDefault; - } - suggestionBgs.put(null, new ColorDrawable(defaultSuggestionBg)); + if(multicolorSuggestions) { + transparentSuggestions = false; } if(transparentSuggestions) { - suggestionBgs.put(null, null); - } - - if(multicolorSuggestions) { - - int appSuggestionBg; - try { - appSuggestionBg = Color.parseColor(prefs.getValue(PreferencesManager.APP_SUGGESTION_BG)); - } catch (Exception e) { - appSuggestionBg = appSuggestionBgDefault; - } - suggestionBgs.put(SuggestionsManager.Suggestion.TYPE_APP, new ColorDrawable(appSuggestionBg)); - - int contactSuggestionBg; - try { - contactSuggestionBg = Color.parseColor(prefs.getValue(PreferencesManager.CONTACT_SUGGESTION_BG)); - } catch (Exception e) { - contactSuggestionBg = contactSuggestionBgDefault; - } - suggestionBgs.put(SuggestionsManager.Suggestion.TYPE_CONTACT, new ColorDrawable(contactSuggestionBg)); + suggestionBgs.put(0, Color.TRANSPARENT); - int commandSuggestionsBg; - try { - commandSuggestionsBg = Color.parseColor(prefs.getValue(PreferencesManager.COMMAND_SUGGESTION_BG)); - } catch (Exception e) { - commandSuggestionsBg = commandSuggestionsBgDefault; - } - suggestionBgs.put(SuggestionsManager.Suggestion.TYPE_COMMAND, new ColorDrawable(commandSuggestionsBg)); - - int songSuggestionBg; - try { - songSuggestionBg = Color.parseColor(prefs.getValue(PreferencesManager.SONG_SUGGESTION_BG)); - } catch (Exception e) { - songSuggestionBg = songSuggestionBgDefault; + if(suggestionTextColor == bgColor) { + suggestionTextColor = Color.GREEN; } - suggestionBgs.put(SuggestionsManager.Suggestion.TYPE_SONG, new ColorDrawable(songSuggestionBg)); - - int fileSuggestionBg; + } else { + int defaultSuggestionBg; try { - fileSuggestionBg = Color.parseColor(prefs.getValue(PreferencesManager.FILE_SUGGESTION_BG)); + defaultSuggestionBg = Color.parseColor(prefs.getValue(PreferencesManager.DEFAULT_SUGGESTION_BG)); } catch (Exception e) { - fileSuggestionBg = fileSuggestionBgDeafult; + defaultSuggestionBg = defaultSuggestionBgDefault; } - suggestionBgs.put(SuggestionsManager.Suggestion.TYPE_FILE, new ColorDrawable(fileSuggestionBg)); - - int aliasSuggestionBg; - try { - aliasSuggestionBg = Color.parseColor(prefs.getValue(PreferencesManager.ALIAS_SIGGESTION_BG)); - } catch (Exception e) { - aliasSuggestionBg = aliasSuggestionBgDefault; + suggestionBgs.put(0, defaultSuggestionBg); + + + if(multicolorSuggestions) { + + int appSuggestionBg; + try { + appSuggestionBg = Color.parseColor(prefs.getValue(PreferencesManager.APP_SUGGESTION_BG)); + } catch (Exception e) { + appSuggestionBg = appSuggestionBgDefault; + } + suggestionBgs.put(SuggestionsManager.Suggestion.TYPE_APP, appSuggestionBg); + + int contactSuggestionBg; + try { + contactSuggestionBg = Color.parseColor(prefs.getValue(PreferencesManager.CONTACT_SUGGESTION_BG)); + } catch (Exception e) { + contactSuggestionBg = contactSuggestionBgDefault; + } + suggestionBgs.put(SuggestionsManager.Suggestion.TYPE_CONTACT, contactSuggestionBg); + + int commandSuggestionsBg; + try { + commandSuggestionsBg = Color.parseColor(prefs.getValue(PreferencesManager.COMMAND_SUGGESTION_BG)); + } catch (Exception e) { + commandSuggestionsBg = commandSuggestionsBgDefault; + } + suggestionBgs.put(SuggestionsManager.Suggestion.TYPE_COMMAND, commandSuggestionsBg); + + int songSuggestionBg; + try { + songSuggestionBg = Color.parseColor(prefs.getValue(PreferencesManager.SONG_SUGGESTION_BG)); + } catch (Exception e) { + songSuggestionBg = songSuggestionBgDefault; + } + suggestionBgs.put(SuggestionsManager.Suggestion.TYPE_SONG, songSuggestionBg); + + int fileSuggestionBg; + try { + fileSuggestionBg = Color.parseColor(prefs.getValue(PreferencesManager.FILE_SUGGESTION_BG)); + } catch (Exception e) { + fileSuggestionBg = fileSuggestionBgDeafult; + } + suggestionBgs.put(SuggestionsManager.Suggestion.TYPE_FILE, fileSuggestionBg); + + int aliasSuggestionBg; + try { + aliasSuggestionBg = Color.parseColor(prefs.getValue(PreferencesManager.ALIAS_SIGGESTION_BG)); + } catch (Exception e) { + aliasSuggestionBg = aliasSuggestionBgDefault; + } + suggestionBgs.put(SuggestionsManager.Suggestion.TYPE_ALIAS, aliasSuggestionBg); } - suggestionBgs.put(SuggestionsManager.Suggestion.TYPE_ALIAS, new ColorDrawable(aliasSuggestionBg)); } } } @@ -227,7 +232,11 @@ public class SkinManager { } public ColorDrawable getSuggestionBg(Integer type) { - return suggestionBgs.get(type); + if(transparentSuggestions) { + type = 0; + } + + return new ColorDrawable(suggestionBgs.get(type)); } public int getSuggestionTextColor() { diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/SuggestionsManager.java b/app/src/main/java/ohi/andre/consolelauncher/managers/SuggestionsManager.java index 9e13955..43fe669 100644 --- a/app/src/main/java/ohi/andre/consolelauncher/managers/SuggestionsManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/managers/SuggestionsManager.java @@ -1,5 +1,7 @@ package ohi.andre.consolelauncher.managers; +import android.util.Log; + import java.io.File; import java.util.ArrayList; import java.util.Collections; @@ -20,13 +22,13 @@ public class SuggestionsManager { private static final int MIN_COMMAND_RATE = 1; private static final int MIN_COMMAND_PRIORITY = 5; - private static final int MIN_APPS_RATE = 3; + public static final int MIN_APPS_RATE = 3; - private static final int MIN_CONTACTS_RATE = 2; + public static final int MIN_CONTACTS_RATE = 2; - private static final int MIN_FILE_RATE = 2; + public static final int MIN_FILE_RATE = 2; - private static final int MIN_SONGS_RATE = 2; + public static final int MIN_SONGS_RATE = 2; // use to place something at the top private static final int MAX_RATE = 100; @@ -289,9 +291,6 @@ public class SuggestionsManager { public static final int TYPE_SONG = 14; public static final int TYPE_CONTACT = 15; - public static final int EXEC_ON_CLICK = 10; - public static final int NONE = 11; - public String text; public boolean exec; public int rate; diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/TerminalMAnager.java b/app/src/main/java/ohi/andre/consolelauncher/managers/TerminalMAnager.java index 7dcc163..8205f18 100644 --- a/app/src/main/java/ohi/andre/consolelauncher/managers/TerminalMAnager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/managers/TerminalMAnager.java @@ -63,6 +63,9 @@ public class TerminalManager { }; private SkinManager mSkinManager; + private String originalInput; + private List<InputText> propertyText = new ArrayList<>(); + private OnNewInputListener mInputListener; public TerminalManager(TextView terminalView, EditText inputView, TextView prefixView, TextView submitView, SkinManager skinManager, @@ -106,8 +109,8 @@ public class TerminalManager { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { - if (actionId == EditorInfo.IME_ACTION_GO || actionId == EditorInfo.IME_ACTION_DONE - || (physicalEnter && actionId == EditorInfo.IME_ACTION_UNSPECIFIED)) { +// physical enter is temporary ignores + if (actionId == EditorInfo.IME_ACTION_GO || actionId == EditorInfo.IME_ACTION_DONE) { onNewInput(); return true; } else @@ -118,6 +121,8 @@ public class TerminalManager { private void setupNewInput() { mInputView.setText(Tuils.EMPTYSTRING); + originalInput = Tuils.EMPTYSTRING; + propertyText = new ArrayList<>(); mCurrentOutputId++; requestInputFocus(); } @@ -324,4 +329,17 @@ public class TerminalManager { }); } + public static class InputText { + + String original; + CharSequence shownText; + Runnable onClick; + + public InputText(String original, CharSequence shownText, Runnable onClick) { + this.original = original; + this.shownText = shownText; + this.onClick = onClick; + } + } + } diff --git a/app/src/main/java/ohi/andre/consolelauncher/tuils/SuggestionRunnable.java b/app/src/main/java/ohi/andre/consolelauncher/tuils/SuggestionRunnable.java index e624ef5..da7ce33 100644 --- a/app/src/main/java/ohi/andre/consolelauncher/tuils/SuggestionRunnable.java +++ b/app/src/main/java/ohi/andre/consolelauncher/tuils/SuggestionRunnable.java @@ -14,11 +14,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.*/ +import android.graphics.Color; +import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.HorizontalScrollView; import android.widget.TextView; +import ohi.andre.consolelauncher.R; import ohi.andre.consolelauncher.managers.SkinManager; import ohi.andre.consolelauncher.managers.SuggestionsManager; @@ -87,19 +90,21 @@ public class SuggestionRunnable implements Runnable { } String s = suggestions[count].text; - if (count < toRecycle.length) { - toRecycle[count].setId(suggestions[count].exec ? SuggestionsManager.Suggestion.EXEC_ON_CLICK : - SuggestionsManager.Suggestion.NONE); + if (toRecycle != null && count < toRecycle.length) { + toRecycle[count].setTag(R.id.exec_on_click_id, suggestions[count].exec); + toRecycle[count].setTag(R.id.suggestion_type_id, suggestions[count].type); + toRecycle[count].setText(s); - toRecycle[count].setBackgroundDrawable(null); toRecycle[count].setBackgroundDrawable(skinManager.getSuggestionBg(suggestions[count].type)); } else { int space = suggestions.length - (count + 1); if (toAdd != null && space < toAdd.length) { - toAdd[space].setId(suggestions[count].exec ? SuggestionsManager.Suggestion.EXEC_ON_CLICK : - SuggestionsManager.Suggestion.NONE); + toAdd[space].setTag(R.id.exec_on_click_id, suggestions[count].exec); + toAdd[space].setTag(R.id.suggestion_type_id, suggestions[count].type); + toAdd[space].setText(s); toAdd[space].setBackgroundDrawable(skinManager.getSuggestionBg(suggestions[count].type)); + if(toAdd[space].getParent() == null) { suggestionsView.addView(toAdd[space], suggestionViewParams); } else { 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 36f40e3..c376ca3 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/tuils/Tuils.java +++ b/app/src/main/java/ohi/andre/consolelauncher/tuils/Tuils.java @@ -8,11 +8,14 @@ import android.app.ActivityManager; import android.app.ActivityManager.MemoryInfo; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; +import android.content.ContentResolver; import android.content.Context; import android.content.Intent; +import android.database.Cursor; import android.net.Uri; import android.os.Build; import android.os.Environment; +import android.provider.MediaStore; import android.provider.Settings; import android.text.TextUtils; import android.util.Patterns; @@ -393,4 +396,35 @@ public class Tuils { return new File(Tuils.getInternalDirectoryPath(), TUI_FOLDER); } + public static List<File> getMediastoreSongs(Context activity) { + ContentResolver cr = activity.getContentResolver(); + + List<File> paths = new ArrayList<>(); + + Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; + String selection = MediaStore.Audio.Media.IS_MUSIC + "!= 0"; + String sortOrder = MediaStore.Audio.Media.TITLE + " ASC"; + Cursor cur = cr.query(uri, null, selection, null, sortOrder); + int count = 0; + + if(cur != null) + { + count = cur.getCount(); + + if(count > 0) + { + while(cur.moveToNext()) + { + String data = cur.getString(cur.getColumnIndex(MediaStore.Audio.Media.DATA)); + paths.add(new File(data)); + } + + } + } + + cur.close(); + + return paths; + } + } diff --git a/app/src/main/res/drawable/cursor.xml b/app/src/main/res/drawable/cursor.xml index 20e05b5..bff8d95 100644 --- a/app/src/main/res/drawable/cursor.xml +++ b/app/src/main/res/drawable/cursor.xml @@ -4,6 +4,5 @@ <solid android:color="#FFFFFFFF" /> <size - android:width="@dimen/cursor_width" - android:height="@dimen/input_height" /> + android:width="@dimen/cursor_width"/> </shape> \ No newline at end of file diff --git a/app/src/main/res/layout-v12/input_group.xml b/app/src/main/res/layout-v12/input_group.xml index fa03d42..f7ae2b6 100644 --- a/app/src/main/res/layout-v12/input_group.xml +++ b/app/src/main/res/layout-v12/input_group.xml @@ -3,24 +3,27 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:weightSum="9" - android:orientation="horizontal"> + android:orientation="horizontal" + android:gravity="center_vertical"> <TextView android:id="@+id/prefix_view" android:layout_width="wrap_content" - android:layout_height="wrap_content"/> + android:layout_height="wrap_content" + + android:paddingTop="@dimen/input_padding"/> <EditText android:id="@+id/input_view" android:layout_width="0dp" - android:layout_height="@dimen/input_height" + android:layout_height="wrap_content" android:layout_weight="7" - android:paddingTop="@dimen/input_padding" - android:background="@null" android:imeOptions="actionGo|flagNoFullscreen" + android:paddingTop="@dimen/input_padding" + android:lines="1" android:singleLine="true" android:textCursorDrawable="@drawable/cursor" /> @@ -28,10 +31,12 @@ <Button android:id="@+id/submit_tv" android:layout_width="0dp" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:layout_weight="2" android:background="@null" - android:text="↲" /> + android:text="↲" + + android:paddingTop="@dimen/input_padding"/> </LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/input_group.xml b/app/src/main/res/layout/input_group.xml index e92ea59..1fed2c3 100644 --- a/app/src/main/res/layout/input_group.xml +++ b/app/src/main/res/layout/input_group.xml @@ -2,34 +2,39 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="horizontal"> + android:orientation="horizontal" + android:gravity="center_vertical"> <TextView android:id="@+id/prefix_view" android:layout_width="wrap_content" - android:layout_height="wrap_content" /> + android:layout_height="wrap_content" + + android:paddingTop="@dimen/input_padding"/> <EditText android:id="@+id/input_view" android:layout_width="0dp" - android:layout_height="@dimen/input_height" + android:layout_height="wrap_content" android:layout_weight="1" - android:paddingTop="@dimen/input_padding" - android:background="@null" android:imeOptions="actionGo|flagNoFullscreen" + android:paddingTop="@dimen/input_padding" + android:lines="1" android:singleLine="true"/> <Button android:id="@+id/submit_tv" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:layout_marginRight="20dp" android:background="@null" - android:text="↲" /> + android:text="↲" + + android:paddingTop="@dimen/input_padding"/> </LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index 60d00418be924803ce64c9116e51d1c1749fff20..e7a121f85d03925ed743e20939aaa181232497f6 100755 GIT binary patch literal 1065 zcmeAS@N?(olHy`uVBq!ia0y~yVDJE84mJh`hS0a0-5D5|KX|%0hE&A8ogUi}k}7e$ z{`?ueq@RxWDi(GxkxtUv{k*5^lB?>ZkZG;ru36@Z9g8I5I^xB%SnsV+S()k*w?gAm zs}uL#8*WR*jh^?+ZcJGHrBOcn2jjM;cV~p(zl*fcvo=1n@4>rU#d&GZ=6s*?*>3;$ z@_*+g4{qyXIr1Y!EumqRL{bCKg!qmbj%gDlpSU03`SdtlGKFoXV;##G1^c>bL<|3W z&(?aX+aaJO`K?p>T9f%Nc(Q`jt{skd*n6PUqaytXBiEGatbV&YwRQA4+_QBT-TCqI z)Q#m2gbV^7Z1(uE;#xNUPDkBSf6gp!=(`f-vh<_zRL)X^r#5rkHLg~@b!0rHnJr?K z^kd&0-{%^^@`rv$TFek%$7{0D;io`^&Ih-mJ2Oi(+pbRS;+%55ar+%h{>01qhjhQ& z281!|O74*6lnzj7`O7tv=Z^?yyFB*-2TQ##Hs|*<v+sI1JHGYy%h}JTq?N9|7R-EK zt0qpM&a<C$YVv{If7RCZ2Gl!gOw(3do)h@vi0t_TQ}%pV{##B<UAEvsmX41X!_MF7 zqI_a4Q~S9u$TgNa%x{ckau@k_^b&Jx<f$z}bC~CO`mTC#EahQF+zYO$HxH~naNLva zEn}U|0nH<>mk!+Cz&?d(gGdGcjEmu2ht4y3Cp}DCY?S4r->{S^pK0;r!tE?(?uVv7 zHPQ%)V~+Ds7W$zm<k!#P@UnBe2DkACQv=J3b#8GxX2=<POU5_dJ;0u~-&jv*S~$ZN z?uh&R7ruGiFjHbU8*;3tX}jng*Yymgo`&!CCdcW-l<toeo0>55%dBe?dJ2DTQWh(l z!aOB-8Uy#G2CoZI0{f)DH8`azZxF4p(sW?G6|=9WeR8hTcbTONIo5Ldu2lNJ@cI_! zjUU=?+s`nwf5W(R*A3eT1%ltUa*LlTG2Cwbe%Fl*i@LBK_t#I}%d$oFci7QG;#aMF zSFB<Ergm`O3WY7_LXX)tY(DVW`QFi@Q_EFfoH?{`PeJ*DrlMQIch<@7KKD$`?!mP+ zHnUq#pFF6yU@@QAJmGcIt<?jV8Z}-n;@c5D=UB*bnOkP@xvkl@a$50>+P}_eJ2~(E zP`>na%PGGE=U1VRy*|Y~`}E-?)0C9J8I3EM=3ai_vsC=3T|wig7`9nm1<&IxjKz+L zCOX-cJa6SQUl%#^ot<~V^QMBu*N#eGiSLcdH=1-@dV$vJ^ah>@_nGt9W;&)#kY_YL v(LX<Rf@BKYPeFs`KR+T#6b^m(U4F;J?1(Az4$fs@U|{fc^>bP0l+XkKB+ln? delta 2508 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 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png index 65649542e03fafe3c6531ec96081d9a02028ce2c..627c57a57a199a5414c97bd0820ca511a6964ab2 100755 GIT binary patch delta 668 zcmZqT+sryaxt^)Y)5S3)!};wLe~*wrkz@7gS*k0$6`I5x!&aZFG){12&HKIi%z~x` zE6fC0#8h+_EfCX<Iw^8R>0p?ngrHytm*7Ex_kFD_qN2J{E-GEZme1zwn0(NH$L660 z-=W&s?C<w{-ut_DfAPExhx8*KK3A8>Fgxg=AYh;-;C4b{!OnVH0R#685e}9f##y(S z8H-!o8XXQuEZ7MWj&N64Tf$t-`Y?4;oij(u)UsCLR1J}qjZ2)bTvL9^9#C@V*php0 zk}ot4yDzxU`Fs*zVDx#7-6H=i9+n2ZU&P~bYQlldkrf7tXa0zv)i6IDAhP3iOa8x~ zeoNP~<S&?XZ_0tc5f=6F&nGl<-JUby+g1-v24O!7G0nvX^wnh|w3z)H{~lO!sNvAt z!iTj{JCzC~10GCt$dme%y&(L7mBFL;8x4ZeecV_#ZM^U-TQW6DvCOG_NsW-ku|wZf z4Ij8#O<l|6&T@|7b)&6c#a8FY?NU`De!s6b+!L``C%4eUk|pM=6_-7C{h_$|pEgOp z2)cI8k-tFX25*h;!F^#rj9gha*T3WZ%jUOqK|t<;;FnRZM_bGd9=Bwl&Qb`nV~{<t z!6}d1rc&dK`zeM3nF{VFUIs79RaS>gyU`z_GiR+i+eD)`hcz63>v(AUF#T-n35a^> zeK0_0&uTlLC3AERKQEMU)~XKJDONA`^EcDPYQG%;>Fjw7wSS_2h$RSrSft1{No-}D z?P8e_3!Mr5t^aP7Z}K{A6T@P*{K3vcZ2zwp9h&R0lV!@B0_~T#yMOhnb((CJ<1sO= o{r?szZb5N~BWhv7|3#T(tFIaEahj>cz`(%Z>FVdQ&MBb@0FsFv&Hw-a delta 1779 zcmdnY+Qc_Oxt{H$r;B4qhV$E*(K#Wm6371=Z=SyGc3$+Ur6L`dcIgBxQ2OX}=xWO+ zhNkUG4;xqT3z!~Mcj)CjF23l+<b6L9e6C0+w+J{lurnGuIVN**-44oFJ;h6NdfbcD z^Qq5!X5O^*=Jx(RWtyJG=S!z&&iwp$-~aDtpIWo<S19xE_*=nIKOvL#e>GP~=-ZU1 zPq!}S6YD%9vb${UL+4PF%oWQrL-?+loRxc}qI@;})`HC2EDkNVEkzw_67GEX`aVy; zX+GPGr=_-?x2G?Cb$pMZqRug&{*JoO2cKy-C^#tzlnWd&tZQEORHE#G@QrVunT~if zn4T}_DK?%qX~$mIgEnIGtWxWbADbRtqj9+6`8loIye>ise}7xssUL7l2$7kevUrM? ze=p~=g-S78hYjxE4A}Zf+4r)|?QOY_Un)##PrV`FrL2(B)L_8LF?n*I+hm4KPoJ~B z*?IZ&o=@*HLhf%WJX<WkJJ5-7&z8bsjpZv|gnM}^GVByGII^_BX~qBdho2Tb3#!*E z645xpJ)tXe>8rb+>T55)xMm&~xmQ`X#i-!v>e)`oYQ9#E9LG2m+#WG(I{Ca$OnE9l z^OjPEPoJ4)Nb4y(aqtPaaR^*3Wi^bjP-W!u_L{=v)F3=5<iN+W`UwxU3=U{c2~s?~ zRYBsw<IAU}T;7pe?53&Q;&8p!@$gHt2A-Ds2{COhPK>HMbf<iZacgQRnBpPo_fn)_ zk7>}u$1A3vX-?r&5fupd#=UbkrypnF!yJiaL65E#6fqmznXvP61?$6>0D}p>^JWMJ z{al#TCGa!&DU0fqK(7n8#qWN4cIzs0*m55xjcCq=mpl}C=SbJ}^yu<%UGDPy9V#5e zsrY1>Tm8y2ok#2x+pSjjM76$~a70<wYUPyxflJrs<k%nT_i@Yf+h*f+<UA86$AllB z^b~jf{<SS9>iZ%dbyI`O44$e>*3LODaORv+i=gAL`6(fO2Nq4KY88m(^?jZ$`{U8( zX}?($7+M6(dNQVP%;uhSV`b<L0WIgwnagh8ym)EPj|=bC*Z-F>W6<8kc5f>Gkv-*8 z-^@FC_QSLor!U*nMOus|pJL^BFm0t!RBP~`g)viY3{SuMv-;hYL$7M9&)wl;IQV(m z`}DBeE{SvJI_B6$^PZboFXAL1v2}C8{S*FD(iPv_CAL28h}DynIgreFhxx*h(&ppl z)sxDZudHv5m$pynRBhp^pItnoY6?eUH%kkz(@d5h%OBoZ^!RuAT)(vq?Z)@7xIN^) zDqL4;^W{VihpqIyNn$ByJ67EPYP|X3%o@SS%jcV3M>f24J^wIOb85olbqX84C{*!> zDP_O&<gn$gJucQLwne%8r2hl+rWaF_^S2$bQ_S6-C>6L>O3>-a%PEn|X0p{g$f?#W z`_TTn!#<=x<Lu-OdOoZY?e8zD{dhj7>8e0eV0ho0rR<4w`48`k;aT{+;YaC@bhk;% zZp1py@Kt2d`tJPyujYn5d8~SjDW82ZTKE4ksp1d6w`u`1W8&>YM!Z|qcQBn;WpT77 zSdU}#%AOg#mlbs6Yl5X8%nt01$mTrrtA6H&-$hrrQ#oexDjr$a$9}e}shs^`^^^Cr z8TK-Y#x<t0C(K#Lpq<06y{m8E;_gt3O7*y=`YION_G!ywk{+|4`Vl5z?5o$3FfFw- zF3V#7hN}DDHH#b?s+XH=j(DxYcy7|~hUGtmDyjurUdn$^ieDl3&$6Cjn)tDqk*992 zoMloUq;=Su+p)O%LUD%VpNCcz>f2YmyZbwgv2%}yVVvrA0ki%{F=O83f`+=~7cbs8 zac51OpM@stqP@0rb)TQ(n{>py|MGXq2AfyGX)mhWKi|C7di-0Rxa2px2ghoaFC4er zyXtgb>MU9D*RRF?d^)`SBU4!0d8fP||L!v=S1v4n{I*_1I%?B_33e@R54~QBDTRir z*dEY`d3BfRPLxN$_b1kBg`3t0t@k>z+V}giHIKv=)LW_-UTv}Ri(YoKZsWeZ#3IqC zufJ|T{PU>uxckZtrP~?)ie~J;AQ4%TQ=TNhBIft4DV$3mPM&gUBh$AP)5PvxS|Pn` zRgl4a!MD5XcKv$3{Cs_gd|pY{?tS9-Zv6_)t2-!l%qH*o84r88?uC2TmY(0IZy&on zbJk0S35G|HKK!YDE$2M9n2y4k!wxD1f1b_%sJ379gtcM+$8~+#SJnC6)U98<cCBBi z>5{_Ee3nl$EE9uXZrSwaPQrn0sl7)3V&c?{7!|#pJGZ(_i;XA`clW>DnsZEzA$Qg? z$xn-YE*WrcEPo#t799N8J7l?WV)3r>PnDma%``PN-E?HpyJea-(MPB0?3^XozkKt* z6B7%WZkRrBeo&j4VKw33d3h$DqtV|Ny?17P*Bah#^n8D@-IEl7{7I7;7#J8lUHx3v IIVCg!09WN(tN;K2 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 54b0160cd0da9b609f0207cffb4216144236539f..12cc9cba8c3a38efce86d264369f320e5d1dda89 100755 GIT binary patch literal 1439 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^SB(>z@qLn`9l&WP;@4HY?F z|N2$N%%vBdmt>~2wJ!U9CZ*A3=28}+tIkVP{cT<K1HS}BNJ<KR5&7Zj#g#gr#qGj! zqaYQ-JC^0k^mX3~D=Q1+`W&}5*8VoP_)Uq#^LdGCV#ez#cNKrX^}GJu|Ly<N*B7(? zH!gMXxf(0Op0I~grh(a@>_Egl;Rg&ovIf(>vsf@Bv-do;W#l_>gE6_%pKj6`8uFUv z467TXIK#qQzBL82>wabtDcQJ2MqtL&DepU5U0Ij+$uj7kDy{ucROP;R!<yh9g(^K6 zTilk^aK}u%^0u$_Xzw!-N%>IDhy^;@2isrvemyvc@8NDGbE`YE(w4eDG+eNpC0pyz zy@%^0pIJ9dEGU%7?vZHlh~$5xdvIG<!IF!nuBUvNR{u(<4b6~VQ#Y?DQ8<TLk73=p zD|K9dVw<*#KHTg!E72zC9rHWivitMj9$NKgk4L5HMaPF*S6wO9)IQIx!!cj9EWGu3 z*9+5ClAa9Kjj9I%8^arX-#R^iskdN_j(CN>?Ujb!;0I^J9=g<>t9g2<@WWvR^Wt=! zJ$GNE2{ZUJ`>SnbPk#7FrlI-3mM6QnZv5c#<Ib8lK|2h8{_Bm12y|H=c=kV|!qt$* zu-4Mx1ozb!Chwgg(@^qa!U3^HU(tutznu1%x$HyVfhlJkCEBb-{H8qkSe6*Rc(&|o zhA<5qjVre|2c7Gg-+1<MV)5(`)e_Mw&b)Yezq5SF#PerXGQMY$PP)<Ba^<jx%%O=! zX2KI@Z4a0k+Pu59%H{cUhZ1g^3wr;zP1-!QbMiy6#;FI^9$0c`PL_^~D}zf^z25nA z>W&Yuuln#|hTj2)kMRr6=pJ-F@ONh4>zNULw$1;IbNh<ksqB!g5SuZPXI@9^W^Se* zOgqvVvVW?HJ)399@Jws+><4BEtp|(}oQ_RlWZaTr@jPN>fw+Nj@Oy?XnY`|)AKepH z9<sf(zgzwJGuf~kTzeu!>$s8^?$-S3%+)`Cb<x*{JNHXROfR$OJ=d_ws8puseEfUQ z7k`5+Y?cWNWd6OtbN<7h_|SyMhBx;4|In7r37e)-V{@SK?$QmmG6zBz&Wc?l*q|i6 zG%|AWhmfG((K<fo&vj2Ryx7*Jm*$?~xH?f>J=W)&8+(THe(@Ut&1+xgot2IXo5oc$ z<>x*bZdunJ|7@kFf)84s{Ey;It5KElIyd8`>J9celY9DieQ(fi)K#s}ynUQMC4ecR z{Q&zz)i*{J|8*CZ8yFw9yvRP)=j`)<ddFLlqEX!q9Qh9psL#AL;lc+Yb5k2TWBtU1 zDPI^gw7YjL*cAUlFUh6bC^*q+_lEr*wJS0MXZ?EMu*`Xte`v)Pt>tB37o2Y0{7T~p z*Jr=r3Zu&=J#q}LzA|~SOJex<@Wo77XDY&w=oh&&=GXO%b1~-y7uMP7u;<B@_AhuS zWj*C*_tedO*W#C1#y{xqys**T!fuLbz>=N&Kkr&1zN>1%+w6s}qn_@Ww<LGn!H<3q zBPQ+pVC)h6;|}ZHn{7!RyLLVj{H>c|Azr9<zLeqE7g@R$97Gga63jo?y_TFWxS{ky RhJk^B!PC{xWt~$(69A6;jYt3h literal 3555 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 N;OXk;vd$@?2>@&$mj(a; diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index de31fd30c541092f07b0504462496691db1e827e..41fc64a8a383145d56c4d7fa84e66596b54a8a84 100755 GIT binary patch literal 2271 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 literal 5497 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 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index bdaef34cd2ee2444c86048747e66753b7cb8223f..7acc991f0d64732d6cd0895bcbe4b3bdfdd313b2 100755 GIT binary patch literal 2970 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 literal 7110 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 E03P2)r~m)} diff --git a/app/src/main/res/raw/settings.txt b/app/src/main/res/raw/settings.txt index f2d6a6f..bc15a21 100755 --- a/app/src/main/res/raw/settings.txt +++ b/app/src/main/res/raw/settings.txt @@ -1,5 +1,5 @@ // do not edit the settingsVersion property! -settingsVersion=4.4 +settingsVersion=4.7 // when you are ready go back to t-ui and type "restart" to see changes @@ -39,6 +39,7 @@ keepAliveWithNotification=true openKeyboardOnStart=true // music +fromMediastore=true playRandom=true songsFolder=/sdcard/Music diff --git a/app/src/main/res/values-h1024dp/dimension.xml b/app/src/main/res/values-h1024dp/dimension.xml index 37ce161..8b27ae1 100755 --- a/app/src/main/res/values-h1024dp/dimension.xml +++ b/app/src/main/res/values-h1024dp/dimension.xml @@ -1,8 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <dimen name="input_height">60dp</dimen> - <dimen name="input_padding">45dp</dimen> + <dimen name="input_padding">35dp</dimen> <dimen name="suggestion_height">60dp</dimen> </resources> diff --git a/app/src/main/res/values-h320dp/dimension.xml b/app/src/main/res/values-h320dp/dimension.xml index 19c2112..a2b8595 100755 --- a/app/src/main/res/values-h320dp/dimension.xml +++ b/app/src/main/res/values-h320dp/dimension.xml @@ -1,8 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <dimen name="input_height">50dp</dimen> - <dimen name="input_padding">35dp</dimen> + <dimen name="input_padding">25dp</dimen> <dimen name="suggestion_height">50dp</dimen> </resources> diff --git a/app/src/main/res/values-h720dp/dimension.xml b/app/src/main/res/values-h720dp/dimension.xml index 307ab51..1a3e50a 100755 --- a/app/src/main/res/values-h720dp/dimension.xml +++ b/app/src/main/res/values-h720dp/dimension.xml @@ -1,8 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <dimen name="input_height">60dp</dimen> - <dimen name="input_padding">45dp</dimen> + <dimen name="input_padding">30dp</dimen> <dimen name="suggestion_height">55dp</dimen> </resources> diff --git a/app/src/main/res/values/dimension.xml b/app/src/main/res/values/dimension.xml index d5200cf..91adf6a 100755 --- a/app/src/main/res/values/dimension.xml +++ b/app/src/main/res/values/dimension.xml @@ -1,8 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <dimen name="input_height">35dp</dimen> - <dimen name="input_padding">25dp</dimen> + <dimen name="input_padding">15dp</dimen> <dimen name="suggestion_height">40dp</dimen> <dimen name="cursor_width">8dp</dimen> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fb7bf7e..3ae93fe 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4,10 +4,10 @@ <string name="app_name">T-UI</string> <string name="separator_text">>></string> <string name="separator_text_su">$</string> - <string name="su">T-UI got SU permissions</string> - <string name="nosu">Seems that your device isn\'t properly rooted</string> + <string name="su">T-UI got SU permission</string> + <string name="nosu">Your device isn\'t rooted</string> <string name="permissions_toast">You have to grant at least Storage permission to make t-ui work</string> - <string name="permission_error">t-ui has not the permissions to do this</string> + <string name="permission_error">t-ui hasn\'t the permission to do that</string> <string name="version_label">Version:</string> <!-- app mgr --> @@ -21,13 +21,13 @@ <string name="error_label">Errors:</string> <!-- pending operation --> - <string name="starting_app">Starting:</string> + <string name="starting_app">Launching:</string> <string name="calling">Calling:</string> <string name="sharing">Sharing:</string> <!-- various outputs --> <string name="output_nothingfound">No matches</string> - <string name="output_nopermissions">You didn\'t grant the permission to do this</string> + <string name="output_nopermissions">You didn\'t grant the permission to do that</string> <!-- search--> <string name="output_searchingplaystore">Play Store search:</string> diff --git a/build.gradle b/build.gradle index c8451c0..8f59b38 100644 --- a/build.gradle +++ b/build.gradle @@ -8,8 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:2.1.2' - classpath 'com.github.hamsterksu:android-appversion-gradle-plugin:1.2.0' + classpath 'com.android.tools.build:gradle:2.2.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files -- GitLab