From 919c891498813f680a22cc3ccbaae82b50bdc313 Mon Sep 17 00:00:00 2001 From: Francesco <franzbianconero@gmail.com> Date: Thu, 7 Sep 2017 14:01:28 +0200 Subject: [PATCH] 6.3j --- .../consolelauncher/LauncherActivity.java | 1 - .../ohi/andre/consolelauncher/UIManager.java | 156 ++++++---- .../commands/main/MainPack.java | 3 - .../commands/main/raw/tuixt.java | 2 - .../commands/tuixt/TuixtActivity.java | 59 ++-- .../consolelauncher/managers/AppsManager.java | 6 +- .../consolelauncher/managers/SkinManager.java | 269 ------------------ .../managers/TerminalManager.java | 56 ++-- .../managers/ThemesManager.java | 2 - .../managers/XMLPrefsManager.java | 57 +++- .../suggestions/SuggestionRunnable.java | 121 ++++++-- .../tuils/InputOutputReceiver.java | 5 +- .../consolelauncher/tuils/TimeManager.java | 28 +- .../andre/consolelauncher/tuils/Tuils.java | 47 ++- app/src/main/res/values/strings.xml | 2 +- 15 files changed, 370 insertions(+), 444 deletions(-) delete mode 100755 app/src/main/java/ohi/andre/consolelauncher/managers/SkinManager.java diff --git a/app/src/main/java/ohi/andre/consolelauncher/LauncherActivity.java b/app/src/main/java/ohi/andre/consolelauncher/LauncherActivity.java index ab8c991..735bd32 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/LauncherActivity.java +++ b/app/src/main/java/ohi/andre/consolelauncher/LauncherActivity.java @@ -319,7 +319,6 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable { startService(monitor); Intent timeColorIntent = new Intent(this, NotificationService.class); - Tuils.log(XMLPrefsManager.get(XMLPrefsManager.Theme.time_color)); timeColorIntent.putExtra(XMLPrefsManager.Theme.time_color.label(), XMLPrefsManager.getColor(XMLPrefsManager.Theme.time_color)); startService(timeColorIntent); } diff --git a/app/src/main/java/ohi/andre/consolelauncher/UIManager.java b/app/src/main/java/ohi/andre/consolelauncher/UIManager.java index 189809a..4921455 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/UIManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/UIManager.java @@ -7,6 +7,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Typeface; +import android.os.Build; import android.os.Handler; import android.text.Editable; import android.text.TextUtils; @@ -28,7 +29,6 @@ import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.TextView; -import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; @@ -38,7 +38,6 @@ import ohi.andre.consolelauncher.commands.ExecutePack; import ohi.andre.consolelauncher.commands.main.MainPack; import ohi.andre.consolelauncher.commands.specific.RedirectCommand; import ohi.andre.consolelauncher.managers.MessagesManager; -import ohi.andre.consolelauncher.managers.SkinManager; import ohi.andre.consolelauncher.managers.TerminalManager; import ohi.andre.consolelauncher.managers.XMLPrefsManager; import ohi.andre.consolelauncher.managers.suggestions.SuggestionRunnable; @@ -64,8 +63,6 @@ public class UIManager implements OnTouchListener { protected Context mContext; - private SkinManager skinManager; - private DevicePolicyManager policy; private ComponentName component; private GestureDetector det; @@ -103,40 +100,62 @@ public class UIManager implements OnTouchListener { } }; + int batterySize, ramSize, storageSize, timeSize; + private OnBatteryUpdate batteryUpdate = new OnBatteryUpdate() { + + boolean manyStatus, loaded; + int colorHigh, colorMedium, colorLow; + @Override public void update(float p) { + if(!loaded) { + loaded = true; + + manyStatus = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.enable_battery_status); + colorHigh = XMLPrefsManager.getColor(XMLPrefsManager.Theme.battery_color_high); + colorMedium = XMLPrefsManager.getColor(XMLPrefsManager.Theme.battery_color_medium); + colorLow = XMLPrefsManager.getColor(XMLPrefsManager.Theme.battery_color_low); + } + int percentage = (int) p; int color; - if(skinManager.manyColorsBattery) { - if(percentage > mediumPercentage) color = skinManager.battery_color_high; - else if(percentage > lowPercentage) color = skinManager.battery_color_medium; - else color = skinManager.battery_color_low; + if(manyStatus) { + if(percentage > mediumPercentage) color = colorHigh; + else if(percentage > lowPercentage) color = colorMedium; + else color = colorLow; } else { - color = skinManager.battery_color_high; + color = colorHigh; } if(batteryFormat == null) batteryFormat = XMLPrefsManager.get(String.class, XMLPrefsManager.Behavior.battery_format); String cp = batteryFormat.replaceAll("%[vV]", String.valueOf(percentage)).replaceAll("%[nN]", Tuils.NEWLINE); - batteryText = Tuils.color(cp, color); + batteryText = Tuils.span(mContext, cp, color, batterySize); UIManager.this.update(batteryIndex); } }; - private final String INT_AV = "%iav"; - private final String INT_TOT = "%itot"; - private final String EXT_AV = "%eav"; - private final String EXT_TOT = "%etot"; - - private List<Pattern> storagePatterns; - private String storageFormat; private Runnable storageRunnable = new Runnable() { + + private final String INT_AV = "%iav"; + private final String INT_TOT = "%itot"; + private final String EXT_AV = "%eav"; + private final String EXT_TOT = "%etot"; + + private List<Pattern> storagePatterns; + private String storageFormat; + + int color; + @Override public void run() { - if(storageFormat == null) storageFormat = XMLPrefsManager.get(String.class, XMLPrefsManager.Behavior.storage_format); + if(storageFormat == null) { + storageFormat = XMLPrefsManager.get(String.class, XMLPrefsManager.Behavior.storage_format); + color = XMLPrefsManager.getColor(XMLPrefsManager.Theme.storage_color); + } if(storagePatterns == null) { storagePatterns = new ArrayList<>(); @@ -215,16 +234,25 @@ public class UIManager implements OnTouchListener { copy = storagePatterns.get(25).matcher(copy).replaceAll(Matcher.quoteReplacement(String.valueOf(Tuils.formatSize((long) eav, Tuils.GIGA)))); copy = storagePatterns.get(26).matcher(copy).replaceAll(Matcher.quoteReplacement(String.valueOf(Tuils.formatSize((long) etot, Tuils.GIGA)))); - storageText = Tuils.color(copy, info.skinManager.storageColor); + storageText = Tuils.span(mContext, copy, color, storageSize); update(storageIndex); ts[storageIndex].postDelayed(this, STORAGE_DELAY); } }; private Runnable timeRunnable = new Runnable() { + + boolean active; + int color; + @Override public void run() { - timeText = TimeManager.replace("%t0", skinManager.time_color); + if(!active) { + active = true; + color = XMLPrefsManager.getColor(XMLPrefsManager.Theme.time_color); + } + + timeText = TimeManager.replace(mContext, timeSize, "%t0", color); update(timeIndex); ts[timeIndex].postDelayed(this, TIME_DELAY); } @@ -233,15 +261,23 @@ public class UIManager implements OnTouchListener { private ActivityManager.MemoryInfo memory; private ActivityManager activityManager; - private final String AV = "%av"; - private final String TOT = "%tot"; - - List<Pattern> ramPatterns; - String ramFormat; private Runnable ramRunnable = new Runnable() { + + private final String AV = "%av"; + private final String TOT = "%tot"; + + List<Pattern> ramPatterns; + String ramFormat; + + int color; + @Override public void run() { - if(ramFormat == null) ramFormat = XMLPrefsManager.get(String.class, XMLPrefsManager.Behavior.ram_format); + if(ramFormat == null) { + ramFormat = XMLPrefsManager.get(String.class, XMLPrefsManager.Behavior.ram_format); + + color = XMLPrefsManager.getColor(XMLPrefsManager.Theme.ram_color); + } if(ramPatterns == null) { ramPatterns = new ArrayList<>(); @@ -282,7 +318,7 @@ public class UIManager implements OnTouchListener { copy = ramPatterns.get(11).matcher(copy).replaceAll(Matcher.quoteReplacement(Tuils.NEWLINE)); - ramText = Tuils.color(copy, info.skinManager.ramColor); + ramText = Tuils.span(mContext, copy, color, ramSize); update(ramIndex); ts[ramIndex].postDelayed(this, RAM_DELAY); } @@ -324,7 +360,7 @@ public class UIManager implements OnTouchListener { private TextView terminalView; private Thread lastSuggestionThread; - private Handler activityHandler; + private Handler handler = new Handler(); private Runnable removeAllSuggestions = new Runnable() { @Override public void run() { @@ -397,29 +433,19 @@ public class UIManager implements OnTouchListener { if (suggestionViewParams == null) { suggestionViewParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); - suggestionViewParams.setMargins(SkinManager.SUGGESTION_MARGIN, 0, SkinManager.SUGGESTION_MARGIN, 0); + suggestionViewParams.setMargins(15, 0, 15, 0); suggestionViewParams.gravity = Gravity.CENTER_VERTICAL; } if(suggestionRunnable == null) { - suggestionRunnable = new SuggestionRunnable(skinManager, suggestionsView, suggestionViewParams, (HorizontalScrollView) suggestionsView.getParent()); - } - - if(activityHandler == null) { - Field field; - try { - field = mContext.getClass().getSuperclass().getDeclaredField("mHandler"); - field.setAccessible(true); - activityHandler = (Handler) field.get(mContext); - } - catch (Exception e) {} + suggestionRunnable = new SuggestionRunnable(suggestionsView, suggestionViewParams, (HorizontalScrollView) suggestionsView.getParent()); } if (lastSuggestionThread != null) { lastSuggestionThread.interrupt(); suggestionRunnable.interrupt(); - if(activityHandler != null) { - activityHandler.removeCallbacks(suggestionRunnable); + if(handler != null) { + handler.removeCallbacks(suggestionRunnable); } } @@ -530,14 +556,11 @@ public class UIManager implements OnTouchListener { final Typeface lucidaConsole = Typeface.createFromAsset(context.getAssets(), "lucida_console.ttf"); imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); - skinManager = new SkinManager(); - this.info.skinManager = skinManager; - - if (!skinManager.useSystemWp || !canApplyTheme) { - rootView.setBackgroundColor(skinManager.bgColor); + if (!XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.system_wallpaper) || !canApplyTheme) { + rootView.setBackgroundColor(XMLPrefsManager.getColor(XMLPrefsManager.Theme.bg_color)); } else { - rootView.setBackgroundColor(skinManager.overlayColor); + rootView.setBackgroundColor(XMLPrefsManager.getColor(XMLPrefsManager.Theme.overlay_color)); } // scrolllllll @@ -559,6 +582,11 @@ public class UIManager implements OnTouchListener { topMM = XMLPrefsManager.get(int.class, XMLPrefsManager.Ui.top_margin_mm); bottomMM = XMLPrefsManager.get(int.class, XMLPrefsManager.Ui.bottom_margin_mm); + timeSize = XMLPrefsManager.get(int.class, XMLPrefsManager.Ui.time_size); + ramSize = XMLPrefsManager.get(int.class, XMLPrefsManager.Ui.ram_size); + batterySize = XMLPrefsManager.get(int.class, XMLPrefsManager.Ui.battery_size); + storageSize = XMLPrefsManager.get(int.class, XMLPrefsManager.Ui.storage_size); + DisplayMetrics metrics = mContext.getResources().getDisplayMetrics(); rootView.setPadding(Tuils.mmToPx(metrics, leftMM), Tuils.mmToPx(metrics, topMM), Tuils.mmToPx(metrics, rightMM), Tuils.mmToPx(metrics, bottomMM)); @@ -589,7 +617,7 @@ public class UIManager implements OnTouchListener { final int BATTERY = 4; final int STORAGE = 5; - Typeface t = skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole; + final Typeface t = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.system_font) ? Typeface.DEFAULT : lucidaConsole; AllowEqualsSequence sequence = new AllowEqualsSequence(new int[] {rIndex, dIndex, bIndex, tIndex, sIndex}, new Integer[] {RAM, DEVICE, BATTERY, TIME, STORAGE}); for(int count = 0; count < ts.length; count++) { @@ -619,7 +647,6 @@ public class UIManager implements OnTouchListener { if(count >= sequence.getMinKey() && count <= sequence.getMaxKey() && os.length > 0) { ts[count].setTypeface(t); - ts[count].setTextSize(skinManager.getTextSize()); } else { ts[count].setVisibility(View.GONE); } @@ -642,11 +669,17 @@ public class UIManager implements OnTouchListener { String deviceFormat = XMLPrefsManager.get(String.class, XMLPrefsManager.Behavior.device_format); - deviceFormat = USERNAME.matcher(deviceFormat).replaceAll(Matcher.quoteReplacement(skinManager.username != null ? skinManager.username : "null")); - deviceFormat = DV.matcher(deviceFormat).replaceAll(Matcher.quoteReplacement(skinManager.deviceName != null ? skinManager.deviceName : "null")); + String username = XMLPrefsManager.get(XMLPrefsManager.Ui.username); + String deviceName = XMLPrefsManager.get(XMLPrefsManager.Ui.deviceName); + if (deviceName == null || deviceName.length() == 0) { + deviceName = Build.DEVICE; + } + + deviceFormat = USERNAME.matcher(deviceFormat).replaceAll(Matcher.quoteReplacement(username != null ? username : "null")); + deviceFormat = DV.matcher(deviceFormat).replaceAll(Matcher.quoteReplacement(deviceName)); deviceFormat = NEWLINE.matcher(deviceFormat).replaceAll(Matcher.quoteReplacement(Tuils.NEWLINE)); - deviceText = Tuils.color(deviceFormat, skinManager.deviceColor); + deviceText = Tuils.span(mContext, deviceFormat, XMLPrefsManager.getColor(XMLPrefsManager.Theme.device_color), XMLPrefsManager.get(int.class, XMLPrefsManager.Ui.device_size)); update(this.deviceIndex); } @@ -658,8 +691,6 @@ public class UIManager implements OnTouchListener { mediumPercentage = XMLPrefsManager.get(int.class, XMLPrefsManager.Behavior.battery_medium); lowPercentage = XMLPrefsManager.get(int.class, XMLPrefsManager.Behavior.battery_low); - if(mediumPercentage < lowPercentage) skinManager.manyColorsBattery = false; - Tuils.registerBatteryReceiver(context, batteryUpdate); } else { batteryUpdate = null; @@ -705,7 +736,7 @@ public class UIManager implements OnTouchListener { pasteView = (ImageButton) inputOutputView.findViewById(R.id.paste_view); } - if (skinManager.showSuggestions) { + if (XMLPrefsManager.get(boolean.class, XMLPrefsManager.Suggestions.show_suggestions)) { showSuggestions = true; HorizontalScrollView sv = (HorizontalScrollView) rootView.findViewById(R.id.suggestions_container); @@ -726,6 +757,9 @@ public class UIManager implements OnTouchListener { suggestionsManager = new SuggestionsManager(); this.suggestionViewDecorer = new SuggestionViewDecorer() { + + final int PADDING = 15; + @Override public TextView getSuggestionView(Context context) { TextView textView = new TextView(mContext); @@ -735,14 +769,14 @@ public class UIManager implements OnTouchListener { textView.setLongClickable(false); textView.setClickable(true); - textView.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole); - textView.setTextSize(skinManager.getSuggestionSize()); + textView.setTypeface(t); + textView.setTextSize(XMLPrefsManager.get(int.class, XMLPrefsManager.Suggestions.suggestions_size)); - textView.setPadding(SkinManager.SUGGESTION_PADDING_HORIZONTAL, SkinManager.SUGGESTION_PADDING_VERTICAL, - SkinManager.SUGGESTION_PADDING_HORIZONTAL, SkinManager.SUGGESTION_PADDING_VERTICAL); + textView.setPadding(PADDING, PADDING, PADDING, PADDING); textView.setLines(1); textView.setMaxLines(1); + return textView; } }; @@ -761,7 +795,7 @@ public class UIManager implements OnTouchListener { det = null; } else initDetector(); - mTerminalAdapter = new TerminalManager(terminalView, inputView, prefixView, submitView, backView, nextView, deleteView, pasteView, skinManager, context, mainPack); + mTerminalAdapter = new TerminalManager(terminalView, inputView, prefixView, submitView, backView, nextView, deleteView, pasteView, context, mainPack); mTerminalAdapter.setInputListener(inputListener); if(XMLPrefsManager.get(boolean.class, XMLPrefsManager.Behavior.show_hints)) { diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/main/MainPack.java b/app/src/main/java/ohi/andre/consolelauncher/commands/main/MainPack.java index 6d7f55a..6d32798 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/commands/main/MainPack.java +++ b/app/src/main/java/ohi/andre/consolelauncher/commands/main/MainPack.java @@ -15,7 +15,6 @@ import ohi.andre.consolelauncher.commands.ExecutePack; import ohi.andre.consolelauncher.managers.AliasManager; import ohi.andre.consolelauncher.managers.AppsManager; import ohi.andre.consolelauncher.managers.ContactManager; -import ohi.andre.consolelauncher.managers.SkinManager; import ohi.andre.consolelauncher.managers.XMLPrefsManager; import ohi.andre.consolelauncher.managers.flashlight.TorchManager; import ohi.andre.consolelauncher.managers.music.MusicManager2; @@ -34,8 +33,6 @@ public class MainPack extends ExecutePack { // current directory public File currentDirectory; - public SkinManager skinManager; - // resources references public Resources res; diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/tuixt.java b/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/tuixt.java index 9872dd3..1bf4339 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/tuixt.java +++ b/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/tuixt.java @@ -32,7 +32,6 @@ public class tuixt implements CommandAbstraction { Intent intent = new Intent(info.context, TuixtActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra(TuixtActivity.PATH, file.getAbsolutePath()); - intent.putExtra(TuixtActivity.SKIN, info.skinManager); ((Activity) info.context).startActivityForResult(intent, LauncherActivity.TUIXT_REQUEST); return Tuils.EMPTYSTRING; @@ -82,7 +81,6 @@ public class tuixt implements CommandAbstraction { Intent intent = new Intent(info.context, TuixtActivity.class); intent.putExtra(TuixtActivity.PATH, file.getAbsolutePath()); - intent.putExtra(TuixtActivity.SKIN, info.skinManager); ((Activity) info.context).startActivityForResult(intent, LauncherActivity.TUIXT_REQUEST); return Tuils.EMPTYSTRING; diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/tuixt/TuixtActivity.java b/app/src/main/java/ohi/andre/consolelauncher/commands/tuixt/TuixtActivity.java index cc7bd3d..9aeacbf 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/commands/tuixt/TuixtActivity.java +++ b/app/src/main/java/ohi/andre/consolelauncher/commands/tuixt/TuixtActivity.java @@ -3,7 +3,6 @@ package ohi.andre.consolelauncher.commands.tuixt; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; -import android.content.res.Resources; import android.graphics.Typeface; import android.net.Uri; import android.os.Bundle; @@ -31,7 +30,7 @@ import ohi.andre.consolelauncher.commands.Command; import ohi.andre.consolelauncher.commands.CommandGroup; import ohi.andre.consolelauncher.commands.CommandTuils; import ohi.andre.consolelauncher.managers.FileManager; -import ohi.andre.consolelauncher.managers.SkinManager; +import ohi.andre.consolelauncher.managers.XMLPrefsManager; import ohi.andre.consolelauncher.tuils.Tuils; /** @@ -47,7 +46,6 @@ public class TuixtActivity extends Activity { private long lastEnter; public static String PATH = "path"; - public static String SKIN = "skin"; public static String ERROR_KEY = "error"; @@ -77,23 +75,19 @@ public class TuixtActivity extends Activity { CommandGroup group = new CommandGroup(this, "ohi.andre.consolelauncher.commands.tuixt.raw"); - SkinManager skinManager = intent.getParcelableExtra(SKIN); - if(skinManager == null) { - try { - Resources res = getResources(); - skinManager = new SkinManager(); - } catch (Exception e) { - return; - } + try { + XMLPrefsManager.create(this); + } catch (Exception e) { + finish(); } - if (!skinManager.useSystemWp) { - rootView.setBackgroundColor(skinManager.bgColor); + if (!XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.system_wallpaper)) { + rootView.setBackgroundColor(XMLPrefsManager.getColor(XMLPrefsManager.Theme.bg_color)); } else { setTheme(R.style.Custom_SystemWP); } - final boolean inputBottom = skinManager.inputBottom; + final boolean inputBottom = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.input_bottom); int layoutId = inputBottom ? R.layout.tuixt_view_input_down : R.layout.tuixt_view_input_up; LayoutInflater inflater = getLayoutInflater(); @@ -107,21 +101,26 @@ public class TuixtActivity extends Activity { TextView prefixView = (TextView) inputOutputView.findViewById(R.id.prefix_view); ImageButton submitView = (ImageButton) inputOutputView.findViewById(R.id.submit_tv); - boolean showSubmit = skinManager.showSubmit; + boolean showSubmit = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.show_enter_button); if (!showSubmit) { submitView.setVisibility(View.GONE); submitView = null; } - String prefix = skinManager.prefix; + String prefix = XMLPrefsManager.get(XMLPrefsManager.Ui.input_prefix); + + Typeface t = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.system_font) ? Typeface.DEFAULT : lucidaConsole; + int ioSize = XMLPrefsManager.get(int.class, XMLPrefsManager.Ui.input_output_size); + int outputColor = XMLPrefsManager.getColor(XMLPrefsManager.Theme.output_color); + int inputColor = XMLPrefsManager.getColor(XMLPrefsManager.Theme.input_color); - prefixView.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole); - prefixView.setTextColor(skinManager.inputColor); - prefixView.setTextSize(skinManager.getTextSize()); + prefixView.setTypeface(t); + prefixView.setTextColor(inputColor); + prefixView.setTextSize(ioSize); prefixView.setText(prefix.endsWith(Tuils.SPACE) ? prefix : prefix + Tuils.SPACE); if (submitView != null) { - submitView.setColorFilter(skinManager.inputColor); + submitView.setColorFilter(XMLPrefsManager.getColor(XMLPrefsManager.Theme.enter_color)); submitView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -130,9 +129,9 @@ public class TuixtActivity extends Activity { }); } - fileView.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole); - fileView.setTextSize(skinManager.getTextSize()); - fileView.setTextColor(skinManager.outputColor); + fileView.setTypeface(t); + fileView.setTextSize(ioSize); + fileView.setTextColor(outputColor); fileView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { @@ -145,16 +144,16 @@ public class TuixtActivity extends Activity { } }); - outputView.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole); - outputView.setTextSize(skinManager.getTextSize()); - outputView.setTextColor(skinManager.outputColor); + outputView.setTypeface(t); + outputView.setTextSize(ioSize); + outputView.setTextColor(outputColor); outputView.setMovementMethod(new ScrollingMovementMethod()); outputView.setVisibility(View.GONE); - inputView.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole); - inputView.setTextSize(skinManager.getTextSize()); - inputView.setTextColor(skinManager.inputColor); - inputView.setHint(Tuils.getHint(skinManager, path)); + inputView.setTypeface(t); + inputView.setTextSize(ioSize); + inputView.setTextColor(inputColor); + inputView.setHint(Tuils.getHint(path)); inputView.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); inputView.setOnEditorActionListener(new TextView.OnEditorActionListener() { diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/AppsManager.java b/app/src/main/java/ohi/andre/consolelauncher/managers/AppsManager.java index 177a104..5078618 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/managers/AppsManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/managers/AppsManager.java @@ -754,8 +754,8 @@ public class AppsManager implements XMLPrefsManager.XmlPrefsElement { public static class Group implements MainManager.Group { List<LaunchInfo> apps; - int bgColor = SkinManager.COLOR_NOT_SET; - int foreColor = SkinManager.COLOR_NOT_SET; + int bgColor = Integer.MAX_VALUE; + int foreColor = Integer.MAX_VALUE; String name; @@ -1286,7 +1286,7 @@ public class AppsManager implements XMLPrefsManager.XmlPrefsElement { builder.append("launched_times: ").append(app.launchedTimes).append(Tuils.NEWLINE).append(Tuils.NEWLINE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { - builder.append("Install: ").append(TimeManager.replace("%t0", info.firstInstallTime, SkinManager.COLOR_NOT_SET)).append(Tuils.NEWLINE).append(Tuils.NEWLINE); + builder.append("Install: ").append(TimeManager.replace("%t0", info.firstInstallTime, Integer.MAX_VALUE)).append(Tuils.NEWLINE).append(Tuils.NEWLINE); } ActivityInfo[] a = info.activities; diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/SkinManager.java b/app/src/main/java/ohi/andre/consolelauncher/managers/SkinManager.java deleted file mode 100755 index 4708be1..0000000 --- a/app/src/main/java/ohi/andre/consolelauncher/managers/SkinManager.java +++ /dev/null @@ -1,269 +0,0 @@ -package ohi.andre.consolelauncher.managers; - -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.os.Build; -import android.os.Parcel; -import android.os.Parcelable; - -import ohi.andre.consolelauncher.managers.suggestions.SuggestionsManager; - -public class SkinManager implements Parcelable { - - public static final int SUGGESTION_PADDING_VERTICAL = 15; - public static final int SUGGESTION_PADDING_HORIZONTAL = 15; - public static final int SUGGESTION_MARGIN = 20; - - private static final int suggestionScale = 0; - - private static final int textScale = 3; - - public static final int COLOR_NOT_SET = 16777216; - - public int globalFontSize; - - public String deviceName; - public int deviceColor, inputColor, outputColor, ramColor, bgColor, overlayColor, toolbarColor, toolbarBg, enter_color, time_color, battery_color_high, battery_color_medium, battery_color_low, - storageColor; - - public boolean useSystemWp, showSuggestions, systemFont, inputBottom, showSubmit, manyColorsBattery; - - public String username = null, prefix = null, ssnInfoFormat = null; - - private int suggDefaultText, suggDefaultBg, suggAliasText, suggAliasBg, suggSongText, suggSongBg, suggContactText, suggContactBg, suggAppText, suggAppBg, suggCmdText, suggCmdBg, suggFileText, suggFileBg; - private boolean transparentSuggestions; - - public SkinManager() { - systemFont = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.system_font); - inputBottom = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.input_bottom); - showSubmit = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.show_enter_button); - - manyColorsBattery = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.enable_battery_status); - - globalFontSize = XMLPrefsManager.get(int.class, XMLPrefsManager.Ui.font_size); - - useSystemWp = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.system_wallpaper); - overlayColor = XMLPrefsManager.getColor(XMLPrefsManager.Theme.overlay_color); - bgColor = XMLPrefsManager.getColor(XMLPrefsManager.Theme.bg_color); - - deviceColor = XMLPrefsManager.getColor(XMLPrefsManager.Theme.device_color); - ramColor = XMLPrefsManager.getColor(XMLPrefsManager.Theme.ram_color); - inputColor = XMLPrefsManager.getColor(XMLPrefsManager.Theme.input_color); - outputColor = XMLPrefsManager.getColor(XMLPrefsManager.Theme.output_color); - toolbarColor = XMLPrefsManager.getColor(XMLPrefsManager.Theme.toolbar_color); - toolbarBg = XMLPrefsManager.getColor(XMLPrefsManager.Theme.toolbar_bg); - enter_color = XMLPrefsManager.getColor(XMLPrefsManager.Theme.enter_color); - time_color = XMLPrefsManager.getColor(XMLPrefsManager.Theme.time_color); - storageColor = XMLPrefsManager.getColor(XMLPrefsManager.Theme.storage_color); - battery_color_high = XMLPrefsManager.getColor(XMLPrefsManager.Theme.battery_color_high); - if(manyColorsBattery) { - battery_color_medium = XMLPrefsManager.getColor(XMLPrefsManager.Theme.battery_color_medium); - battery_color_low = XMLPrefsManager.getColor(XMLPrefsManager.Theme.battery_color_low); - } - - prefix = XMLPrefsManager.get(String.class, XMLPrefsManager.Ui.input_prefix); - - deviceName = XMLPrefsManager.get(String.class, XMLPrefsManager.Ui.deviceName); - if (deviceName.length() == 0 || deviceName.equals("null")) { - deviceName = Build.DEVICE; - } - - username = XMLPrefsManager.get(String.class, XMLPrefsManager.Ui.username); - - ssnInfoFormat = XMLPrefsManager.get(String.class, XMLPrefsManager.Behavior.session_info_format); - - showSuggestions = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Suggestions.show_suggestions); - if (showSuggestions) { - - suggDefaultText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.default_text_color); - suggDefaultBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.default_bg_color); - transparentSuggestions = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Suggestions.transparent_suggestions); - - if(transparentSuggestions && suggDefaultText == bgColor) { - suggDefaultText = Color.GREEN; - } else { - suggAppText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.apps_text_color); - suggAppBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.apps_bg_color); - - suggAliasText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.alias_text_color); - suggAliasBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.alias_bg_color); - - suggCmdText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.cmd_text_color); - suggCmdBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.cmd_bg_color); - - suggContactText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.contact_text_color); - suggContactBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.contact_bg_color); - - suggFileText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.file_text_color); - suggFileBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.file_bg_color); - - suggSongText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.song_text_color); - suggSongBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.song_bg_color); - } - } - } - - protected SkinManager(Parcel in) { - globalFontSize = in.readInt(); - deviceName = in.readString(); - deviceColor = in.readInt(); - inputColor = in.readInt(); - outputColor = in.readInt(); - ramColor = in.readInt(); - bgColor = in.readInt(); - overlayColor = in.readInt(); - toolbarColor = in.readInt(); - toolbarBg = in.readInt(); - enter_color = in.readInt(); - time_color = in.readInt(); - battery_color_high = in.readInt(); - battery_color_medium = in.readInt(); - battery_color_low = in.readInt(); - useSystemWp = in.readByte() != 0; - showSuggestions = in.readByte() != 0; - systemFont = in.readByte() != 0; - inputBottom = in.readByte() != 0; - showSubmit = in.readByte() != 0; - manyColorsBattery = in.readByte() != 0; - username = in.readString(); - ssnInfoFormat = in.readString(); - suggDefaultText = in.readInt(); - suggDefaultBg = in.readInt(); - suggAliasText = in.readInt(); - suggAliasBg = in.readInt(); - suggSongText = in.readInt(); - suggSongBg = in.readInt(); - suggContactText = in.readInt(); - suggContactBg = in.readInt(); - suggAppText = in.readInt(); - suggAppBg = in.readInt(); - suggCmdText = in.readInt(); - suggCmdBg = in.readInt(); - suggFileText = in.readInt(); - suggFileBg = in.readInt(); - transparentSuggestions = in.readByte() != 0; - prefix = in.readString(); - } - - public static final Creator<SkinManager> CREATOR = new Creator<SkinManager>() { - @Override - public SkinManager createFromParcel(Parcel in) { - return new SkinManager(in); - } - - @Override - public SkinManager[] newArray(int size) { - return new SkinManager[size]; - } - }; - - public ColorDrawable getSuggestionBg(Integer type) { - if(transparentSuggestions) { - return new ColorDrawable(Color.TRANSPARENT); - } else { - switch (type) { - case SuggestionsManager.Suggestion.TYPE_APP: - return new ColorDrawable(suggAppBg); - case SuggestionsManager.Suggestion.TYPE_ALIAS: - return new ColorDrawable(suggAliasBg); - case SuggestionsManager.Suggestion.TYPE_COMMAND: - return new ColorDrawable(suggCmdBg); - case SuggestionsManager.Suggestion.TYPE_CONTACT: - return new ColorDrawable(suggContactBg); - case SuggestionsManager.Suggestion.TYPE_FILE: - return new ColorDrawable(suggFileBg); - case SuggestionsManager.Suggestion.TYPE_SONG: - return new ColorDrawable(suggSongBg); - default: - return new ColorDrawable(suggDefaultBg); - } - } - } - - public int getSuggestionTextColor(Integer type) { - int chosen; - - switch (type) { - case SuggestionsManager.Suggestion.TYPE_APP: - chosen = suggAppText; - break; - case SuggestionsManager.Suggestion.TYPE_ALIAS: - chosen = suggAliasText; - break; - case SuggestionsManager.Suggestion.TYPE_COMMAND: - chosen = suggCmdText; - break; - case SuggestionsManager.Suggestion.TYPE_CONTACT: - chosen = suggContactText; - break; - case SuggestionsManager.Suggestion.TYPE_FILE: - chosen = suggFileText; - break; - case SuggestionsManager.Suggestion.TYPE_SONG: - chosen = suggSongText; - break; - default: - chosen = suggDefaultText; - break; - } - - if(chosen == COLOR_NOT_SET) chosen = suggDefaultText; - return chosen; - } - - public int getTextSize() { - return globalFontSize - textScale; - } - - public int getSuggestionSize() { - return globalFontSize - suggestionScale; - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeInt(globalFontSize); - dest.writeString(deviceName); - dest.writeInt(deviceColor); - dest.writeInt(inputColor); - dest.writeInt(outputColor); - dest.writeInt(ramColor); - dest.writeInt(bgColor); - dest.writeInt(overlayColor); - dest.writeInt(toolbarColor); - dest.writeInt(toolbarBg); - dest.writeInt(enter_color); - dest.writeInt(time_color); - dest.writeInt(battery_color_high); - dest.writeInt(battery_color_medium); - dest.writeInt(battery_color_low); - dest.writeByte((byte) (useSystemWp ? 1 : 0)); - dest.writeByte((byte) (showSuggestions ? 1 : 0)); - dest.writeByte((byte) (systemFont ? 1 : 0)); - dest.writeByte((byte) (inputBottom ? 1 : 0)); - dest.writeByte((byte) (showSubmit ? 1 : 0)); - dest.writeByte((byte) (manyColorsBattery ? 1 : 0)); - dest.writeString(username); - dest.writeString(ssnInfoFormat); - dest.writeInt(suggDefaultText); - dest.writeInt(suggDefaultBg); - dest.writeInt(suggAliasText); - dest.writeInt(suggAliasBg); - dest.writeInt(suggSongText); - dest.writeInt(suggSongBg); - dest.writeInt(suggContactText); - dest.writeInt(suggContactBg); - dest.writeInt(suggAppText); - dest.writeInt(suggAppBg); - dest.writeInt(suggCmdText); - dest.writeInt(suggCmdBg); - dest.writeInt(suggFileText); - dest.writeInt(suggFileBg); - dest.writeByte((byte) (transparentSuggestions ? 1 : 0)); - dest.writeString(prefix); - } -} 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 09d2a94..04e876c 100644 --- a/app/src/main/java/ohi/andre/consolelauncher/managers/TerminalManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/managers/TerminalManager.java @@ -79,8 +79,6 @@ public class TerminalManager { } }; - private SkinManager mSkinManager; - private UIManager.OnNewInputListener mInputListener; // private UIManager.SuggestionNavigator mSuggestionNavigator; @@ -106,15 +104,14 @@ public class TerminalManager { private Context mContext; public TerminalManager(final TextView terminalView, EditText inputView, TextView prefixView, ImageButton submitView, final ImageButton backView, ImageButton nextView, ImageButton deleteView, - ImageButton pasteView, SkinManager skinManager, final Context context, MainPack mainPack) { - if (terminalView == null || inputView == null || prefixView == null || skinManager == null) + ImageButton pasteView, final Context context, MainPack mainPack) { + if (terminalView == null || inputView == null || prefixView == null) throw new UnsupportedOperationException(); this.mContext = context; final Typeface lucidaConsole = Typeface.createFromAsset(context.getAssets(), "lucida_console.ttf"); - this.mSkinManager = skinManager; this.mainPack = mainPack; this.clearAfterMs = XMLPrefsManager.get(int.class, XMLPrefsManager.Behavior.clear_after_seconds) * 1000; @@ -124,17 +121,20 @@ public class TerminalManager { inputFormat = XMLPrefsManager.get(String.class, XMLPrefsManager.Behavior.input_format); outputFormat = XMLPrefsManager.get(String.class, XMLPrefsManager.Behavior.output_format); - prefix = skinManager.prefix; + prefix = XMLPrefsManager.get(XMLPrefsManager.Ui.input_prefix); suPrefix = XMLPrefsManager.get(String.class, XMLPrefsManager.Ui.input_root_prefix); - prefixView.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole); - prefixView.setTextColor(this.mSkinManager.inputColor); - prefixView.setTextSize(this.mSkinManager.getTextSize()); + int ioSize = XMLPrefsManager.get(int.class, XMLPrefsManager.Ui.input_output_size); + + Typeface t = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.system_font) ? Typeface.DEFAULT : lucidaConsole; + prefixView.setTypeface(t); + prefixView.setTextColor(XMLPrefsManager.getColor(XMLPrefsManager.Theme.input_color)); + prefixView.setTextSize(ioSize); prefixView.setText(prefix.endsWith(Tuils.SPACE) ? prefix : prefix + Tuils.SPACE); this.mPrefix = prefixView; if (submitView != null) { - submitView.setColorFilter(mSkinManager.enter_color); + submitView.setColorFilter(XMLPrefsManager.getColor(XMLPrefsManager.Theme.enter_color)); submitView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -144,8 +144,8 @@ public class TerminalManager { } if (backView != null) { - ((View) backView.getParent()).setBackgroundColor(mSkinManager.toolbarBg); - backView.setColorFilter(this.mSkinManager.toolbarColor); + ((View) backView.getParent()).setBackgroundColor(XMLPrefsManager.getColor(XMLPrefsManager.Theme.toolbar_bg)); + backView.setColorFilter(XMLPrefsManager.getColor(XMLPrefsManager.Theme.toolbar_color)); backView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -155,7 +155,7 @@ public class TerminalManager { } if (nextView != null) { - nextView.setColorFilter(this.mSkinManager.toolbarColor); + nextView.setColorFilter(XMLPrefsManager.getColor(XMLPrefsManager.Theme.toolbar_color)); nextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -165,7 +165,7 @@ public class TerminalManager { } if (pasteView != null) { - pasteView.setColorFilter(this.mSkinManager.toolbarColor); + pasteView.setColorFilter(XMLPrefsManager.getColor(XMLPrefsManager.Theme.toolbar_color)); pasteView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -178,7 +178,7 @@ public class TerminalManager { } if (deleteView != null) { - deleteView.setColorFilter(this.mSkinManager.toolbarColor); + deleteView.setColorFilter(XMLPrefsManager.getColor(XMLPrefsManager.Theme.toolbar_color)); deleteView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -188,8 +188,8 @@ public class TerminalManager { } this.mTerminalView = terminalView; - this.mTerminalView.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole); - this.mTerminalView.setTextSize(mSkinManager.getTextSize()); + this.mTerminalView.setTypeface(t); + this.mTerminalView.setTextSize(ioSize); this.mTerminalView.setFocusable(false); setupScroller(); @@ -231,10 +231,10 @@ public class TerminalManager { this.mScrollView = (ScrollView) v; this.mInputView = inputView; - this.mInputView.setTextSize(mSkinManager.getTextSize()); - this.mInputView.setTextColor(mSkinManager.inputColor); - this.mInputView.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole); - this.mInputView.setHint(Tuils.getHint(skinManager, mainPack.currentDirectory.getAbsolutePath())); + this.mInputView.setTextSize(ioSize); + this.mInputView.setTextColor(XMLPrefsManager.getColor(XMLPrefsManager.Theme.input_color)); + this.mInputView.setTypeface(t); + this.mInputView.setHint(Tuils.getHint(mainPack.currentDirectory.getAbsolutePath())); this.mInputView.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); this.mInputView.setOnEditorActionListener(new TextView.OnEditorActionListener() { @@ -271,7 +271,7 @@ public class TerminalManager { mInputView.setText(Tuils.EMPTYSTRING); if(defaultHint) { - mInputView.setHint(Tuils.getHint(mSkinManager, mainPack.currentDirectory.getAbsolutePath())); + mInputView.setHint(Tuils.getHint(mainPack.currentDirectory.getAbsolutePath())); } requestInputFocus(); @@ -329,8 +329,8 @@ public class TerminalManager { return; } - if(color == SkinManager.COLOR_NOT_SET) { - color = mSkinManager.outputColor; + if(color == Integer.MAX_VALUE) { + color = XMLPrefsManager.getColor(XMLPrefsManager.Theme.output_color); } SpannableString si = new SpannableString(output); @@ -398,9 +398,9 @@ public class TerminalManager { boolean su = t.toString().startsWith("su ") || suMode; - SpannableString si = Tuils.color(inputFormat, mSkinManager.inputColor); + SpannableString si = Tuils.span(inputFormat, XMLPrefsManager.getColor(XMLPrefsManager.Theme.input_color)); - s = TimeManager.replace(si, mSkinManager.time_color); + s = TimeManager.replace(si,XMLPrefsManager.getColor(XMLPrefsManager.Theme.time_color)); s = TextUtils.replace(s, new String[] {FORMAT_INPUT, FORMAT_PREFIX, FORMAT_NEWLINE, FORMAT_INPUT.toUpperCase(), FORMAT_PREFIX.toUpperCase(), FORMAT_NEWLINE.toUpperCase()}, @@ -410,7 +410,7 @@ public class TerminalManager { case CATEGORY_OUTPUT: t = t.toString().trim(); - SpannableString so = Tuils.color(outputFormat, mSkinManager.outputColor); + SpannableString so = Tuils.span(outputFormat, XMLPrefsManager.getColor(XMLPrefsManager.Theme.output_color)); s = TextUtils.replace(so, new String[] {FORMAT_OUTPUT, FORMAT_NEWLINE, FORMAT_OUTPUT.toUpperCase(), FORMAT_NEWLINE.toUpperCase()}, @@ -456,7 +456,7 @@ public class TerminalManager { defaultHint = true; if(mInputView != null) { - mInputView.setHint(Tuils.getHint(mSkinManager, mainPack.currentDirectory.getAbsolutePath())); + mInputView.setHint(Tuils.getHint(mainPack.currentDirectory.getAbsolutePath())); } } diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/ThemesManager.java b/app/src/main/java/ohi/andre/consolelauncher/managers/ThemesManager.java index 46509c6..409b59d 100644 --- a/app/src/main/java/ohi/andre/consolelauncher/managers/ThemesManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/managers/ThemesManager.java @@ -117,8 +117,6 @@ public class ThemesManager { Tuils.addPrefix(strings, Tuils.DOUBLE_SPACE); Tuils.insertHeaders(strings, false); - Tuils.log(strings.toString()); - Tuils.sendOutput(context, Tuils.toPlanString(strings, Tuils.NEWLINE)); } diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/XMLPrefsManager.java b/app/src/main/java/ohi/andre/consolelauncher/managers/XMLPrefsManager.java index d68c60f..2eecd7c 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/managers/XMLPrefsManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/managers/XMLPrefsManager.java @@ -2,6 +2,7 @@ package ohi.andre.consolelauncher.managers; import android.content.Context; import android.graphics.Color; +import android.os.Build; import android.os.Environment; import org.w3c.dom.Document; @@ -203,10 +204,40 @@ public class XMLPrefsManager { return "false"; } }, - font_size { + ram_size { @Override public String defaultValue() { - return "15"; + return "13"; + } + }, + battery_size { + @Override + public String defaultValue() { + return "13"; + } + }, + device_size { + @Override + public String defaultValue() { + return "13"; + } + }, + time_size { + @Override + public String defaultValue() { + return "13"; + } + }, + storage_size { + @Override + public String defaultValue() { + return "13"; + } + }, + input_output_size { + @Override + public String defaultValue() { + return "13"; } }, input_bottom { @@ -260,7 +291,7 @@ public class XMLPrefsManager { deviceName { @Override public String defaultValue() { - return ""; + return Build.DEVICE; } }, system_wallpaper { @@ -358,6 +389,12 @@ public class XMLPrefsManager { public String defaultValue() { return "true"; } + }, + show_session_info { + @Override + public String defaultValue() { + return "true"; + } }; @Override @@ -516,6 +553,12 @@ public class XMLPrefsManager { public String defaultValue() { return "true"; } + }, + suggestions_size { + @Override + public String defaultValue() { + return "12"; + } }; @Override @@ -931,7 +974,11 @@ public class XMLPrefsManager { private XMLPrefsManager() {} + static boolean called = false; public static void create(Context context) throws Exception { + if(called) return; + called = true; + File folder = Tuils.getFolder(); for(XMLPrefsRoot element : XMLPrefsRoot.values()) { @@ -1267,13 +1314,13 @@ public class XMLPrefsManager { } catch (Exception e) { String def = prefsSave.defaultValue(); if(def == null || def.length() == 0) { - return SkinManager.COLOR_NOT_SET; + return Integer.MAX_VALUE; } try { return (int) transform(def, Color.class); } catch (Exception e1) { - return SkinManager.COLOR_NOT_SET; + return Integer.MAX_VALUE; } } } diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/suggestions/SuggestionRunnable.java b/app/src/main/java/ohi/andre/consolelauncher/managers/suggestions/SuggestionRunnable.java index b8c3180..3efc0a5 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/managers/suggestions/SuggestionRunnable.java +++ b/app/src/main/java/ohi/andre/consolelauncher/managers/suggestions/SuggestionRunnable.java @@ -15,6 +15,9 @@ See the License for the specific language governing permissions and limitations under the License.*/ import android.app.Activity; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; import android.view.View; import android.view.ViewGroup; import android.widget.HorizontalScrollView; @@ -23,7 +26,7 @@ import android.widget.TextView; import ohi.andre.consolelauncher.R; import ohi.andre.consolelauncher.managers.AppsManager; -import ohi.andre.consolelauncher.managers.SkinManager; +import ohi.andre.consolelauncher.managers.XMLPrefsManager; public class SuggestionRunnable implements Runnable { @@ -44,12 +47,9 @@ public class SuggestionRunnable implements Runnable { private SuggestionsManager.Suggestion[] suggestions; - private SkinManager skinManager; - private boolean interrupted; - public SuggestionRunnable(SkinManager skinManager, ViewGroup suggestionsView, LinearLayout.LayoutParams suggestionViewParams, HorizontalScrollView parent) { - this.skinManager = skinManager; + public SuggestionRunnable(ViewGroup suggestionsView, LinearLayout.LayoutParams suggestionViewParams, HorizontalScrollView parent) { this.suggestionsView = suggestionsView; this.suggestionViewParams = suggestionViewParams; this.scrollView = parent; @@ -97,8 +97,8 @@ public class SuggestionRunnable implements Runnable { toRecycle[count].setText(s); // bg and fore - int bgColor = SkinManager.COLOR_NOT_SET; - int foreColor = SkinManager.COLOR_NOT_SET; + int bgColor = Integer.MAX_VALUE; + int foreColor = Integer.MAX_VALUE; if(suggestions[count].type == SuggestionsManager.Suggestion.TYPE_APP) { Object o = suggestions[count].object; @@ -119,10 +119,10 @@ public class SuggestionRunnable implements Runnable { } } - if(bgColor != SkinManager.COLOR_NOT_SET) toRecycle[count].setBackgroundColor(bgColor); - else toRecycle[count].setBackgroundDrawable(skinManager.getSuggestionBg(suggestions[count].type)); - if(foreColor != SkinManager.COLOR_NOT_SET) toRecycle[count].setTextColor(foreColor); - else toRecycle[count].setTextColor(skinManager.getSuggestionTextColor(suggestions[count].type)); + if(bgColor != Integer.MAX_VALUE) toRecycle[count].setBackgroundColor(bgColor); + else toRecycle[count].setBackgroundDrawable(getSuggestionBg(suggestions[count].type)); + if(foreColor != Integer.MAX_VALUE) toRecycle[count].setTextColor(foreColor); + else toRecycle[count].setTextColor(getSuggestionTextColor(suggestions[count].type)); // end bg and fore if(suggestions[count].type == SuggestionsManager.Suggestion.TYPE_CONTACT) { @@ -140,8 +140,8 @@ public class SuggestionRunnable implements Runnable { toAdd[space].setText(s); // bg and fore - int bgColor = SkinManager.COLOR_NOT_SET; - int foreColor = SkinManager.COLOR_NOT_SET; + int bgColor = Integer.MAX_VALUE; + int foreColor = Integer.MAX_VALUE; if(suggestions[count].type == SuggestionsManager.Suggestion.TYPE_APP) { Object o = suggestions[count].object; @@ -162,10 +162,12 @@ public class SuggestionRunnable implements Runnable { } } - if(bgColor != SkinManager.COLOR_NOT_SET) toAdd[space].setBackgroundColor(bgColor); - else toAdd[space].setBackgroundDrawable(skinManager.getSuggestionBg(suggestions[count].type)); - if(foreColor != SkinManager.COLOR_NOT_SET) toAdd[space].setTextColor(foreColor); - else toAdd[space].setTextColor(skinManager.getSuggestionTextColor(suggestions[count].type)); + if(bgColor != Integer.MAX_VALUE) toAdd[space].setBackgroundColor(bgColor); + else toAdd[space].setBackgroundDrawable(getSuggestionBg(suggestions[count].type)); + if(foreColor != Integer.MAX_VALUE) toAdd[space].setTextColor(foreColor); + else { + toAdd[space].setTextColor(getSuggestionTextColor(suggestions[count].type)); + } // end bg and fore if(toAdd[space].getParent() == null) { @@ -195,4 +197,89 @@ public class SuggestionRunnable implements Runnable { public void reset() { interrupted = false; } + + static boolean transparentSuggestions, bgLoad = false, textLoad = false; + static int suggAppBg, suggAliasBg, suggCmdBg, suggContactBg, suggFileBg, suggSongBg, suggDefaultBg; + static int suggAppText, suggAliasText, suggCmdText, suggContactText, suggFileText, suggSongText, suggDefaultText; + + public static Drawable getSuggestionBg(int type) { + if(!bgLoad) { + bgLoad = true; + + transparentSuggestions = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Suggestions.transparent_suggestions); + if(!transparentSuggestions) { + suggAppBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.apps_bg_color); + suggAliasBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.alias_bg_color); + suggCmdBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.cmd_bg_color); + suggContactBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.contact_bg_color); + suggFileBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.file_bg_color); + suggSongBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.song_bg_color); + suggDefaultBg = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.default_bg_color); + } + } + + if(transparentSuggestions) { + return new ColorDrawable(Color.TRANSPARENT); + } else { + switch (type) { + case SuggestionsManager.Suggestion.TYPE_APP: + return new ColorDrawable(suggAppBg); + case SuggestionsManager.Suggestion.TYPE_ALIAS: + return new ColorDrawable(suggAliasBg); + case SuggestionsManager.Suggestion.TYPE_COMMAND: + return new ColorDrawable(suggCmdBg); + case SuggestionsManager.Suggestion.TYPE_CONTACT: + return new ColorDrawable(suggContactBg); + case SuggestionsManager.Suggestion.TYPE_FILE: + return new ColorDrawable(suggFileBg); + case SuggestionsManager.Suggestion.TYPE_SONG: + return new ColorDrawable(suggSongBg); + default: + return new ColorDrawable(suggDefaultBg); + } + } + } + + public static int getSuggestionTextColor(int type) { + if(!textLoad) { + textLoad = true; + + suggAppText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.apps_text_color); + suggAliasText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.alias_text_color); + suggCmdText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.cmd_text_color); + suggContactText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.contact_text_color); + suggDefaultText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.default_text_color); + suggFileText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.file_text_color); + suggSongText = XMLPrefsManager.getColor(XMLPrefsManager.Suggestions.song_text_color); + } + + int chosen; + + switch (type) { + case SuggestionsManager.Suggestion.TYPE_APP: + chosen = suggAppText; + break; + case SuggestionsManager.Suggestion.TYPE_ALIAS: + chosen = suggAliasText; + break; + case SuggestionsManager.Suggestion.TYPE_COMMAND: + chosen = suggCmdText; + break; + case SuggestionsManager.Suggestion.TYPE_CONTACT: + chosen = suggContactText; + break; + case SuggestionsManager.Suggestion.TYPE_FILE: + chosen = suggFileText; + break; + case SuggestionsManager.Suggestion.TYPE_SONG: + chosen = suggSongText; + break; + default: + chosen = suggDefaultText; + break; + } + + if(chosen == Integer.MAX_VALUE) chosen = suggDefaultText; + return chosen; + } } diff --git a/app/src/main/java/ohi/andre/consolelauncher/tuils/InputOutputReceiver.java b/app/src/main/java/ohi/andre/consolelauncher/tuils/InputOutputReceiver.java index 4d6cd7a..4f21af2 100644 --- a/app/src/main/java/ohi/andre/consolelauncher/tuils/InputOutputReceiver.java +++ b/app/src/main/java/ohi/andre/consolelauncher/tuils/InputOutputReceiver.java @@ -7,7 +7,6 @@ import android.os.Bundle; import android.support.v4.app.NotificationManagerCompat; import android.support.v4.app.RemoteInput; -import ohi.andre.consolelauncher.managers.SkinManager; import ohi.andre.consolelauncher.managers.TerminalManager; import ohi.andre.consolelauncher.tuils.interfaces.CommandExecuter; import ohi.andre.consolelauncher.tuils.interfaces.Outputable; @@ -48,9 +47,9 @@ public class InputOutputReceiver extends BroadcastReceiver { if(intent.getAction().equals(ACTION_CMD)) { executer.exec(text.toString()); } else { - int color = intent.getIntExtra(COLOR, SkinManager.COLOR_NOT_SET); + int color = intent.getIntExtra(COLOR, Integer.MAX_VALUE); - if(color != SkinManager.COLOR_NOT_SET) { + if(color != Integer.MAX_VALUE) { outputable.onOutput(color, text); } else { diff --git a/app/src/main/java/ohi/andre/consolelauncher/tuils/TimeManager.java b/app/src/main/java/ohi/andre/consolelauncher/tuils/TimeManager.java index 32fe762..8aec731 100644 --- a/app/src/main/java/ohi/andre/consolelauncher/tuils/TimeManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/tuils/TimeManager.java @@ -1,16 +1,17 @@ package ohi.andre.consolelauncher.tuils; +import android.content.Context; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; import android.text.format.Time; +import android.text.style.AbsoluteSizeSpan; import android.text.style.ForegroundColorSpan; import java.util.Arrays; import java.util.regex.Matcher; import java.util.regex.Pattern; -import ohi.andre.consolelauncher.managers.SkinManager; import ohi.andre.consolelauncher.managers.XMLPrefsManager; /** @@ -44,7 +45,7 @@ public class TimeManager { } public static CharSequence replace(CharSequence cs) { - return replace(cs, -1, SkinManager.COLOR_NOT_SET); + return replace(cs, -1, Integer.MAX_VALUE); } public static CharSequence replace(CharSequence cs, int color) { @@ -52,6 +53,14 @@ public class TimeManager { } public static CharSequence replace(CharSequence cs, long tm, int color) { + return replace(null, Integer.MAX_VALUE, cs, tm, color); + } + + public static CharSequence replace(Context context, int size, CharSequence cs, int color) { + return replace(context, size, cs, -1, color); + } + + public static CharSequence replace(Context context, int size, CharSequence cs, long tm, int color) { if(tm == -1) { time.setToNow(); } else { @@ -66,13 +75,16 @@ public class TimeManager { String tf = time.format(t); - SpannableString spannableString = null; - if(color != SkinManager.COLOR_NOT_SET) { - spannableString = new SpannableString(tf); - spannableString.setSpan(new ForegroundColorSpan(color), 0, tf.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); + SpannableString spannableString = new SpannableString(tf); + if(color != Integer.MAX_VALUE) { + spannableString.setSpan(new ForegroundColorSpan(color), 0, tf.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + + if(size != Integer.MAX_VALUE && context != null) { + spannableString.setSpan(new AbsoluteSizeSpan(Tuils.convertSpToPixels(size, context)), 0, tf.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } - cs = TextUtils.replace(cs, new String[] {"%t" + matcher.group(count)}, new CharSequence[] {spannableString != null ? spannableString : tf}); + cs = TextUtils.replace(cs, new String[] {"%t" + matcher.group(count)}, new CharSequence[] {spannableString}); } } @@ -82,7 +94,7 @@ public class TimeManager { String tf = time.format(t); SpannableString spannableString = null; - if(color != SkinManager.COLOR_NOT_SET) { + if(color != Integer.MAX_VALUE) { spannableString = new SpannableString(tf); spannableString.setSpan(new ForegroundColorSpan(color), 0, tf.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); } 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 8a9f63f..0d13ed7 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/tuils/Tuils.java +++ b/app/src/main/java/ohi/andre/consolelauncher/tuils/Tuils.java @@ -23,6 +23,7 @@ import android.provider.Settings; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; +import android.text.style.AbsoluteSizeSpan; import android.text.style.ForegroundColorSpan; import android.util.DisplayMetrics; import android.util.Log; @@ -53,7 +54,6 @@ import java.util.regex.Pattern; import dalvik.system.DexFile; import ohi.andre.consolelauncher.BuildConfig; -import ohi.andre.consolelauncher.managers.SkinManager; import ohi.andre.consolelauncher.managers.XMLPrefsManager; import ohi.andre.consolelauncher.managers.music.MusicManager2; import ohi.andre.consolelauncher.managers.music.Song; @@ -287,12 +287,25 @@ public class Tuils { return round(result, 2); } - public static SpannableString color(String text, int color) { + public static SpannableString span(String text, int color) { + return span(null, text, color, Integer.MAX_VALUE); + } + + public static SpannableString span(Context context, int size, String text) { + return span(context, text, Integer.MAX_VALUE, size); + } + + public static SpannableString span(Context context, String text, int color, int size) { SpannableString spannableString = new SpannableString(text); - spannableString.setSpan(new ForegroundColorSpan(color), 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + if(size != Integer.MAX_VALUE && context != null) spannableString.setSpan(new AbsoluteSizeSpan(convertSpToPixels(size, context)), 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + if(color != Integer.MAX_VALUE) spannableString.setSpan(new ForegroundColorSpan(color), 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return spannableString; } + public static int convertSpToPixels(float sp, Context context) { + return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, context.getResources().getDisplayMetrics()); + } + public static void delete(File dir) { for(File f : dir.listFiles()) { if(f.isDirectory()) delete(f); @@ -336,7 +349,7 @@ public class Tuils { } public static void sendOutput(Context context, int res) { - sendOutput(SkinManager.COLOR_NOT_SET, context, res); + sendOutput(Integer.MAX_VALUE, context, res); } public static void sendOutput(int color, Context context, int res) { @@ -344,7 +357,7 @@ public class Tuils { } public static void sendOutput(Context context, int res, int type) { - sendOutput(SkinManager.COLOR_NOT_SET, context, res, type); + sendOutput(Integer.MAX_VALUE, context, res, type); } public static void sendOutput(int color, Context context, int res, int type) { @@ -352,7 +365,7 @@ public class Tuils { } public static void sendOutput(Context context, CharSequence s) { - sendOutput(SkinManager.COLOR_NOT_SET, context, s); + sendOutput(Integer.MAX_VALUE, context, s); } public static void sendOutput(int color, Context context, CharSequence s) { @@ -360,7 +373,7 @@ public class Tuils { } public static void sendOutput(Context context, CharSequence s, int type) { - sendOutput(SkinManager.COLOR_NOT_SET, context, s, type); + sendOutput(Integer.MAX_VALUE, context, s, type); } public static void sendOutput(int color, Context context, CharSequence s, int type) { @@ -481,12 +494,22 @@ public class Tuils { static Pattern pd = Pattern.compile("%d", Pattern.CASE_INSENSITIVE | Pattern.LITERAL); static Pattern pu = Pattern.compile("%u", Pattern.CASE_INSENSITIVE | Pattern.LITERAL); static Pattern pp = Pattern.compile("%p", Pattern.CASE_INSENSITIVE | Pattern.LITERAL); - public static String getHint(SkinManager skinManager, String currentPath) { - String format = skinManager.ssnInfoFormat; + public static String getHint(String currentPath) { + if(!XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.show_session_info)) return null; + + String format = XMLPrefsManager.get(XMLPrefsManager.Behavior.session_info_format); if(format.length() == 0) return null; - format = pd.matcher(format).replaceAll(Matcher.quoteReplacement(skinManager.deviceName)); - format = pu.matcher(format).replaceAll(Matcher.quoteReplacement(skinManager.username)); + String deviceName = XMLPrefsManager.get(XMLPrefsManager.Ui.deviceName); + if(deviceName == null || deviceName.length() == 0) { + deviceName = Build.DEVICE; + } + + String username = XMLPrefsManager.get(XMLPrefsManager.Ui.username); + if(username == null) username = Tuils.EMPTYSTRING; + + format = pd.matcher(format).replaceAll(Matcher.quoteReplacement(deviceName)); + format = pu.matcher(format).replaceAll(Matcher.quoteReplacement(username)); format = pp.matcher(format).replaceAll(Matcher.quoteReplacement(Tuils.getNicePath(currentPath))); return format; @@ -562,6 +585,8 @@ public class Tuils { } public static void log(Object o) { +// Log.e("andre", Arrays.toString(Thread.currentThread().getStackTrace())); + if(o instanceof Throwable) { Log.e("andre", "", (Throwable) o); } else { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 14be3fc..67ee18d 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -42,7 +42,7 @@ <string name="hint_googlep">Did you know? Our official Google+ community is full of tips, experimental apks and discussions.\nYou can have a look with the cmd \"$ tui -googlep\"</string> <string name="hint_tutorial">Did you read the tutorial? If you don\'t remember how to view it, the cmd is \"$ tutorial\"</string> <string name="hint_theme">Did you know that you can easily switch your theme? Have a look at the cmd \"$ theme\"</string> - <string name="hint_theme2">Did you know? You can create your custom theme and share it to other users. Have a look at the cmd \"$ theme -new\"</string> + <string name="hint_theme2">Did you know? You can create your custom theme and share it to other users. Have a look at the cmd \"$ theme -create\"</string> <string name="hint_help">Are you having any doubts about a command? Just use the cmd \"$ help cmdName\"</string> <string name="hint_music">Did you know? You can listen your music without launching other apps but t-ui. Have a look at the cmd \"$ music\"</string> <string name="hint_appgroups">Did you know? t-ui 6.4 introduced App Groups, a feature that let\'s you customize your app suggestions, creating different categories.\nYou can get more details with the cmd -- GitLab