From 1973f71316055692da2ec91392b1fef925b5781a Mon Sep 17 00:00:00 2001
From: Francesco Andreuzzi <andreuzzi.francesco@gmail.com>
Date: Sat, 8 Jul 2017 09:20:53 +0200
Subject: [PATCH] 5.3i

---
 app/build.gradle                              |  12 +-
 app/src/main/AndroidManifest.xml              |  11 -
 .../consolelauncher/LauncherActivity.java     |  26 +-
 .../ohi/andre/consolelauncher/UIManager.java  | 105 +++++--
 .../commands/main/raw/apps.java               |  24 +-
 .../commands/main/raw/cntcts.java             |   3 +-
 .../commands/main/raw/time.java               |  14 +-
 .../commands/main/raw/tui.java                |  10 +-
 .../commands/main/raw/tutorial.java           |  55 ----
 .../consolelauncher/managers/AppsManager.java | 110 +++++++-
 .../consolelauncher/managers/FileManager.java |  20 +-
 .../consolelauncher/managers/SkinManager.java | 229 +++++++++-------
 .../managers/TerminalMAnager.java             |  77 ++++--
 .../managers/XMLPrefsManager.java             |  80 +++++-
 .../notifications/NotificationService.java    |  10 +-
 .../suggestions/SuggestionsManager.java       |   2 +-
 .../andre/consolelauncher/tuils/Tuils.java    |  31 ++-
 .../tuils/tutorial/TutorialActivity.java      | 259 ------------------
 app/src/main/res/drawable/big_icon.png        | Bin 33045 -> 0 bytes
 app/src/main/res/drawable/ic_email.png        | Bin 1964 -> 0 bytes
 app/src/main/res/drawable/ic_git.png          | Bin 2781 -> 0 bytes
 app/src/main/res/drawable/ic_googlep.png      | Bin 2461 -> 0 bytes
 .../res/drawable/tutorial_end_icon_bg.xml     |   7 -
 app/src/main/res/layout/about_device_view.xml |   8 +
 .../main/res/layout/tutorial_base_layout.xml  |  26 --
 .../main/res/layout/tutorial_end_layout.xml   |  76 -----
 .../main/res/layout/tutorial_first_layout.xml |  40 ---
 app/src/main/res/values-h1024dp/dimension.xml |   4 -
 app/src/main/res/values-h320dp/dimension.xml  |   2 -
 app/src/main/res/values-h720dp/dimension.xml  |   4 -
 app/src/main/res/values/dimension.xml         |   4 -
 app/src/main/res/values/ids.xml               |  11 -
 app/src/main/res/values/integers.xml          |   9 -
 app/src/main/res/values/strings.xml           | 106 +------
 app/src/main/res/values/styles.xml            |  53 ----
 35 files changed, 549 insertions(+), 879 deletions(-)
 delete mode 100755 app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/tutorial.java
 delete mode 100755 app/src/main/java/ohi/andre/consolelauncher/tuils/tutorial/TutorialActivity.java
 delete mode 100755 app/src/main/res/drawable/big_icon.png
 delete mode 100755 app/src/main/res/drawable/ic_email.png
 delete mode 100755 app/src/main/res/drawable/ic_git.png
 delete mode 100755 app/src/main/res/drawable/ic_googlep.png
 delete mode 100755 app/src/main/res/drawable/tutorial_end_icon_bg.xml
 delete mode 100755 app/src/main/res/layout/tutorial_base_layout.xml
 delete mode 100755 app/src/main/res/layout/tutorial_end_layout.xml
 delete mode 100755 app/src/main/res/layout/tutorial_first_layout.xml
 delete mode 100755 app/src/main/res/values/ids.xml

diff --git a/app/build.gradle b/app/build.gradle
index 45809d5..457f2bc 100755
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,8 +10,8 @@ android {
         minSdkVersion 8
         targetSdkVersion 23
 
-        versionCode 92
-        versionName "5.3f"
+        versionCode 95
+        versionName "5.3i"
     }
 
     buildTypes {
@@ -32,4 +32,12 @@ android {
         compile 'com.android.support:appcompat-v7:23.4.0'
         compile 'com.github.Andre1299:CompareString:1.4.2'
     }
+
+    applicationVariants.all { variant ->
+        variant.outputs.each { output ->
+            output.outputFile = new File(
+                    output.outputFile.parent,
+                    output.outputFile.name.replace("app-release.apk", "${variant.applicationId}_${variant.versionName}.apk"))
+        }
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0e3dc44..0972875 100755
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -60,7 +60,6 @@
     <uses-feature android:name="android.hardware.location.gps"
         android:required="false"/>
 
-    <!-- t-ui -->
     <application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
@@ -178,16 +177,6 @@
 
         </activity>
 
-        <activity android:name=".tuils.tutorial.TutorialActivity"
-            android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
-            android:windowSoftInputMode="stateAlwaysHidden"
-
-            android:excludeFromRecents="true">
-            <meta-data
-                android:name="android.support.PARENT_ACTIVITY"
-                android:value=".LauncherActivity" />
-        </activity>
-
         <service android:name=".managers.notifications.NotificationService"
             android:label="@string/notification_reader"
             android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"
diff --git a/app/src/main/java/ohi/andre/consolelauncher/LauncherActivity.java b/app/src/main/java/ohi/andre/consolelauncher/LauncherActivity.java
index 64b8276..a0531e7 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/LauncherActivity.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/LauncherActivity.java
@@ -12,7 +12,6 @@ import android.content.IntentFilter;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.content.res.Configuration;
-import android.graphics.Color;
 import android.os.Build;
 import android.os.Bundle;
 import android.provider.Settings;
@@ -43,7 +42,6 @@ import ohi.andre.consolelauncher.tuils.interfaces.Inputable;
 import ohi.andre.consolelauncher.tuils.interfaces.Outputable;
 import ohi.andre.consolelauncher.tuils.interfaces.Reloadable;
 import ohi.andre.consolelauncher.tuils.stuff.PolicyReceiver;
-import ohi.andre.consolelauncher.tuils.tutorial.TutorialActivity;
 
 public class LauncherActivity extends AppCompatActivity implements Reloadable {
 
@@ -110,7 +108,7 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
         @Override
         public void onOutput(String output) {
             try {
-                ui.setOutput(output, true);
+                ui.setOutput(output);
             } catch (NullPointerException e) {
                 e.printStackTrace();
             }
@@ -146,9 +144,6 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
             SharedPreferences.Editor editor = preferences.edit();
             editor.putBoolean(FIRSTACCESS_KEY, false);
             editor.commit();
-
-            Intent intent = new Intent(this, TutorialActivity.class);
-            startActivity(intent);
         }
 
         try {
@@ -269,12 +264,6 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
         runOnUiThread(new Runnable() {
             @Override
             public void run() {
-//                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
-//                    reloadOver11();
-//                } else {
-//                    finish();
-//                    startActivity(starterIntent);
-//                }
 
                 Intent mStartActivity = new Intent(LauncherActivity.this, LauncherActivity.class);
                 int mPendingIntentId = 123456;
@@ -287,11 +276,6 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
         });
     }
 
-//    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
-//    private void reloadOver11() {
-//        recreate();
-//    }
-
     @Override
     public void onWindowFocusChanged(boolean hasFocus) {
         super.onWindowFocusChanged(hasFocus);
@@ -356,7 +340,7 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
                         MainPack info = main.getMainPack();
                         main.onCommand(info.lastCommand, null);
                     } else {
-                        ui.setOutput(getString(R.string.output_nopermissions), false);
+                        ui.setOutput(getString(R.string.output_nopermissions));
                         main.sendPermissionNotGrantedWarning();
                     }
                     break;
@@ -375,7 +359,7 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
                     break;
                 case COMMAND_SUGGESTION_REQUEST_PERMISSION:
                     if (grantResults.length == 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED) {
-                        ui.setOutput(getString(R.string.output_nopermissions), false);
+                        ui.setOutput(getString(R.string.output_nopermissions));
                     }
                     break;
             }
@@ -396,11 +380,11 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
             String pack = intent.getStringExtra("package");
             String title = intent.getStringExtra("title");
             String text = intent.getStringExtra("text");
-            String color = intent.getStringExtra("color");
+            int color = intent.getIntExtra("color", -1);
 
             if(ui != null) {
                 ui.setOutput(pack + ": " + (title == null ? Tuils.EMPTYSTRING : title + (text == null ? Tuils.EMPTYSTRING : " --- ")) + (text == null ? Tuils.EMPTYSTRING : text),
-                        Color.parseColor(color),
+                        color,
                         false);
             }
         }
diff --git a/app/src/main/java/ohi/andre/consolelauncher/UIManager.java b/app/src/main/java/ohi/andre/consolelauncher/UIManager.java
index 320f596..e0f85d3 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/UIManager.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/UIManager.java
@@ -9,6 +9,7 @@ import android.graphics.Typeface;
 import android.os.Handler;
 import android.text.Editable;
 import android.text.TextWatcher;
+import android.text.format.Time;
 import android.view.GestureDetector;
 import android.view.GestureDetector.OnDoubleTapListener;
 import android.view.Gravity;
@@ -17,6 +18,7 @@ import android.view.MotionEvent;
 import android.view.View;
 import android.view.View.OnTouchListener;
 import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.EditText;
 import android.widget.HorizontalScrollView;
@@ -44,7 +46,8 @@ import ohi.andre.consolelauncher.tuils.stuff.TrashInterfaces;
 public class UIManager implements OnTouchListener {
 
     private final int RAM_DELAY = 3000;
-    public Handler handler;
+    private final int BATTERY_DELAY = 20 * 1000;
+    private final int TIME_DELAY = 1000;
 
     protected Context mContext;
 
@@ -60,16 +63,44 @@ public class UIManager implements OnTouchListener {
     private TerminalManager mTerminalAdapter;
 
     private TextView ram;
+    private TextView device;
+    private TextView battery;
+    private TextView time;
+
+    private Runnable batteryRunnable = new Runnable() {
+        @Override
+        public void run() {
+            int percentage = Tuils.getBatteryPercentage(mContext);
+
+            if(percentage >= 50 || !skinManager.manyColorsBattery) battery.setTextColor(skinManager.battery_color_high);
+            else if(percentage >= 10) battery.setTextColor(skinManager.battery_color_medium);
+            else battery.setTextColor(skinManager.battery_color_low);
+
+            battery.setText(percentage + "%");
+
+            battery.postDelayed(batteryRunnable, BATTERY_DELAY);
+        }
+    };
+
+    private String format;
+    private Runnable timeRunnable = new Runnable() {
+        @Override
+        public void run() {
+            Time t = new Time();
+            t.setToNow();
+
+            time.setText(t.format(format));
+            time.postDelayed(this, TIME_DELAY);
+        }
+    };
 
     private ActivityManager.MemoryInfo memory;
     private ActivityManager activityManager;
     private Runnable ramRunnable = new Runnable() {
         @Override
         public void run() {
-            if (handler != null) {
-                updateRamDetails();
-                handler.postDelayed(this, RAM_DELAY);
-            }
+            updateRamDetails();
+            ram.postDelayed(this, RAM_DELAY);
         }
     };
 
@@ -319,7 +350,7 @@ public class UIManager implements OnTouchListener {
         lastSuggestionThread.start();
     }
 
-    protected UIManager(ExecutePack info, Context context, final ViewGroup rootView, final CommandExecuter tri, DevicePolicyManager mgr, ComponentName name,
+    protected UIManager(ExecutePack info, final Context context, final ViewGroup rootView, final CommandExecuter tri, DevicePolicyManager mgr, ComponentName name,
                         MainPack mainPack) {
 
         rootView.setOnTouchListener(this);
@@ -345,19 +376,34 @@ public class UIManager implements OnTouchListener {
             rootView.setBackgroundColor(skinManager.overlayColor);
         }
 
+//        scrolllllll
+        if(XMLPrefsManager.get(boolean.class, XMLPrefsManager.Behavior.auto_scroll)) {
+            rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+                @Override
+                public void onGlobalLayout() {
+                    int heightDiff = rootView.getRootView().getHeight() - rootView.getHeight();
+                    if (heightDiff > Tuils.dpToPx(context, 200)) { // if more than 200 dp, it's probably a keyboard...
+                        if(mTerminalAdapter != null) mTerminalAdapter.scrollToEnd();
+                    }
+                }
+            });
+        }
+
         ram = (TextView) rootView.findViewById(R.id.ram_tv);
-        TextView deviceInfo = (TextView) rootView.findViewById(R.id.deviceinfo_tv);
+        device = (TextView) rootView.findViewById(R.id.deviceinfo_tv);
+        battery = (TextView) rootView.findViewById(R.id.battery_tv);
+        time = (TextView) rootView.findViewById(R.id.time_tv);
+
         boolean showRam = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.show_ram);
         if (showRam) {
             ram.setTextColor(skinManager.ramColor);
-            ram.setTextSize(skinManager.getRamSize());
+            ram.setTextSize(skinManager.getTextSize());
             ram.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole);
 
             memory = new ActivityManager.MemoryInfo();
             activityManager = (ActivityManager) context.getSystemService(Activity.ACTIVITY_SERVICE);
 
-            handler = new Handler();
-            handler.postDelayed(ramRunnable, RAM_DELAY);
+            ram.postDelayed(ramRunnable, RAM_DELAY);
         } else {
             ram.setVisibility(View.GONE);
             ram = null;
@@ -367,13 +413,35 @@ public class UIManager implements OnTouchListener {
         if (showDevice) {
             String deviceName = skinManager.deviceName;
 
-            deviceInfo.setText(deviceName);
-            deviceInfo.setTextColor(skinManager.deviceColor);
-            deviceInfo.setTextSize(skinManager.getDeviceSize());
+            device.setText(deviceName);
+            device.setTextColor(skinManager.deviceColor);
+            device.setTextSize(skinManager.getTextSize());
+            device.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole);
+        } else {
+            device.setVisibility(View.GONE);
+        }
 
-            deviceInfo.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole);
+        boolean showTime = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.show_time);
+        if(showTime) {
+            format = XMLPrefsManager.get(String.class, XMLPrefsManager.Behavior.time_format);
+
+            time.setTextColor(skinManager.time_color);
+            time.setTextSize(skinManager.getTextSize());
+            time.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole);
+
+            time.post(timeRunnable);
         } else {
-            deviceInfo.setVisibility(View.GONE);
+            time.setVisibility(View.GONE);
+        }
+
+        boolean showBattery = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.show_battery);
+        if(showBattery) {
+            battery.setTextSize(skinManager.getTextSize());
+            battery.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole);
+
+            battery.post(batteryRunnable);
+        } else {
+            battery.setVisibility(View.GONE);
         }
 
         final boolean inputBottom = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.input_bottom);
@@ -498,7 +566,6 @@ public class UIManager implements OnTouchListener {
 
     public void onStart(boolean openKeyboardOnStart) {
         if(openKeyboardOnStart) openKeyboard();
-        mTerminalAdapter.scrollToEnd();
     }
 
     public void setInput(String s) {
@@ -517,12 +584,12 @@ public class UIManager implements OnTouchListener {
         mTerminalAdapter.setDefaultHint();
     }
 
-    public void setOutput(String string, boolean fromUser) {
-        mTerminalAdapter.setOutput(string, fromUser);
+    public void setOutput(String string) {
+        mTerminalAdapter.setOutput(string);
     }
 
     public void setOutput(String s, int color, boolean fromUser) {
-        mTerminalAdapter.setOutput(s, color, fromUser);
+        mTerminalAdapter.setOutput(s, color);
     }
 
     public void disableSuggestions() {
diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/apps.java b/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/apps.java
index e35ceba..153d06c 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/apps.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/apps.java
@@ -2,6 +2,8 @@ package ohi.andre.consolelauncher.commands.main.raw;
 
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
 import android.net.Uri;
 
 import java.io.File;
@@ -10,7 +12,6 @@ import ohi.andre.consolelauncher.R;
 import ohi.andre.consolelauncher.commands.CommandAbstraction;
 import ohi.andre.consolelauncher.commands.ExecutePack;
 import ohi.andre.consolelauncher.commands.main.MainPack;
-import ohi.andre.consolelauncher.commands.main.Param;
 import ohi.andre.consolelauncher.commands.specific.ParamCommand;
 import ohi.andre.consolelauncher.managers.AppsManager;
 import ohi.andre.consolelauncher.tuils.Tuils;
@@ -19,7 +20,7 @@ public class apps extends ParamCommand {
 
     private enum Param implements ohi.andre.consolelauncher.commands.main.Param {
 
-        lshidden {
+        lsh {
             @Override
             public int[] args() {
                 return new int[0];
@@ -38,7 +39,7 @@ public class apps extends ParamCommand {
 
             @Override
             public String exec(ExecutePack pack) {
-                ((MainPack) pack).appsManager.hideApp(pack.get(String.class, 1));
+                ((MainPack) pack).appsManager.unhideApp(pack.get(String.class, 1));
                 return null;
             }
         },
@@ -54,6 +55,23 @@ public class apps extends ParamCommand {
                 return null;
             }
         },
+        l {
+            @Override
+            public int[] args() {
+                return new int[] {CommandAbstraction.VISIBLE_PACKAGE};
+            }
+
+            @Override
+            public String exec(ExecutePack pack) {
+                try {
+                    PackageInfo info = pack.context.getPackageManager().getPackageInfo(pack.get(String.class, 1), PackageManager.GET_PERMISSIONS | PackageManager.GET_ACTIVITIES |
+                            PackageManager.GET_SERVICES | PackageManager.GET_RECEIVERS);
+                    return AppsManager.AppUtils.format(info);
+                } catch (PackageManager.NameNotFoundException e) {
+                    return e.toString();
+                }
+            }
+        },
         ps {
             @Override
             public int[] args() {
diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/cntcts.java b/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/cntcts.java
index 0154676..37ab532 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/cntcts.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/cntcts.java
@@ -15,7 +15,6 @@ import ohi.andre.consolelauncher.R;
 import ohi.andre.consolelauncher.commands.CommandAbstraction;
 import ohi.andre.consolelauncher.commands.ExecutePack;
 import ohi.andre.consolelauncher.commands.main.MainPack;
-import ohi.andre.consolelauncher.commands.main.Param;
 import ohi.andre.consolelauncher.commands.specific.ParamCommand;
 import ohi.andre.consolelauncher.managers.ContactManager;
 import ohi.andre.consolelauncher.tuils.Tuils;
@@ -88,7 +87,7 @@ public class cntcts extends ParamCommand {
                 return new int[] {CommandAbstraction.CONTACTNUMBER};
             }
         },
-        show {
+        l {
             @Override
             public String exec(ExecutePack pack) {
                 String[] about = ((MainPack) pack).contacts.about(pack.get(String.class, 1));
diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/time.java b/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/time.java
index 25ea3e3..45eff34 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/time.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/time.java
@@ -1,10 +1,11 @@
 package ohi.andre.consolelauncher.commands.main.raw;
 
-import java.util.Calendar;
+import android.text.format.Time;
 
 import ohi.andre.consolelauncher.R;
 import ohi.andre.consolelauncher.commands.CommandAbstraction;
 import ohi.andre.consolelauncher.commands.ExecutePack;
+import ohi.andre.consolelauncher.managers.XMLPrefsManager;
 
 /**
  * Created by andre on 03/12/15.
@@ -12,14 +13,9 @@ import ohi.andre.consolelauncher.commands.ExecutePack;
 public class time implements CommandAbstraction {
     @Override
     public String exec(ExecutePack pack) {
-        Calendar c = Calendar.getInstance();
-        int hours = c.get(Calendar.HOUR_OF_DAY);
-        int minutes = c.get(Calendar.MINUTE);
-		
-		if(minutes < 10)
-			return hours + ":0" + minutes;
-		else
-			return hours + ":" + minutes;
+        Time time = new Time();
+        time.setToNow();
+        return time.format(XMLPrefsManager.get(String.class, XMLPrefsManager.Behavior.time_format));
     }
 
     @Override
diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/tui.java b/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/tui.java
index 93e2289..139a308 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/tui.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/tui.java
@@ -5,11 +5,10 @@ import android.net.Uri;
 
 import ohi.andre.consolelauncher.BuildConfig;
 import ohi.andre.consolelauncher.R;
-import ohi.andre.consolelauncher.commands.CommandAbstraction;
 import ohi.andre.consolelauncher.commands.ExecutePack;
 import ohi.andre.consolelauncher.commands.main.MainPack;
-import ohi.andre.consolelauncher.commands.main.Param;
 import ohi.andre.consolelauncher.commands.specific.ParamCommand;
+import ohi.andre.consolelauncher.managers.FileManager;
 import ohi.andre.consolelauncher.tuils.Tuils;
 
 /**
@@ -39,6 +38,13 @@ public class tui extends ParamCommand {
                 MainPack info = (MainPack) pack;
                 return info.res.getString(R.string.version_label) + Tuils.SPACE + BuildConfig.VERSION_NAME + Tuils.NEWLINE + Tuils.NEWLINE + info.res.getString(R.string.output_about);
             }
+        },
+        reset {
+            @Override
+            public String exec(ExecutePack pack) {
+                FileManager.rm(Tuils.getFolder(), false);
+                return null;
+            }
         };
 
         @Override
diff --git a/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/tutorial.java b/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/tutorial.java
deleted file mode 100755
index 14fea49..0000000
--- a/app/src/main/java/ohi/andre/consolelauncher/commands/main/raw/tutorial.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package ohi.andre.consolelauncher.commands.main.raw;
-
-import ohi.andre.consolelauncher.R;
-import ohi.andre.consolelauncher.commands.CommandAbstraction;
-import ohi.andre.consolelauncher.commands.ExecutePack;
-import ohi.andre.consolelauncher.commands.main.MainPack;
-import ohi.andre.consolelauncher.tuils.Tuils;
-
-public class tutorial implements CommandAbstraction {
-
-    @Override
-    public String exec(ExecutePack pack) {
-        MainPack info = (MainPack) pack;
-        Tuils.showTutorial(info.context);
-        return null;
-    }
-
-    @Override
-    public int minArgs() {
-        return 0;
-    }
-
-    @Override
-    public int maxArgs() {
-        return 0;
-    }
-
-    @Override
-    public int[] argType() {
-        return new int[0];
-    }
-
-    @Override
-    public int priority() {
-        return 4;
-    }
-
-    @Override
-    public int helpRes() {
-        return R.string.help_tutorial;
-    }
-
-    @Override
-    public String onArgNotFound(ExecutePack info, int index) {
-        return null;
-    }
-
-    @Override
-    public String onNotArgEnough(ExecutePack info, int nArgs) {
-        return null;
-    }
-
-}
-
-
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 791f664..41220a3 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/managers/AppsManager.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/managers/AppsManager.java
@@ -8,12 +8,15 @@ import android.content.IntentFilter;
 import android.content.SharedPreferences;
 import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
 import android.os.Build;
 import android.os.Handler;
 import android.support.annotation.NonNull;
+import android.text.format.Time;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -239,7 +242,10 @@ public class AppsManager implements XMLPrefsManager.XmlPrefsElement {
         } catch (Exception e) {}
 
         for(Map.Entry<String, ?> entry : this.preferences.getAll().entrySet()) {
-            if (entry.getValue() instanceof Integer) map.get(entry.getKey()).launchedTimes = (Integer) entry.getValue();
+            if (entry.getValue() instanceof Integer) {
+                AppInfo info = map.get(entry.getKey());
+                if(info != null) info.launchedTimes = (Integer) entry.getValue();
+            }
         }
 
         for (Map.Entry<String, AppInfo> stringAppInfoEntry : map.entrySet()) {
@@ -505,6 +511,7 @@ public class AppsManager implements XMLPrefsManager.XmlPrefsElement {
                     else {
                         AppInfo info = AppUtils.findAppInfo(vl, infos);
                         if(info == null) continue;
+                        suggested.add(new SuggestedApp(info, USER_DEFINIED));
                     }
                 }
 
@@ -541,28 +548,52 @@ public class AppsManager implements XMLPrefsManager.XmlPrefsElement {
             }
 
             public void attemptInsertSuggestion(AppInfo info) {
+//                Log.e("andre", "attempt: " + info.toString());
+
                 if (info.launchedTimes == 0 || lastWriteable == -1) {
                     return;
                 }
 
-                int index = indexOf(info);
-                if (index == -1) {
-                    for (int count = 0; count <= lastWriteable; count++) {
+//                Log.e("andre", String.valueOf(lastWriteable));
 
-                        SuggestedApp app = get(count);
-                        if (app.app == null || info.launchedTimes > app.app.launchedTimes) {
-                            SuggestedApp s = suggested.get(count);
+                int i = Tuils.find(info, suggested);
+                if(i == -1) {
+                    int index = indexOf(info);
+                    if (index == -1) {
+                        for (int count = 0; count <= lastWriteable; count++) {
+//                            Log.e("andre", "loop: " + count);
 
-                            AppInfo before = s.app;
-                            s.change(info);
+                            SuggestedApp app = get(count);
+//                            Log.e("andre", app.toString());
 
-                            if(before != null) attemptInsertSuggestion(before);
+                            if (app.app == null || info.launchedTimes > app.app.launchedTimes) {
+//                                Log.e("andre", "yes");
+                                SuggestedApp s = suggested.get(count);
 
-                            break;
+//                                Log.e("andre", "before it was: " + s.toString());
+//                                Log.e("andre", suggested.toString());
+
+                                AppInfo before = s.app;
+                                s.change(info);
+
+//                                Log.e("andre", suggested.toString());
+
+                                if(before != null) {
+//                                    Log.e("andre", "rec");
+                                    attemptInsertSuggestion(before);
+                                }
+
+                                break;
+                            }
                         }
                     }
                 }
+//                else {
+//                    Log.e("andre", "index == -1");
+//                    Log.e("andre", suggested.toString());
+//                }
                 sort();
+//                Log.e("andre", suggested.toString());
             }
 
 //            public void updateSuggestion(AppInfo info) {
@@ -638,7 +669,17 @@ public class AppsManager implements XMLPrefsManager.XmlPrefsElement {
 
                 @Override
                 public boolean equals(Object o) {
-                    return this.app != null && o instanceof SuggestedApp && ((SuggestedApp) o).app != null && this.app.equals(((SuggestedApp) o).app);
+                    if(o instanceof SuggestedApp) {
+                        try {
+                            return (app == null && ((SuggestedApp) o).app == null) || app.equals(((SuggestedApp) o).app);
+                        } catch (NullPointerException e) {
+                            return false;
+                        }
+                    } else if(o instanceof AppInfo) {
+                        if(app == null) return false;
+                        return app.equals(o);
+                    }
+                    return false;
                 }
 
                 @Override
@@ -754,7 +795,7 @@ public class AppsManager implements XMLPrefsManager.XmlPrefsElement {
         }
     }
 
-    private static class AppUtils {
+    public static class AppUtils {
 
         public static void checkEquality(List<AppInfo> list) {
 
@@ -814,6 +855,49 @@ public class AppsManager implements XMLPrefsManager.XmlPrefsElement {
             }
         }
 
+        public static String format(PackageInfo info) {
+            StringBuilder builder = new StringBuilder();
+
+            builder.append(info.packageName).append(Tuils.NEWLINE);
+            builder.append("vrs: ").append(info.versionCode).append(" - ").append(info.versionName).append(Tuils.NEWLINE).append(Tuils.NEWLINE);
+
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
+                Time time = new Time();
+                time.set(info.firstInstallTime);
+                builder.append("Install: ").append(time.format(XMLPrefsManager.get(String.class, XMLPrefsManager.Behavior.time_format))).append(Tuils.NEWLINE).append(Tuils.NEWLINE);
+            }
+
+            ActivityInfo[] a = info.activities;
+            if(a != null && a.length > 0) {
+                List<String> as = new ArrayList<>();
+                for(ActivityInfo i : a) as.add(i.name.replace(info.packageName, Tuils.EMPTYSTRING));
+                builder.append("Activities: ").append(Tuils.NEWLINE).append(Tuils.toPlanString(as, Tuils.NEWLINE)).append(Tuils.NEWLINE).append(Tuils.NEWLINE);
+            }
+
+            ServiceInfo[] s = info.services;
+            if(s != null && s.length > 0) {
+                List<String> ss = new ArrayList<>();
+                for(ServiceInfo i : s) ss.add(i.name.replace(info.packageName, Tuils.EMPTYSTRING));
+                builder.append("Services: ").append(Tuils.NEWLINE).append(Tuils.toPlanString(ss, Tuils.NEWLINE)).append(Tuils.NEWLINE).append(Tuils.NEWLINE);
+            }
+
+            ActivityInfo[] r = info.receivers;
+            if(r != null && r.length > 0) {
+                List<String> rs = new ArrayList<>();
+                for(ActivityInfo i : r) rs.add(i.name.replace(info.packageName, Tuils.EMPTYSTRING));
+                builder.append("Receivers: ").append(Tuils.NEWLINE).append(Tuils.toPlanString(rs, Tuils.NEWLINE)).append(Tuils.NEWLINE).append(Tuils.NEWLINE);
+            }
+
+            String[] p = info.requestedPermissions;
+            if(p != null && p.length > 0) {
+                List<String> ps = new ArrayList<>();
+                for(String i : p) ps.add(i.substring(i.lastIndexOf(".") + 1));
+                builder.append("Permissions: ").append(Tuils.NEWLINE).append(Tuils.toPlanString(ps, ", "));
+            }
+
+            return builder.toString();
+        }
+
         protected static AppInfo findAppInfo(String packageName, List<AppInfo> infos) {
             for(AppInfo info : infos) {
                 if(info.packageName.equals(packageName)) {
diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/FileManager.java b/app/src/main/java/ohi/andre/consolelauncher/managers/FileManager.java
index 27b4d31..8292b04 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/managers/FileManager.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/managers/FileManager.java
@@ -79,12 +79,10 @@ public class FileManager {
     }
 
     private static int mv(File f, File where, boolean su) throws IOException {
+        ShellUtils.CommandResult result = ShellUtils.execCommand("mv " + Tuils.SPACE +
+                f.getAbsolutePath() + Tuils.SPACE +
+                where.getAbsolutePath(), su, null);
 
-        ShellUtils.CommandResult result = ShellUtils.execCommand("mv " +
-                (f.isDirectory() ? "-r" : Tuils.EMPTYSTRING) +
-                Tuils.SPACE +
-                "\"" + f.getAbsolutePath() + "\"" + Tuils.SPACE +
-                "\"" + where.getAbsolutePath() + "\"", su, null);
         return result.result;
     }
 
@@ -101,11 +99,11 @@ public class FileManager {
     }
 
     public static int rm(File f, boolean su) {
-
         ShellUtils.CommandResult result = ShellUtils.execCommand("rm " +
                 (f.isDirectory() ? "-r" : Tuils.EMPTYSTRING) +
                 Tuils.SPACE +
-                "\"" + f.getAbsolutePath() + "\"", su, null);
+                f.getAbsolutePath(), su, null);
+
         if(result == null) return IOERROR;
         return result.result;
     }
@@ -127,11 +125,9 @@ public class FileManager {
     }
 
     private static int cp(File f, File where, boolean su) throws IOException {
-        ShellUtils.CommandResult result = ShellUtils.execCommand("cp " +
-                (f.isDirectory() ? "-r" : Tuils.EMPTYSTRING) +
-                Tuils.SPACE +
-                "\"" + f.getAbsolutePath() + "\"" + Tuils.SPACE +
-                "\"" + where.getAbsolutePath() + "\"", su, null);
+        ShellUtils.CommandResult result = ShellUtils.execCommand("cp " + Tuils.SPACE +
+                f.getAbsolutePath() + Tuils.SPACE +
+                where.getAbsolutePath(), su, null);
         return result.result;
     }
 
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 3f857da..c361c08 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/managers/SkinManager.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/managers/SkinManager.java
@@ -16,17 +16,18 @@ public class SkinManager implements Parcelable {
     public static final int SUGGESTION_PADDING_HORIZONTAL = 15;
     public static final int SUGGESTION_MARGIN = 20;
 
-    private static final int deviceScale = 3;
-    private static final int textScale = 2;
-    private static final int ramScale = 3;
     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, enter_color;
+    public int deviceColor, inputColor, outputColor, ramColor, bgColor, overlayColor, toolbarColor, toolbarBg, enter_color, time_color, battery_color_high, battery_color_medium, battery_color_low;
 
-    public boolean useSystemWp, showSuggestions, systemFont, inputBottom, showSubmit;
+    public boolean useSystemWp, showSuggestions, systemFont, inputBottom, showSubmit, manyColorsBattery;
 
     public String username = null;
     public boolean showUsernameAndDeviceWhenEmpty = true, showUsername = false, showDeviceInSessionInfo = false, linuxAppearence = true, showPath = true;
@@ -39,6 +40,8 @@ public class SkinManager implements Parcelable {
         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);
@@ -53,7 +56,14 @@ public class SkinManager implements Parcelable {
         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);
+        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);
+        }
 
         deviceName = XMLPrefsManager.get(String.class, XMLPrefsManager.Ui.deviceName);
         if (deviceName.length() == 0 || deviceName.equals("null")) {
@@ -104,6 +114,63 @@ public class SkinManager implements Parcelable {
         }
     }
 
+    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();
+        showUsernameAndDeviceWhenEmpty = in.readByte() != 0;
+        showUsername = in.readByte() != 0;
+        showDeviceInSessionInfo = in.readByte() != 0;
+        linuxAppearence = in.readByte() != 0;
+        showPath = in.readByte() != 0;
+        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;
+    }
+
+    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);
@@ -128,47 +195,40 @@ public class SkinManager implements Parcelable {
     }
 
     public int getSuggestionTextColor(Integer type) {
-        int choosen;
+        int chosen;
+
         switch (type) {
             case SuggestionsManager.Suggestion.TYPE_APP:
-                choosen = suggAppText;
+                chosen = suggAppText;
                 break;
             case SuggestionsManager.Suggestion.TYPE_ALIAS:
-                choosen = suggAliasText;
+                chosen = suggAliasText;
                 break;
             case SuggestionsManager.Suggestion.TYPE_COMMAND:
-                choosen = suggCmdText;
+                chosen = suggCmdText;
                 break;
             case SuggestionsManager.Suggestion.TYPE_CONTACT:
-                choosen = suggContactText;
+                chosen = suggContactText;
                 break;
             case SuggestionsManager.Suggestion.TYPE_FILE:
-                choosen = suggFileText;
+                chosen = suggFileText;
                 break;
             case SuggestionsManager.Suggestion.TYPE_SONG:
-                choosen = suggSongText;
+                chosen = suggSongText;
                 break;
             default:
-                choosen = suggDefaultText;
+                chosen = suggDefaultText;
                 break;
         }
 
-        if(choosen == -1) choosen = suggDefaultText;
-        return choosen;
-    }
-
-    public int getDeviceSize() {
-        return globalFontSize - deviceScale;
+        if(chosen == COLOR_NOT_SET) chosen = suggDefaultText;
+        return chosen;
     }
 
     public int getTextSize() {
         return globalFontSize - textScale;
     }
 
-    public int getRamSize() {
-        return globalFontSize - ramScale;
-    }
-
     public int getSuggestionSize() {
         return globalFontSize - suggestionScale;
     }
@@ -180,86 +240,47 @@ public class SkinManager implements Parcelable {
 
     @Override
     public void writeToParcel(Parcel dest, int flags) {
-        dest.writeInt(this.globalFontSize);
-        dest.writeString(this.deviceName);
-        dest.writeInt(this.deviceColor);
-        dest.writeInt(this.inputColor);
-        dest.writeInt(this.outputColor);
-        dest.writeInt(this.ramColor);
-        dest.writeInt(this.bgColor);
-        dest.writeByte(this.useSystemWp ? (byte) 1 : (byte) 0);
-        dest.writeByte(this.showSuggestions ? (byte) 1 : (byte) 0);
-        dest.writeByte(this.systemFont ? (byte) 1 : (byte) 0);
-        dest.writeByte(this.inputBottom ? (byte) 1 : (byte) 0);
-        dest.writeByte(this.showSubmit ? (byte) 1 : (byte) 0);
-        dest.writeString(this.username);
-        dest.writeByte(this.showUsernameAndDeviceWhenEmpty ? (byte) 1 : (byte) 0);
-        dest.writeByte(this.showUsername ? (byte) 1 : (byte) 0);
-        dest.writeByte(this.showDeviceInSessionInfo ? (byte) 1 : (byte) 0);
-        dest.writeByte(this.linuxAppearence ? (byte) 1 : (byte) 0);
-        dest.writeByte(this.showPath ? (byte) 1 : (byte) 0);
-        dest.writeInt(this.suggDefaultText);
-        dest.writeInt(this.suggDefaultBg);
-        dest.writeInt(this.suggAliasText);
-        dest.writeInt(this.suggAliasBg);
-        dest.writeInt(this.suggSongText);
-        dest.writeInt(this.suggSongBg);
-        dest.writeInt(this.suggContactText);
-        dest.writeInt(this.suggContactBg);
-        dest.writeInt(this.suggAppText);
-        dest.writeInt(this.suggAppBg);
-        dest.writeInt(this.suggCmdText);
-        dest.writeInt(this.suggCmdBg);
-        dest.writeInt(this.suggFileText);
-        dest.writeInt(this.suggFileBg);
-        dest.writeByte(this.transparentSuggestions ? (byte) 1 : (byte) 0);
+        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.writeByte((byte) (showUsernameAndDeviceWhenEmpty ? 1 : 0));
+        dest.writeByte((byte) (showUsername ? 1 : 0));
+        dest.writeByte((byte) (showDeviceInSessionInfo ? 1 : 0));
+        dest.writeByte((byte) (linuxAppearence ? 1 : 0));
+        dest.writeByte((byte) (showPath ? 1 : 0));
+        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));
     }
-
-    protected SkinManager(Parcel in) {
-        this.globalFontSize = in.readInt();
-        this.deviceName = in.readString();
-        this.deviceColor = in.readInt();
-        this.inputColor = in.readInt();
-        this.outputColor = in.readInt();
-        this.ramColor = in.readInt();
-        this.bgColor = in.readInt();
-        this.useSystemWp = in.readByte() != 0;
-        this.showSuggestions = in.readByte() != 0;
-        this.systemFont = in.readByte() != 0;
-        this.inputBottom = in.readByte() != 0;
-        this.showSubmit = in.readByte() != 0;
-        this.username = in.readString();
-        this.showUsernameAndDeviceWhenEmpty = in.readByte() != 0;
-        this.showUsername = in.readByte() != 0;
-        this.showDeviceInSessionInfo = in.readByte() != 0;
-        this.linuxAppearence = in.readByte() != 0;
-        this.showPath = in.readByte() != 0;
-        this.suggDefaultText = in.readInt();
-        this.suggDefaultBg = in.readInt();
-        this.suggAliasText = in.readInt();
-        this.suggAliasBg = in.readInt();
-        this.suggSongText = in.readInt();
-        this.suggSongBg = in.readInt();
-        this.suggContactText = in.readInt();
-        this.suggContactBg = in.readInt();
-        this.suggAppText = in.readInt();
-        this.suggAppBg = in.readInt();
-        this.suggCmdText = in.readInt();
-        this.suggCmdBg = in.readInt();
-        this.suggFileText = in.readInt();
-        this.suggFileBg = in.readInt();
-        this.transparentSuggestions = in.readByte() != 0;
-    }
-
-    public static final Creator<SkinManager> CREATOR = new Creator<SkinManager>() {
-        @Override
-        public SkinManager createFromParcel(Parcel source) {
-            return new SkinManager(source);
-        }
-
-        @Override
-        public SkinManager[] newArray(int size) {
-            return new SkinManager[size];
-        }
-    };
 }
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 2de232a..2070ddb 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/managers/TerminalMAnager.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/managers/TerminalMAnager.java
@@ -6,10 +6,12 @@ import android.os.IBinder;
 import android.text.InputType;
 import android.text.Spannable;
 import android.text.SpannableString;
+import android.text.TextUtils;
 import android.text.method.ScrollingMovementMethod;
 import android.text.style.ForegroundColorSpan;
 import android.view.KeyEvent;
 import android.view.View;
+import android.view.ViewTreeObserver;
 import android.view.inputmethod.EditorInfo;
 import android.widget.EditText;
 import android.widget.ImageButton;
@@ -46,8 +48,6 @@ public class TerminalManager {
     public static final int INPUT = 10;
     public static final int OUTPUT = 11;
 
-    private int cmds = 0;
-
     private long lastEnter;
 
     private CharSequence prefix;
@@ -78,7 +78,19 @@ public class TerminalManager {
 
     private boolean defaultHint = true;
 
-    public TerminalManager(TextView terminalView, EditText inputView, TextView prefixView, ImageButton submitView, final ImageButton backView, ImageButton nextView, ImageButton deleteView,
+    private int clearCmdsCount= 0, messagesCmdsCount = 0;
+
+    private int clearAfterCmds, clearAfterMs, maxLines;
+    private Runnable clearRunnable = new Runnable() {
+
+        @Override
+        public void run() {
+            clear();
+            mTerminalView.postDelayed(this, clearAfterMs);
+        }
+    };
+
+    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)
             throw new UnsupportedOperationException();
@@ -88,6 +100,10 @@ public class TerminalManager {
         this.mSkinManager = skinManager;
         this.mainPack = mainPack;
 
+        this.clearAfterMs = XMLPrefsManager.get(int.class, XMLPrefsManager.Behavior.clear_after_seconds) * 1000;
+        this.clearAfterCmds = XMLPrefsManager.get(int.class, XMLPrefsManager.Behavior.clear_after_cmds);
+        this.maxLines = XMLPrefsManager.get(int.class, XMLPrefsManager.Behavior.max_lines);
+
         if(skinManager.linuxAppearence) {
             prefix = "$ ";
         } else {
@@ -109,6 +125,7 @@ public class TerminalManager {
         }
 
         if (backView != null) {
+            ((View) backView.getParent()).setBackgroundColor(mSkinManager.toolbarBg);
             backView.setColorFilter(this.mSkinManager.toolbarColor);
             backView.setOnClickListener(new View.OnClickListener() {
                 @Override
@@ -157,6 +174,32 @@ public class TerminalManager {
         this.mTerminalView.setFocusable(false);
         setupScroller();
 
+        if(clearAfterMs > 0) this.mTerminalView.postDelayed(clearRunnable, clearAfterMs);
+        if(maxLines > 0) {
+            this.mTerminalView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
+                @Override
+                public boolean onPreDraw() {
+                    int count = terminalView.getLayout().getLineCount() - 1;
+
+                    if(count > maxLines) {
+                        int excessive = count - maxLines;
+
+                        CharSequence text = terminalView.getText();
+                        while (excessive >= 0) {
+                            int index = TextUtils.indexOf(text, Tuils.NEWLINE);
+                            if(index == -1) break;
+                            text = text.subSequence(index + 1, text.length());
+                            excessive--;
+                        }
+
+                        terminalView.setText(text);
+                    }
+
+                    return true;
+                }
+            });
+        }
+
         View v = mTerminalView;
         do {
             v = (View) v.getParent();
@@ -222,9 +265,15 @@ public class TerminalManager {
         String input = mInputView.getText().toString().trim();
 
         if(input.length() > 0) {
+            clearCmdsCount++;
+            messagesCmdsCount++;
+
+            if(clearCmdsCount != 0 && clearAfterCmds > 0 && clearCmdsCount % clearAfterCmds == 0) clear();
+
+            for (Messager messager : messagers) if (messagesCmdsCount != 0 && messagesCmdsCount % messager.n == 0) writeToView(messager.message, OUTPUT);
+
             writeToView((input.startsWith("su ") ? "# " : prefix) + input, INPUT);
 
-            cmds++;
             if(cmdList.size() == CMD_LIST_SIZE) {
                 cmdList.remove(0);
             }
@@ -242,15 +291,15 @@ public class TerminalManager {
         return true;
     }
 
-    public void setOutput(String output, boolean fromUser) {
-        setOutput(output, -1, OUTPUT, fromUser);
+    public void setOutput(String output) {
+        setOutput(output, -1, OUTPUT);
     }
 
-    public void setOutput(String output, int color, boolean fromUser) {
-        setOutput(output, color, -1, fromUser);
+    public void setOutput(String output, int color) {
+        setOutput(output, color, -1);
     }
 
-    public void setOutput(String output, int color, int type, boolean fromUser) {
+    public void setOutput(String output, int color, int type) {
         if (output == null) return;
 
         output = output.trim();
@@ -263,9 +312,6 @@ public class TerminalManager {
 
         if(color == -1) writeToView(output, type);
         else writeToView(color, output);
-
-        if(fromUser)
-            for (Messager messager : messagers) if (cmds != 0 && cmds % messager.n == 0) writeToView(messager.message, OUTPUT);
     }
 
     public void onBackPressed() {
@@ -413,13 +459,8 @@ public class TerminalManager {
                 mTerminalView.setText(Tuils.EMPTYSTRING);
             }
         });
-        mInputView.post(new Runnable() {
-            @Override
-            public void run() {
-                mInputView.setText(Tuils.EMPTYSTRING);
-            }
-        });
         cmdList.clear();
+        clearCmdsCount = 0;
     }
 
     public static class Messager {
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 3e23aaf..4803de3 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/managers/XMLPrefsManager.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/managers/XMLPrefsManager.java
@@ -63,12 +63,42 @@ public class XMLPrefsManager {
                 return "#ffff9800";
             }
         },
+        battery_color_high {
+            @Override
+            public String defaultValue() {
+                return "#4CAF50";
+            }
+        },
+        battery_color_medium {
+            @Override
+            public String defaultValue() {
+                return "#FFEB3B";
+            }
+        },
+        battery_color_low {
+            @Override
+            public String defaultValue() {
+                return "#FF5722";
+            }
+        },
+        time_color {
+            @Override
+            public String defaultValue() {
+                return "#03A9F4";
+            }
+        },
         ram_color {
             @Override
             public String defaultValue() {
                 return "#fff44336";
             }
         },
+        toolbar_bg {
+            @Override
+            public String defaultValue() {
+                return "#00000000";
+            }
+        },
         toolbar_color {
             @Override
             public String defaultValue() {
@@ -172,6 +202,24 @@ public class XMLPrefsManager {
                 return "true";
             }
         },
+        show_battery {
+            @Override
+            public String defaultValue() {
+                return "true";
+            }
+        },
+        enable_battery_status {
+            @Override
+            public String defaultValue() {
+                return "true";
+            }
+        },
+        show_time {
+            @Override
+            public String defaultValue() {
+                return "true";
+            }
+        },
         username {
             @Override
             public String defaultValue() {
@@ -397,6 +445,12 @@ public class XMLPrefsManager {
                 return "true";
             }
         },
+        auto_scroll {
+            @Override
+            public String defaultValue() {
+                return "true";
+            }
+        },
         donation_message {
             @Override
             public String defaultValue() {
@@ -420,6 +474,30 @@ public class XMLPrefsManager {
             public String defaultValue() {
                 return "true";
             }
+        },
+        clear_after_cmds {
+            @Override
+            public String defaultValue() {
+                return "20";
+            }
+        },
+        clear_after_seconds {
+            @Override
+            public String defaultValue() {
+                return "-1";
+            }
+        },
+        max_lines {
+            @Override
+            public String defaultValue() {
+                return "100";
+            }
+        },
+        time_format {
+            @Override
+            public String defaultValue() {
+                return "%m/%d/%y %H.%M";
+            }
         };
 
         @Override
@@ -815,7 +893,7 @@ public class XMLPrefsManager {
         } catch (Exception e) {
             String def = prefsSave.defaultValue();
             if(def == null || def.length() == 0) {
-                return -1;
+                return SkinManager.COLOR_NOT_SET;
             }
             return (int) transform(def, Color.class);
         }
diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/notifications/NotificationService.java b/app/src/main/java/ohi/andre/consolelauncher/managers/notifications/NotificationService.java
index 016953a..e2a4c62 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/managers/notifications/NotificationService.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/managers/notifications/NotificationService.java
@@ -7,6 +7,7 @@ package ohi.andre.consolelauncher.managers.notifications;
 import android.annotation.TargetApi;
 import android.app.Notification;
 import android.content.Intent;
+import android.graphics.Color;
 import android.os.Build;
 import android.os.Handler;
 import android.service.notification.NotificationListenerService;
@@ -112,11 +113,18 @@ public class NotificationService extends NotificationListenerService {
 
         if(NotificationManager.textMatches(text) || NotificationManager.titleMatches(title)) return;
 
+        int color;
+        try {
+            color = Color.parseColor(nApp.color);
+        } catch (Exception e) {
+            color = Color.parseColor(default_color);
+        }
+
         Intent msgrcv = new Intent("Msg");
         msgrcv.putExtra("package", pack);
         msgrcv.putExtra("title", title);
         msgrcv.putExtra("text", text);
-        msgrcv.putExtra("color", nApp != null ? nApp.color : default_color);
+        msgrcv.putExtra("color", color);
 
         LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(msgrcv);
     }
diff --git a/app/src/main/java/ohi/andre/consolelauncher/managers/suggestions/SuggestionsManager.java b/app/src/main/java/ohi/andre/consolelauncher/managers/suggestions/SuggestionsManager.java
index 7bcad0d..46fe0c9 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/managers/suggestions/SuggestionsManager.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/managers/suggestions/SuggestionsManager.java
@@ -42,7 +42,7 @@ public class SuggestionsManager {
     private final int MAX_RATE = 100;
     private final int NO_RATE = -1;
 
-    private final int FIRST_INTERVAL = 3;
+    private final int FIRST_INTERVAL = 5;
 
     private boolean showAlias, showAliasWasSet = false;
 
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 e6a5ac7..396f3f0 100755
--- a/app/src/main/java/ohi/andre/consolelauncher/tuils/Tuils.java
+++ b/app/src/main/java/ohi/andre/consolelauncher/tuils/Tuils.java
@@ -12,17 +12,19 @@ import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.database.Cursor;
 import android.net.Uri;
+import android.os.BatteryManager;
 import android.os.Build;
 import android.os.Environment;
 import android.provider.MediaStore;
 import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.DisplayMetrics;
-import android.util.Log;
+import android.util.TypedValue;
 
 import java.io.DataOutputStream;
 import java.io.File;
@@ -40,7 +42,6 @@ import ohi.andre.consolelauncher.managers.MusicManager;
 import ohi.andre.consolelauncher.managers.SkinManager;
 import ohi.andre.consolelauncher.managers.XMLPrefsManager;
 import ohi.andre.consolelauncher.tuils.stuff.FakeLauncherActivity;
-import ohi.andre.consolelauncher.tuils.tutorial.TutorialActivity;
 
 public class Tuils {
 
@@ -62,6 +63,19 @@ public class Tuils {
         return false;
     }
 
+    public static int getBatteryPercentage(Context context) {
+
+        IntentFilter iFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
+        Intent batteryStatus = context.registerReceiver(null, iFilter);
+
+        int level = batteryStatus != null ? batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) : -1;
+        int scale = batteryStatus != null ? batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1) : -1;
+
+        float batteryPct = level / (float) scale;
+
+        return (int) (batteryPct * 100);
+    }
+
     public static boolean containsExtension(String[] array, String value) {
         try {
             value = value.toLowerCase().trim();
@@ -99,6 +113,11 @@ public class Tuils {
         return songs;
     }
 
+    public static float dpToPx(Context context, float valueInDp) {
+        DisplayMetrics metrics = context.getResources().getDisplayMetrics();
+        return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, valueInDp, metrics);
+    }
+
     public static boolean hasNotificationAccess(Context context) {
         String pkgName = BuildConfig.APPLICATION_ID;
         final String flat = Settings.Secure.getString(context.getContentResolver(), "enabled_notification_listeners");
@@ -129,10 +148,6 @@ public class Tuils {
         packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP);
     }
 
-    public static void showTutorial(Context context) {
-        context.startActivity(new Intent(context, TutorialActivity.class));
-    }
-
     @TargetApi(Build.VERSION_CODES.GINGERBREAD)
     public static void openSettingsPage(Context c, String packageName) {
         Intent intent = new Intent();
@@ -195,6 +210,7 @@ public class Tuils {
     public static int find(Object o, List list) {
         for(int count = 0; count < list.size(); count++) {
             Object x = list.get(count);
+
             if(o instanceof XMLPrefsManager.XMLPrefsSave) {
                 try {
                     if(((XMLPrefsManager.XMLPrefsSave) o).is((String) x)) return count;
@@ -207,8 +223,7 @@ public class Tuils {
                 } catch (Exception e) {}
             }
 
-            Object ob = list.get(count);
-            if(o.equals(ob) || ob.equals(o)) return count;
+            if(o.equals(x) || x.equals(o)) return count;
         }
         return -1;
     }
diff --git a/app/src/main/java/ohi/andre/consolelauncher/tuils/tutorial/TutorialActivity.java b/app/src/main/java/ohi/andre/consolelauncher/tuils/tutorial/TutorialActivity.java
deleted file mode 100755
index ed1cb2f..0000000
--- a/app/src/main/java/ohi/andre/consolelauncher/tuils/tutorial/TutorialActivity.java
+++ /dev/null
@@ -1,259 +0,0 @@
-package ohi.andre.consolelauncher.tuils.tutorial;
-
-import android.content.Intent;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.graphics.Typeface;
-import android.net.Uri;
-import android.os.Build;
-import android.support.v7.app.AppCompatActivity;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
-import android.widget.ScrollView;
-import android.widget.TextView;
-
-import ohi.andre.consolelauncher.BuildConfig;
-import ohi.andre.consolelauncher.LauncherActivity;
-import ohi.andre.consolelauncher.R;
-import ohi.andre.consolelauncher.tuils.Animator;
-import ohi.andre.consolelauncher.tuils.Tuils;
-
-public class TutorialActivity extends AppCompatActivity {
-
-    private final int FIRST = 0, END = 7;
-
-    int position = FIRST;
-
-    boolean[] visited = new boolean[END + 1];
-
-    RelativeLayout root;
-    TextView back, next, title;
-
-    LayoutInflater inflater;
-    Resources resources;
-
-    RelativeLayout.LayoutParams containerParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
-    LinearLayout.LayoutParams bigMarginParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
-    LinearLayout.LayoutParams smallMarginParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
-
-    Typeface lucidaConsole;
-
-    private View.OnClickListener nextListener = new View.OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            if(position < END) {
-                position++;
-                update();
-            } else {
-                TutorialActivity.this.finish();
-                startActivity(new Intent(TutorialActivity.this, LauncherActivity.class));
-            }
-        }
-    };
-
-    private View.OnClickListener backListener = new View.OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            if(position > FIRST) {
-                position--;
-                update();
-            }
-        }
-    };
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        resources = getResources();
-        setContentView(R.layout.tutorial_base_layout);
-
-        root = (RelativeLayout) findViewById(R.id.tutorial_root);
-
-        RelativeLayout.LayoutParams backParam = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
-        backParam.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
-        backParam.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
-        RelativeLayout.LayoutParams nextParam = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
-        nextParam.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
-        nextParam.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
-
-        containerParams.addRule(RelativeLayout.BELOW, R.id.tutorial_std_title);
-        containerParams.addRule(RelativeLayout.ABOVE, R.id.tutorial_navigation_container);
-        bigMarginParams.setMargins(0,0,0,Tuils.dpToPx(resources, resources.getInteger(R.integer.tutorial_items_bigmargin)));
-        smallMarginParams.setMargins(0,0,0,Tuils.dpToPx(resources, resources.getInteger(R.integer.tutorial_items_smallmargin)));
-
-        back = (TextView) findViewById(R.id.tutorial_navigation_back);
-        back.setOnClickListener(backListener);
-        back.setTypeface(lucidaConsole);
-
-        next = (TextView) findViewById(R.id.tutorial_navigation_next);
-        next.setOnClickListener(nextListener);
-        next.setTypeface(lucidaConsole);
-
-        title = (TextView) findViewById(R.id.tutorial_std_title);
-        title.setTypeface(lucidaConsole);
-
-        inflater = getLayoutInflater();
-        lucidaConsole = Typeface.createFromAsset(getAssets(), "lucida_console.ttf");
-
-        update();
-    }
-
-    private void update() {
-        View remove = root.findViewById(R.id.tutorial_container);
-        if(remove != null) {
-            root.removeView(remove);
-        }
-
-        back.setText(R.string.tutorial_navigation_left);
-        next.setText(R.string.tutorial_navigation_right);
-
-        View view = getView(inflater);
-        view.setId(R.id.tutorial_container);
-
-        if(position == FIRST) {
-            TextView introduction = (TextView) view.findViewById(R.id.tutorial_first_title);
-            introduction.setTypeface(lucidaConsole);
-
-            TextView version = back;
-            version.setText("vrs. " + BuildConfig.VERSION_NAME);
-
-            title.setText(Tuils.EMPTYSTRING);
-
-            if(!visited[position]) {
-                Animator nextAnimator = new Animator(next);
-                Animator versionAnimator = new Animator(version).setChained(nextAnimator);
-                new Animator(introduction, getString(R.string.tutorial_title)).setChained(versionAnimator).animate();
-            } else {
-                introduction.setText(R.string.tutorial_title);
-            }
-        } else if(position == END) {
-
-            TextView author = (TextView) view.findViewById(R.id.tutorial_end_label1);
-            author.setTypeface(lucidaConsole);
-            TextView location = (TextView) view.findViewById(R.id.tutorial_end_label2);
-            location.setTypeface(lucidaConsole);
-
-            title.setText(Tuils.EMPTYSTRING);
-
-            final String email = "andreuzzi.francesco@gmail.com";
-            String name = "Francesco Andreuzzi";
-
-            ImageView git = (ImageView) view.findViewById(R.id.tutorial_end_github), mail = (ImageView) view.findViewById(R.id.tutorial_end_gmail),
-                    googlep = (ImageView) view.findViewById(R.id.tutorial_end_googlep);
-
-            git.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/Andre1299/TUI-ConsoleLauncher"));
-                    startActivity(browserIntent);
-                }
-            });
-
-            mail.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    Intent intent = new Intent(Intent.ACTION_SENDTO);
-                    intent.setData(Uri.parse("mailto:"));
-                    intent.putExtra(Intent.EXTRA_EMAIL, new String[]{email});
-                    intent.putExtra(Intent.EXTRA_SUBJECT, "About T-UI");
-                    if (intent.resolveActivity(getPackageManager()) != null) {
-                        startActivity(intent);
-                    }
-                }
-            });
-
-            googlep.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    final Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( "https://plus.google.com/communities/103936578623101446195") );
-                    if (intent.resolveActivity(getPackageManager()) != null) {
-                        startActivity(intent);
-                    }
-                }
-            });
-
-            if(!visited[position]) {
-                Animator a2 = new Animator(location, email);
-                new Animator(author, name).setChained(a2).animate();
-
-                new Animator(mail).setChained(new Animator(git).setChained(new Animator(googlep))).animate();
-            } else {
-                location.setText(email);
-                author.setText(name);
-            }
-        } else {
-            buildTutorial((LinearLayout) view.findViewById(R.id.tutorial_std_container), title, position);
-        }
-
-        visited[position] = true;
-
-        root.addView(view, 0, containerParams);
-    }
-
-    private void buildTutorial(LinearLayout container, TextView title, int position) {
-        TypedArray ta = resources.obtainTypedArray(R.array.tutorial);
-        CharSequence[] strings = ta.getTextArray(position - 1);
-        ta.recycle();
-
-        title.setText(strings[0]);
-        title.setTypeface(lucidaConsole);
-
-        for(int count = 1; count < strings.length; count++) {
-            String bigSpaceString = strings[count].subSequence(0,1).toString(), isCommandString = strings[count].subSequence(1,2).toString();
-            if(!bigSpaceString.equals("0") && !bigSpaceString.equals("1") && !isCommandString.equals("0") && !isCommandString.equals("1")) {
-                bigSpaceString = "0";
-                isCommandString = "1";
-            } else {
-                strings[count] = strings[count].subSequence(2,strings[count].length());
-            }
-
-            boolean bigSpace = bigSpaceString.equals("0");
-            boolean isCommand = isCommandString.equals("0");
-
-            TextView textView = new TextView(this);
-
-            int styleRes = isCommand ? R.style.Tutorial_Text_Primary : R.style.Tutorial_Text_Secondary;
-            textView.setTextAppearance(this, styleRes);
-            textView.setTypeface(lucidaConsole);
-
-            container.addView(textView, bigSpace ? bigMarginParams : smallMarginParams);
-
-            if(isCommand && !visited[position]) {
-                new Animator(textView, strings[count].toString()).animate();
-            } else {
-                textView.setText(strings[count]);
-            }
-        }
-    }
-
-    private View getView(LayoutInflater inflater) {
-        int res;
-        if(position == FIRST) {
-            res = R.layout.tutorial_first_layout;
-        } else if(position == END) {
-            res = R.layout.tutorial_end_layout;
-        } else {
-            ScrollView scrollView = new ScrollView(this);
-            scrollView.setClipToPadding(false);
-            if(Build.VERSION.SDK_INT >= 9) {
-                scrollView.setOverScrollMode(ScrollView.OVER_SCROLL_NEVER);
-            }
-
-            LinearLayout container = new LinearLayout(this);
-            container.setOrientation(LinearLayout.VERTICAL);
-            container.setId(R.id.tutorial_std_container);
-
-            scrollView.addView(container);
-
-            return scrollView;
-        }
-
-        return inflater.inflate(res, null);
-    }
-}
diff --git a/app/src/main/res/drawable/big_icon.png b/app/src/main/res/drawable/big_icon.png
deleted file mode 100755
index 94753f9d9e89d0a41207bbda978216e79cc4bd11..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 33045
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

diff --git a/app/src/main/res/drawable/ic_email.png b/app/src/main/res/drawable/ic_email.png
deleted file mode 100755
index 6608943db52b2c0fd79ee9003f4cf08bd215bf40..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1964
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

diff --git a/app/src/main/res/drawable/ic_git.png b/app/src/main/res/drawable/ic_git.png
deleted file mode 100755
index d001e67a3dd88ffbd4461c99bbaec450872b0bfb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2781
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

diff --git a/app/src/main/res/drawable/ic_googlep.png b/app/src/main/res/drawable/ic_googlep.png
deleted file mode 100755
index bf9148b37fdc0ac29d8b78d8578933bc80351343..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2461
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

diff --git a/app/src/main/res/drawable/tutorial_end_icon_bg.xml b/app/src/main/res/drawable/tutorial_end_icon_bg.xml
deleted file mode 100755
index 5815491..0000000
--- a/app/src/main/res/drawable/tutorial_end_icon_bg.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="oval">
-
-    <solid android:color="@android:color/white"/>
-
-</shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/about_device_view.xml b/app/src/main/res/layout/about_device_view.xml
index f154ea3..758411b 100755
--- a/app/src/main/res/layout/about_device_view.xml
+++ b/app/src/main/res/layout/about_device_view.xml
@@ -14,4 +14,12 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content" />
 
+    <TextView android:id="@+id/battery_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+
+    <TextView android:id="@+id/time_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+
 </LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/tutorial_base_layout.xml b/app/src/main/res/layout/tutorial_base_layout.xml
deleted file mode 100755
index c815b1e..0000000
--- a/app/src/main/res/layout/tutorial_base_layout.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/tutorial_root"
-
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-
-    android:background="@color/default_bg_color">
-
-    <TextView style="@style/Tutorial.Text.Title"
-        android:paddingBottom="@dimen/tutorial_title_marginbottom"/>
-
-    <LinearLayout android:id="@+id/tutorial_navigation_container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-
-        android:layout_alignParentBottom="true">
-
-        <TextView style="@style/Tutorial.Navigation.Left"/>
-
-        <TextView style="@style/Tutorial.Navigation.Right"/>
-
-    </LinearLayout>
-
-</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/tutorial_end_layout.xml b/app/src/main/res/layout/tutorial_end_layout.xml
deleted file mode 100755
index 8615820..0000000
--- a/app/src/main/res/layout/tutorial_end_layout.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <LinearLayout android:id="@+id/tutorial_logo_container"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-
-        android:orientation="vertical"
-        android:weightSum="2">
-
-        <LinearLayout android:id="@+id/tutorial_end_icons_container"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_weight="1"
-
-            android:orientation="horizontal"
-            android:gravity="center_vertical"
-
-            android:weightSum="@integer/tutorial_end_icon_weightsum">
-
-            <View style="@style/Tutorial.End.IconRow"/>
-
-            <ohi.andre.consolelauncher.tuils.SquareImageView style="@style/Tutorial.End.Icon"
-                android:id="@+id/tutorial_end_gmail"
-
-                android:src="@drawable/ic_email"/>
-
-            <View style="@style/Tutorial.End.IconRow"/>
-
-            <ohi.andre.consolelauncher.tuils.SquareImageView style="@style/Tutorial.End.Icon"
-                android:id="@+id/tutorial_end_github"
-
-                android:src="@drawable/ic_git"/>
-
-            <View style="@style/Tutorial.End.IconRow"/>
-
-            <ohi.andre.consolelauncher.tuils.SquareImageView style="@style/Tutorial.End.Icon"
-                android:id="@+id/tutorial_end_googlep"
-
-                android:src="@drawable/ic_googlep"/>
-
-            <View style="@style/Tutorial.End.IconRow"/>
-
-        </LinearLayout>
-
-    </LinearLayout>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-
-        android:orientation="vertical"
-        android:gravity="center_horizontal"
-
-        android:layout_centerInParent="true">
-
-        <TextView style="@style/TextAppearance.AppCompat.Body1"
-            android:id="@+id/tutorial_end_label1"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-
-            android:textColor="@color/default_output_color"/>
-
-        <TextView style="@style/TextAppearance.AppCompat.Body1"
-            android:id="@+id/tutorial_end_label2"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-
-            android:textColor="@color/default_output_color"/>
-
-    </LinearLayout>
-
-</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/tutorial_first_layout.xml b/app/src/main/res/layout/tutorial_first_layout.xml
deleted file mode 100755
index 69185c3..0000000
--- a/app/src/main/res/layout/tutorial_first_layout.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <LinearLayout android:id="@+id/tutorial_logo_container"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-
-        android:orientation="vertical"
-        android:weightSum="2">
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_weight="1"
-
-            android:weightSum="@integer/tutorial_bigicon_weightsum"
-            android:gravity="center">
-
-            <ImageView
-                android:layout_width="0dp"
-                android:layout_weight="@integer/tutorial_bigicon_weight"
-                android:layout_height="wrap_content"
-
-                android:scaleType="fitCenter"
-                android:adjustViewBounds="true"
-                android:src="@drawable/big_icon"/>
-
-        </LinearLayout>
-
-    </LinearLayout>
-
-    <TextView style="@style/Tutorial.Text.Secondary"
-        android:id="@+id/tutorial_first_title"
-
-        android:layout_centerInParent="true"/>
-
-</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values-h1024dp/dimension.xml b/app/src/main/res/values-h1024dp/dimension.xml
index 1e0872c..b3b54ef 100755
--- a/app/src/main/res/values-h1024dp/dimension.xml
+++ b/app/src/main/res/values-h1024dp/dimension.xml
@@ -5,8 +5,4 @@
     <dimen name="suggestion_height">60dp</dimen>
     <dimen name="tools_height">35dp</dimen>
 
-    <dimen name="tutorial_vertical_margin">26dp</dimen>
-
-    <dimen name="tutorial_title_marginbottom">22dp</dimen>
-
 </resources>
diff --git a/app/src/main/res/values-h320dp/dimension.xml b/app/src/main/res/values-h320dp/dimension.xml
index fca9b04..159bde8 100755
--- a/app/src/main/res/values-h320dp/dimension.xml
+++ b/app/src/main/res/values-h320dp/dimension.xml
@@ -5,6 +5,4 @@
     <dimen name="suggestion_height">50dp</dimen>
     <dimen name="tools_height">22dp</dimen>
 
-    <dimen name="tutorial_title_marginbottom">15dp</dimen>
-
 </resources>
diff --git a/app/src/main/res/values-h720dp/dimension.xml b/app/src/main/res/values-h720dp/dimension.xml
index 4f0fbf2..5367d0f 100755
--- a/app/src/main/res/values-h720dp/dimension.xml
+++ b/app/src/main/res/values-h720dp/dimension.xml
@@ -5,8 +5,4 @@
     <dimen name="suggestion_height">55dp</dimen>
     <dimen name="tools_height">30dp</dimen>
 
-    <dimen name="tutorial_vertical_margin">22dp</dimen>
-
-    <dimen name="tutorial_title_marginbottom">18dp</dimen>
-
 </resources>
diff --git a/app/src/main/res/values/dimension.xml b/app/src/main/res/values/dimension.xml
index f862bd8..73f019e 100755
--- a/app/src/main/res/values/dimension.xml
+++ b/app/src/main/res/values/dimension.xml
@@ -6,8 +6,4 @@
     <dimen name="cursor_width">8dp</dimen>
     <dimen name="tools_height">15dp</dimen>
 
-    <dimen name="tutorial_end_icons_padding">10dp</dimen>
-    <dimen name="tutorial_navigation_padding">15dp</dimen>
-    <dimen name="tutorial_title_marginbottom">10dp</dimen>
-
 </resources>
diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml
deleted file mode 100755
index ca9d4a9..0000000
--- a/app/src/main/res/values/ids.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <item name="tutorial_navigation_next" type="id"/>
-    <item name="tutorial_navigation_back" type="id"/>
-
-    <item name="tutorial_container" type="id"/>
-    <item name="tutorial_std_container" type="id"/>
-    <item name="tutorial_std_title" type="id"/>
-
-</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/integers.xml b/app/src/main/res/values/integers.xml
index 3b1df68..775d29d 100755
--- a/app/src/main/res/values/integers.xml
+++ b/app/src/main/res/values/integers.xml
@@ -10,13 +10,4 @@
     <integer name="tools_view_weightsum">4</integer>
     <integer name="tools_view_weight">1</integer>
 
-    <integer name="tutorial_bigicon_weightsum">3</integer>
-    <integer name="tutorial_bigicon_weight">1</integer>
-
-    <integer name="tutorial_items_bigmargin">35</integer>
-    <integer name="tutorial_items_smallmargin">15</integer>
-
-    <integer name="tutorial_end_icon_weightsum">7</integer>
-    <integer name="tutorial_end_icon_weight">1</integer>
-
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6d07d0b..99ea4d5 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -133,9 +133,10 @@
     <string name="help_apps">Manage your apps
         \n\nUsage:
         \n>>apps [option] [app name]
-        \n\n-lshidden -> show hidden apps
+        \n\n-lsh -> show hidden apps
         \n-show -> show an hidden application
         \n-hide -> hide an application
+        \n-l -> show details about an application
         \n-ps -> show Google Play Store page for this app
         \n-st -> show Settings details for this app
         \n-frc -> force t-ui to open this app
@@ -161,7 +162,6 @@
         \nUsage: call [number] OR [name] (if you don\'t specify a number or a name you will get the list of your contacts)
         \n\n>>call James
     </string>
-    <string name="help_contacts">Print your contacts</string>
     <string name="help_config">Manage your config files.
         \nUsage:
         \n>>config [option] [file OR config_entry] [*value]
@@ -236,6 +236,7 @@
         \nt>>tui [option]
         \n\n-rm -> remove t-ui
         \n-about -> show info about the developer and the current version</string>
+        \n-reset -> Removes t-ui folder and resets default settings (restart required)
     <string name="help_tutorial">Go to T-UI tutorial page</string>
     <string name="help_uninstall">Uninstall an application
         \nUsage:
@@ -274,7 +275,7 @@
         \nUsage:
         \ncntcts [option] [*optional* contact]
         \n\n-ls -> list your contacts
-        \n-show -> show details about a contact
+        \n-l -> show details about a contact
         \n-new -> create a new contact
         \n-edit -> edit an existing contact
         \n-rm -> remove a contact
@@ -306,105 +307,6 @@
     <string name="start_notification">T-UI started</string>
     <string name="tui_running">T-UI is running</string>
 
-    <!-- tutorial -->
-    <string name="tutorial_title">A brief introduction</string>
-
-    <string name="tutorial_navigation_right">- - &gt;</string>
-    <string name="tutorial_navigation_left">&lt; - -</string>
-    <string name="tutorial_navigation">End</string>
-    
-    <string-array name="tutorial_help">
-        <item>the command \"help\"</item>
-        <item>11help gives you information about commands that comes with T-UI. click on the input area on the bottom of the screen and type \"help\".</item>
-        <item>10$ help</item>
-        <item>01A\nabout airplane alias aliasfile apps\nB\n...</item>
-        <item>11\"help\" has also an other important feature: it works like Linux\'s man, therefore it tells you how to use a command. For example:</item>
-        <item>10$ help search</item>
-        <item>11will prints this:</item>
-        <item>@string/help_search</item>
-    </string-array>
-    
-    <string-array name="tutorial_apps">
-        <item>how to use your apps</item>
-        <item>11you can launch an app typing its name (or package name) in the input area. For example</item>
-        <item>10$ Chrome</item>
-        <item>01--> com.google.android.apps.chrome.Main</item>
-        <item>11you should also know something about the command \"apps\", which lets you know what apps are installed on your device and provides some shortcuts (mostly to Play Store and Settings)
-            \nTherefore, to learn something about this command:</item>
-        <item>10$ help apps</item>
-        <item>@string/help_apps</item>
-    </string-array>
-    
-    <string-array name="tutorial_usefulcommands">
-        <item>some useful commands</item>
-        <item>11you can call a contact of yours with the command \"call\"</item>
-        <item>00$ call Francesco Andreuzzi</item>
-        <item>11if you want to remove an app from your device use the command \"uninstall\"</item>
-        <item>00$ uninstall AwfulAppName</item>
-        <item>11use \"calc\" for quick math operations</item>
-        <item>00$ calc sqrt(4 * 6 + (189 % 3))</item>
-        <item>11you can also use rm, cp and mv for file-management</item>
-        <item>00$ mv /storage/sdcard0/Downloads/file.txt /storage/sdcard1/Docs</item>
-        <item>11use \"open\" to view files saved on your phone</item>
-        <item>00$ open /storage/sdcard0/Downloads/file.txt</item>
-        <item>11use the command \"clear\" to clean the screen, and \"restart\" to reboot T-UI (and apply setting changes)</item>
-        <item>10$ clear</item>
-        <item>10$ restart</item>
-    </string-array>
-    
-    <string-array name="tutorial_oscommands">
-        <item>control your device</item>
-        <item>11you can toggle your WI-FI connection with the command \"wifi\"</item>
-        <item>00$ wifi</item>
-        <item>11the command \"flash\" lets you turn on or off the flashlight in no time</item>
-        <item>00$ flash</item>
-        <item>11there are many commands like these, for example:</item>
-        <item>10$ airplane</item>
-        <item>10$ bluetooth</item>
-        <item>10$ data true</item>
-        <item>10$ data false</item>
-    </string-array>
-    
-    <string-array name="tutorial_tuixt">
-        <item>tuixt - text editor</item>
-        <item>11the release 5.0 introduced tuixt, the built-in text editor of T-UI. you can start it with this command</item>
-        <item>10$ tuixt [path to file]</item>
-        <item>01the file can also be non existent, in that case tuixt will create it</item>
-        <item>11use the command \"save\" to apply changes on the file, or you will lose them</item>
-        <item>00$ save</item>
-        <item>11the command \"exit\" closes tuixt (without saving!) and brings you to your home screen</item>
-        <item>00$ exit</item>
-    </string-array>
-    
-    <string-array name="tutorial_settings">
-        <item>settings and aliases</item>
-        <item>11T-UI is an highly customizable launcher. you can start using the command \"tuisettings\" which opens a text file called \"settings.txt\"</item>
-        <item>10$ tuisettings</item>
-        <item>11as you will see it contains many lines of \"properties\" written with the scheme \"propertyName=propertyValue\".
-            \ndo not ever edit propertyName, or you\'ll break that feature. just change propertyValue
-            \nfor example:</item>
-        <item>11backgroundColor=#ff000000</item>
-        <item>01if you change #ff000000 (hexadecimal code) to #ffff0000 your background will become red</item>
-        <item>11aliases are one of the most powerful features of T-UI. you can assign a name to a command you use frequently and make it quicker to use
-            \nstart using the command \"aliasfile\"</item>
-        <item>10$ aliasfile</item>
-        <item>11this will open a file called \"alias.txt\" which already contains two aliases I created to show you how they work.
-            \nthe scheme is easy to understand: aliasName=command
-            \nyou can now create your personal aliases appending them to the file (one per line)</item>
-        <item>11you can use an alias typing its name in the input area and clicking enter. for example</item>
-        <item>10$ st</item>
-        <item>01--> com.android.settings.Settings</item>
-    </string-array>
-    
-    <array name="tutorial">
-        <item>@array/tutorial_help</item>
-        <item>@array/tutorial_apps</item>
-        <item>@array/tutorial_usefulcommands</item>
-        <item>@array/tutorial_oscommands</item>
-        <item>@array/tutorial_tuixt</item>
-        <item>@array/tutorial_settings</item>
-    </array>
-
 
 
 </resources>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 6f391a7..6d60d4f 100755
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -35,57 +35,4 @@
         <item name="android:scaleType">fitCenter</item>
     </style>
 
-
-    <!--tutorial-->
-    <style name="Tutorial"/>
-
-    <style name="Tutorial.Text" parent="TextAppearance.AppCompat.Subhead">
-        <item name="android:layout_width">wrap_content</item>
-        <item name="android:layout_height">wrap_content</item>
-    </style>
-    <style name="Tutorial.Text.Primary" parent="Tutorial.Text">
-        <item name="android:textColor">@color/default_input_color</item>
-    </style>
-    <style name="Tutorial.Text.Secondary" parent="Tutorial.Text">
-        <item name="android:textColor">@color/default_output_color</item>
-    </style>
-    <style name="Tutorial.Text.Title" parent="TextAppearance.AppCompat.Title">
-        <item name="android:layout_width">wrap_content</item>
-        <item name="android:layout_height">wrap_content</item>
-        <item name="android:textColor">@color/default_input_color</item>
-        <item name="android:id">@id/tutorial_std_title</item>
-    </style>
-
-    <style name="Tutorial.Navigation" parent="TextAppearance.AppCompat.Headline">
-        <item name="android:layout_width">0dp</item>
-        <item name="android:layout_height">wrap_content</item>
-        <item name="android:layout_weight">1</item>
-
-        <item name="android:padding">@dimen/tutorial_navigation_padding</item>
-        <item name="android:gravity">center_horizontal</item>
-
-        <item name="android:textColor">@color/default_input_color</item>
-    </style>
-    <style name="Tutorial.Navigation.Right" parent="Tutorial.Navigation">
-        <item name="android:text">@string/tutorial_navigation_right</item>
-        <item name="android:id">@id/tutorial_navigation_next</item>
-    </style>
-    <style name="Tutorial.Navigation.Left" parent="Tutorial.Navigation">
-        <item name="android:text">@string/tutorial_navigation_left</item>
-        <item name="android:id">@id/tutorial_navigation_back</item>
-    </style>
-
-    <style name="Tutorial.End"/>
-    <style name="Tutorial.End.IconRow">
-        <item name="android:layout_width">0dp</item>
-        <item name="android:layout_weight">@integer/tutorial_end_icon_weight</item>
-        <item name="android:layout_height">wrap_content</item>
-    </style>
-    <style name="Tutorial.End.Icon" parent="Tutorial.End.IconRow">
-        <item name="android:adjustViewBounds">true</item>
-        <item name="android:scaleType">centerCrop</item>
-        <item name="android:background">@drawable/tutorial_end_icon_bg</item>
-        <item name="android:padding">@dimen/tutorial_end_icons_padding</item>
-    </style>
-
 </resources>
-- 
GitLab