Skip to content
Snippets Groups Projects
Commit f6f19b63 authored by Francesco Andreuzzi's avatar Francesco Andreuzzi
Browse files

5.2.1

parent 29f9bc81
No related branches found
No related tags found
No related merge requests found
Showing
with 333 additions and 122 deletions
......@@ -9,8 +9,8 @@ android {
minSdkVersion 8
targetSdkVersion 23
versionCode 86
versionName "5.1"
versionCode 88
versionName "5.2.1"
}
buildTypes {
......@@ -28,7 +28,7 @@ android {
}
dependencies {
compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.github.Andre1299:CompareString:1.4.2'
}
......
......@@ -17,6 +17,7 @@
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
......@@ -94,10 +95,69 @@
<activity
android:name=".commands.tuixt.TuixtActivity"
android:theme="@style/Custom.Solid"
android:windowSoftInputMode="stateAlwaysVisible|adjustResize">
android:windowSoftInputMode="stateAlwaysVisible|adjustResize"
android:label="@string/tuixt_label">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".LauncherActivity" />
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.EDIT"/>
<data android:mimeType="text/*"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="*"
android:pathPattern=".*\\.js"
android:scheme="file" />
<data
android:host="*"
android:pathPattern=".*\\.htm"
android:scheme="file" />
<data
android:host="*"
android:pathPattern=".*\\.html"
android:scheme="file" />
<data
android:host="*"
android:pathPattern=".*\\.xhtml"
android:scheme="file" />
<data
android:host="*"
android:pathPattern=".*\\.php"
android:scheme="file" />
<data
android:host="*"
android:pathPattern=".*\\.ini"
android:scheme="file" />
<data
android:host="*"
android:pathPattern=".*\\.sh"
android:scheme="file" />
<data
android:host="*"
android:pathPattern=".*\\.log"
android:scheme="file" />
<data
android:host="*"
android:pathPattern=".*\\.db"
android:scheme="file" />
<data
android:host="*"
android:pathPattern=".*\\.conf"
android:scheme="file" />
<data
android:host="*"
android:pathPattern=".*\\.cfg"
android:scheme="file" />
</intent-filter>
</activity>
<activity android:name=".tuils.tutorial.TutorialActivity"
......
......@@ -2,7 +2,6 @@ package ohi.andre.consolelauncher;
import android.Manifest;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
......@@ -11,10 +10,13 @@ import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
......@@ -36,10 +38,9 @@ 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 Activity implements Reloadable {
public class LauncherActivity extends AppCompatActivity implements Reloadable {
private final String FIRSTACCESS_KEY = "x1";
private final int FILEUPDATE_DELAY = 300;
public static final int COMMAND_REQUEST_PERMISSION = 10;
public static final int STARTING_PERMISSION = 11;
......@@ -47,8 +48,6 @@ public class LauncherActivity extends Activity implements Reloadable {
public static final int TUIXT_REQUEST = 10;
View decorView;
private UIManager ui;
private MainManager main;
......@@ -111,8 +110,6 @@ public class LauncherActivity extends Activity implements Reloadable {
editor.commit();
startActivity(new Intent(this, TutorialActivity.class));
this.finish();
return;
}
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
......@@ -130,7 +127,7 @@ public class LauncherActivity extends Activity implements Reloadable {
private void finishOnCreate() {
File tuiFolder = getFolder();
File tuiFolder = Tuils.getFolder();
Resources res = getResources();
starterIntent = getIntent();
......@@ -139,6 +136,7 @@ public class LauncherActivity extends Activity implements Reloadable {
} catch (IOException e) {
this.startActivity(new Intent(this, LauncherActivity.class));
this.finish();
return;
}
boolean showNotification = Boolean.parseBoolean(preferencesManager.getValue(PreferencesManager.NOTIFICATION));
......@@ -152,16 +150,26 @@ public class LauncherActivity extends Activity implements Reloadable {
DevicePolicyManager policy = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName component = new ComponentName(this, PolicyReceiver.class);
fullscreen = Boolean.parseBoolean(preferencesManager.getValue(PreferencesManager.FULLSCREEN));
boolean useSystemWP = Boolean.parseBoolean(preferencesManager.getValue(PreferencesManager.USE_SYSTEMWP));
if (useSystemWP) {
if(fullscreen) {
setTheme(R.style.Custom_SystemWP_Fullscreen);
} else {
setTheme(R.style.Custom_SystemWP);
}
} else {
if(fullscreen) {
setTheme(R.style.Custom_Solid_Fullscreen);
} else {
setTheme(R.style.Custom_Solid);
}
}
openKeyboardOnStart = Boolean.parseBoolean(preferencesManager.getValue(PreferencesManager.OPEN_KEYBOARD));
if (!openKeyboardOnStart) {
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
}
setContentView(R.layout.base_view);
......@@ -169,6 +177,7 @@ public class LauncherActivity extends Activity implements Reloadable {
ViewGroup mainView = (ViewGroup) findViewById(R.id.mainview);
main = new MainManager(this, in, out, preferencesManager, policy, component);
ui = new UIManager(main.getMainPack(), this, mainView, ex, policy, component, preferencesManager, main.getMainPack());
main.setRedirectionListener(ui.buildRedirectionListener());
in.in(Tuils.EMPTYSTRING);
ui.focusTerminal();
......@@ -176,28 +185,10 @@ public class LauncherActivity extends Activity implements Reloadable {
System.gc();
}
private File getFolder() {
final File tuiFolder = Tuils.getTuiFolder();
while (true) {
if (tuiFolder != null && (tuiFolder.isDirectory() || tuiFolder.mkdir())) {
break;
}
try {
Thread.sleep(FILEUPDATE_DELAY);
} catch (InterruptedException e) {}
}
return tuiFolder;
}
@Override
protected void onStart() {
super.onStart();
overridePendingTransition(0,0);
if (ui != null && openKeyboardOnStart) {
ui.onStart();
}
......@@ -207,8 +198,6 @@ public class LauncherActivity extends Activity implements Reloadable {
protected void onPause() {
super.onPause();
overridePendingTransition(0,0);
if (ui != null && main != null) {
ui.pause();
main.dispose();
......@@ -293,6 +282,7 @@ public class LauncherActivity extends Activity implements Reloadable {
main.onCommand(info.lastCommand, null);
} else {
ui.setOutput(getString(R.string.output_nopermissions));
main.sendPermissionNotGrantedWarning();
}
break;
case STARTING_PERMISSION:
......@@ -321,6 +311,7 @@ public class LauncherActivity extends Activity implements Reloadable {
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
ui.scrollToEnd();
if(ui != null) ui.scrollToEnd();
}
}
......@@ -4,6 +4,7 @@ import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.Looper;
import android.util.Log;
import ohi.andre.consolelauncher.commands.Command;
......@@ -11,6 +12,7 @@ import ohi.andre.consolelauncher.commands.CommandGroup;
import ohi.andre.consolelauncher.commands.CommandTuils;
import ohi.andre.consolelauncher.commands.ExecutePack;
import ohi.andre.consolelauncher.commands.main.MainPack;
import ohi.andre.consolelauncher.commands.specific.RedirectCommand;
import ohi.andre.consolelauncher.managers.AliasManager;
import ohi.andre.consolelauncher.managers.AppsManager;
import ohi.andre.consolelauncher.managers.ContactManager;
......@@ -20,7 +22,9 @@ import ohi.andre.consolelauncher.tuils.ShellUtils;
import ohi.andre.consolelauncher.tuils.Tuils;
import ohi.andre.consolelauncher.tuils.interfaces.CommandExecuter;
import ohi.andre.consolelauncher.tuils.interfaces.Inputable;
import ohi.andre.consolelauncher.tuils.interfaces.OnRedirectionListener;
import ohi.andre.consolelauncher.tuils.interfaces.Outputable;
import ohi.andre.consolelauncher.tuils.interfaces.Redirectator;
/*Copyright Francesco Andreuzzi
......@@ -38,6 +42,36 @@ limitations under the License.*/
public class MainManager {
private RedirectCommand redirect;
private Redirectator redirectator = new Redirectator() {
@Override
public void prepareRedirection(RedirectCommand cmd) {
redirect = cmd;
if(redirectionListener != null) {
redirectionListener.onRedirectionRequest(cmd);
}
}
@Override
public void cleanup() {
if(redirect != null) {
redirect.beforeObjects.clear();
redirect.afterObjects.clear();
if(redirectionListener != null) {
redirectionListener.onRedirectionEnd(redirect);
}
redirect = null;
}
}
};
private OnRedirectionListener redirectionListener;
public void setRedirectionListener(OnRedirectionListener redirectionListener) {
this.redirectionListener = redirectionListener;
}
private final String COMMANDS_PKG = "ohi.andre.consolelauncher.commands.main.raw";
private CmdTrigger[] triggers = new CmdTrigger[]{
......@@ -84,7 +118,7 @@ public class MainManager {
AppsManager appsMgr = new AppsManager(c, Boolean.parseBoolean(prefsMgr.getValue(PreferencesManager.COMPARESTRING_APPS)), out);
AliasManager aliasManager = new AliasManager(prefsMgr);
mainPack = new MainPack(mContext, prefsMgr, group, aliasManager, appsMgr, music, cont, devicePolicyManager, componentName, c, executer, out);
mainPack = new MainPack(mContext, prefsMgr, group, aliasManager, appsMgr, music, cont, devicePolicyManager, componentName, c, executer, out, redirectator);
}
// command manager
......@@ -92,6 +126,16 @@ public class MainManager {
input = Tuils.removeUnncesarySpaces(input);
if(redirect != null) {
if(!redirect.isWaitingPermission()) {
redirect.afterObjects.add(input);
}
String output = redirect.onRedirect(mainPack);
out.onOutput(output);
return;
}
if(alias != null && showAliasValue) {
out.onOutput(alias + " --> " + "[" + input + "]");
}
......@@ -114,6 +158,10 @@ public class MainManager {
in.in(Tuils.EMPTYSTRING);
}
public void sendPermissionNotGrantedWarning() {
redirectator.cleanup();
}
// dispose
public void dispose() {
mainPack.dispose();
......@@ -225,6 +273,8 @@ public class MainManager {
public void run() {
super.run();
Looper.prepare();
mainPack.lastCommand = input;
try {
......@@ -243,6 +293,7 @@ public class MainManager {
}
}
} catch (Exception e) {
Log.e("andre", "", e);
out.onOutput(e.toString());
}
}
......
......@@ -30,15 +30,16 @@ import java.lang.reflect.Field;
import ohi.andre.consolelauncher.commands.ExecutePack;
import ohi.andre.consolelauncher.commands.main.MainPack;
import ohi.andre.consolelauncher.commands.specific.RedirectCommand;
import ohi.andre.consolelauncher.managers.PreferencesManager;
import ohi.andre.consolelauncher.managers.SkinManager;
import ohi.andre.consolelauncher.managers.suggestions.SuggestionsManager;
import ohi.andre.consolelauncher.managers.TerminalManager;
import ohi.andre.consolelauncher.tuils.ShellUtils;
import ohi.andre.consolelauncher.managers.suggestions.SuggestionRunnable;
import ohi.andre.consolelauncher.managers.suggestions.SuggestionsManager;
import ohi.andre.consolelauncher.tuils.Tuils;
import ohi.andre.consolelauncher.tuils.interfaces.CommandExecuter;
import ohi.andre.consolelauncher.tuils.interfaces.OnNewInputListener;
import ohi.andre.consolelauncher.tuils.interfaces.OnRedirectionListener;
import ohi.andre.consolelauncher.tuils.interfaces.SuggestionViewDecorer;
import ohi.andre.consolelauncher.tuils.stuff.TrashInterfaces;
......@@ -74,6 +75,7 @@ public class UIManager implements OnTouchListener {
}
};
private boolean showSuggestions;
private LinearLayout suggestionsView;
private SuggestionViewDecorer suggestionViewDecorer;
private SuggestionRunnable suggestionRunnable;
......@@ -100,7 +102,7 @@ public class UIManager implements OnTouchListener {
@Override
public void onTextChanged(CharSequence s, int st, int b, int c) {
if (suggestionsView == null || suggestionsManager == null) {
if (suggestionsView == null || suggestionsManager == null || !showSuggestions) {
return;
}
......@@ -114,8 +116,7 @@ public class UIManager implements OnTouchListener {
}
@Override
public void afterTextChanged(Editable s) {
}
public void afterTextChanged(Editable s) {}
};
private boolean executeOnSuggestionClick;
......@@ -253,17 +254,17 @@ public class UIManager implements OnTouchListener {
this.info.skinManager = skinManager;
if (!skinManager.getUseSystemWp()) {
rootView.setBackgroundColor(skinManager.getBgColor());
if (!skinManager.useSystemWp) {
rootView.setBackgroundColor(skinManager.bgColor);
}
ram = (TextView) rootView.findViewById(R.id.ram_tv);
TextView deviceInfo = (TextView) rootView.findViewById(R.id.deviceinfo_tv);
boolean showRam = Boolean.parseBoolean(prefsMgr.getValue(PreferencesManager.SHOWRAM));
if (showRam) {
ram.setTextColor(skinManager.getRamColor());
ram.setTextColor(skinManager.ramColor);
ram.setTextSize(skinManager.getRamSize());
ram.setTypeface(skinManager.getUseSystemFont() ? Typeface.DEFAULT : lucidaConsole);
ram.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole);
memory = new ActivityManager.MemoryInfo();
activityManager = (ActivityManager) context.getSystemService(Activity.ACTIVITY_SERVICE);
......@@ -277,16 +278,15 @@ public class UIManager implements OnTouchListener {
boolean showDevice = Boolean.parseBoolean(prefsMgr.getValue(PreferencesManager.SHOWDEVICE));
if (showDevice) {
String deviceName = getDeviceName(prefsMgr);
String deviceName = skinManager.deviceName;
deviceInfo.setText(deviceName);
deviceInfo.setTextColor(skinManager.getDeviceColor());
deviceInfo.setTextColor(skinManager.deviceColor);
deviceInfo.setTextSize(skinManager.getDeviceSize());
deviceInfo.setTypeface(skinManager.getUseSystemFont() ? Typeface.DEFAULT : lucidaConsole);
deviceInfo.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole);
} else {
deviceInfo.setVisibility(View.GONE);
deviceInfo = null;
}
final boolean inputBottom = Boolean.parseBoolean(prefsMgr.getValue(PreferencesManager.INPUTFIELD_BOTTOM));
......@@ -328,10 +328,24 @@ public class UIManager implements OnTouchListener {
pasteView = (ImageButton) inputOutputView.findViewById(R.id.paste_view);
}
if (skinManager.getShowSuggestions()) {
if (skinManager.showSuggestions) {
showSuggestions = true;
HorizontalScrollView sv = (HorizontalScrollView) rootView.findViewById(R.id.suggestions_container);
sv.setFocusable(false);
sv.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus) {
v.clearFocus();
}
}
});
executeOnSuggestionClick = Boolean.parseBoolean(prefsMgr.getValue(PreferencesManager.EXECUTE_ON_SUGGESTION_CLICK));
suggestionsView = (LinearLayout) rootView.findViewById(R.id.suggestions_group);
inputView.addTextChangedListener(textWatcher);
suggestionsManager = new SuggestionsManager(prefsMgr);
......@@ -342,8 +356,12 @@ public class UIManager implements OnTouchListener {
TextView textView = new TextView(mContext);
textView.setOnClickListener(clickListener);
textView.setTypeface(skinManager.getUseSystemFont() ? Typeface.DEFAULT : lucidaConsole);
textView.setTextColor(skinManager.getSuggestionTextColor());
textView.setFocusable(false);
textView.setLongClickable(false);
textView.setClickable(true);
textView.setTypeface(skinManager.systemFont ? Typeface.DEFAULT : lucidaConsole);
textView.setTextColor(skinManager.suggestionTextColor);
textView.setTextSize(skinManager.getSuggestionSize());
textView.setPadding(SkinManager.SUGGESTION_PADDING_HORIZONTAL, SkinManager.SUGGESTION_PADDING_VERTICAL,
......@@ -355,6 +373,7 @@ public class UIManager implements OnTouchListener {
}
};
} else {
showSuggestions = false;
rootView.findViewById(R.id.suggestions_group).setVisibility(View.GONE);
this.textWatcher = null;
this.clickListener = null;
......@@ -412,13 +431,17 @@ public class UIManager implements OnTouchListener {
mTerminalAdapter.setOutput(string);
}
// get device name
private String getDeviceName(PreferencesManager preferencesManager) {
String name = preferencesManager.getValue(PreferencesManager.DEVICENAME);
if (name == null || name.length() == 0 || name.equals("null")) {
return Build.MODEL;
} else {
return name;
public void disableSuggestions() {
if(suggestionsView != null) {
showSuggestions = false;
suggestionsView.setVisibility(View.GONE);
}
}
public void enableSuggestions() {
if(suggestionsView != null) {
showSuggestions = true;
suggestionsView.setVisibility(View.VISIBLE);
}
}
......@@ -508,5 +531,31 @@ public class UIManager implements OnTouchListener {
return v.onTouchEvent(event);
}
public OnRedirectionListener buildRedirectionListener() {
return new OnRedirectionListener() {
@Override
public void onRedirectionRequest(final RedirectCommand cmd) {
((Activity) mContext).runOnUiThread(new Runnable() {
@Override
public void run() {
mTerminalAdapter.setHint(mContext.getString(cmd.getHint()));
disableSuggestions();
}
});
}
@Override
public void onRedirectionEnd(RedirectCommand cmd) {
((Activity) mContext).runOnUiThread(new Runnable() {
@Override
public void run() {
mTerminalAdapter.setDefaultHint();
enableSuggestions();
}
});
}
};
}
}
package ohi.andre.consolelauncher.commands;
import android.content.Context;
import android.content.res.Resources;
import android.util.Log;
import java.util.Arrays;
import ohi.andre.consolelauncher.R;
......
......@@ -11,6 +11,7 @@ public interface CommandAbstraction {
int PLAIN_TEXT = 10;
int FILE = 11;
int PACKAGE = 12;
int HIDDEN_PACKAGE = 20;
int CONTACTNUMBER = 13;
int TEXTLIST = 14;
int SONG = 15;
......
package ohi.andre.consolelauncher.commands;
import android.annotation.SuppressLint;
import android.util.Log;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import ohi.andre.consolelauncher.commands.main.MainPack;
import ohi.andre.consolelauncher.managers.AppsManager;
......@@ -38,7 +36,6 @@ public class CommandTuils {
}
String name = CommandTuils.findName(input);
Log.e("andre", name);
if (!Tuils.isAlpha(name))
return null;
......@@ -116,6 +113,9 @@ public class CommandTuils {
else if (type == CommandAbstraction.PACKAGE && info instanceof MainPack) {
MainPack pack = (MainPack) info;
return packageName(input, pack.appsManager);
} else if (type == CommandAbstraction.HIDDEN_PACKAGE && info instanceof MainPack) {
MainPack pack = (MainPack) info;
return hiddenPackage(input, pack.appsManager);
}
// will always find a textlist
else if (type == CommandAbstraction.TEXTLIST) {
......@@ -318,7 +318,12 @@ public class CommandTuils {
}
private static ArgInfo packageName(String input, AppsManager apps) {
String packageName = apps.findPackage(input);
String packageName = apps.findPackage(input, AppsManager.SHOWN_APPS);
return new ArgInfo(packageName, null, packageName != null, 1);
}
private static ArgInfo hiddenPackage(String input, AppsManager apps) {
String packageName = apps.findPackage(input, AppsManager.HIDDEN_APPS);
return new ArgInfo(packageName, null, packageName != null, 1);
}
......
package ohi.andre.consolelauncher.commands;
import java.util.Objects;
@SuppressWarnings("deprecation")
public abstract class ExecutePack {
......
......@@ -11,9 +11,11 @@ import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Parcel;
import android.util.Size;
import java.io.File;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Objects;
import ohi.andre.consolelauncher.commands.CommandGroup;
......@@ -29,6 +31,7 @@ import ohi.andre.consolelauncher.managers.SkinManager;
import ohi.andre.consolelauncher.tuils.Tuils;
import ohi.andre.consolelauncher.tuils.interfaces.CommandExecuter;
import ohi.andre.consolelauncher.tuils.interfaces.Outputable;
import ohi.andre.consolelauncher.tuils.interfaces.Redirectator;
import ohi.andre.consolelauncher.tuils.interfaces.Reloadable;
/**
......@@ -92,9 +95,11 @@ public class MainPack extends ExecutePack {
public String lastCommand;
public Redirectator redirectator;
public MainPack(Context context, PreferencesManager prefsMgr, CommandGroup commandGroup, AliasManager alMgr, AppsManager appmgr, MusicManager p,
ContactManager c, DevicePolicyManager devicePolicyManager, ComponentName componentName,
Reloadable r, CommandExecuter executeCommand, Outputable outputable) {
Reloadable r, CommandExecuter executeCommand, Outputable outputable, Redirectator redirectator) {
super(commandGroup);
this.outputable = outputable;
......@@ -122,6 +127,8 @@ public class MainPack extends ExecutePack {
this.component = componentName;
this.reloadable = r;
this.redirectator = redirectator;
}
public boolean getSu() {
......@@ -138,6 +145,10 @@ public class MainPack extends ExecutePack {
try {
this.camera = Camera.open();
this.parameters = this.camera.getParameters();
List<Camera.Size> sizes = this.parameters.getSupportedPreviewSizes();
if(sizes != null && sizes.size() > 0) {
this.parameters.setPreviewSize(sizes.get(0).width, sizes.get(0).height);
}
} catch (Exception e) {
this.camera = null;
this.parameters = null;
......
......@@ -15,8 +15,6 @@ import ohi.andre.consolelauncher.tuils.Tuils;
public class apps implements CommandAbstraction {
private final String HIDE_PARAM = "-h";
private final String UNHIDE_PARAM = "-uh";
private final String SHOWHIDDEN_PARAM = "-sh";
private final String PLAYSTORE_PARAM = "-ps";
private final String SETTINGS_PARAM = "-st";
......@@ -31,11 +29,7 @@ public class apps implements CommandAbstraction {
return info.res.getString(helpRes());
}
if (param.equals(HIDE_PARAM)) {
return hideApp(info, app);
} else if (param.equals(UNHIDE_PARAM)) {
return unHideApp(info, app);
} else if (param.equals(PLAYSTORE_PARAM)) {
if (param.equals(PLAYSTORE_PARAM)) {
openPlaystore(info.context, app);
} else if (param.equals(SETTINGS_PARAM)) {
openSettings(info.context, app);
......@@ -49,26 +43,6 @@ public class apps implements CommandAbstraction {
return Tuils.EMPTYSTRING;
}
private String hideApp(MainPack info, String app) {
SharedPreferences.Editor editor = ((Activity) info.context).getPreferences(0).edit();
String result = info.appsManager.hideApp(app);
if (result != null) {
editor.commit();
return result + Tuils.SPACE + info.res.getString(R.string.output_hideapp);
} else
return info.res.getString(R.string.output_appnotfound);
}
private String unHideApp(MainPack info, String app) {
SharedPreferences.Editor editor = ((Activity) info.context).getPreferences(0).edit();
String result = info.appsManager.unhideApp(app);
if (result != null) {
editor.commit();
return result + Tuils.SPACE + info.res.getString(R.string.output_unhideapp);
} else
return info.res.getString(R.string.output_appnotfound);
}
private String showHiddenApps(MainPack info) {
return info.appsManager.printApps(AppsManager.HIDDEN_APPS);
}
......@@ -113,8 +87,6 @@ public class apps implements CommandAbstraction {
@Override
public String[] parameters() {
return new String[]{
HIDE_PARAM,
UNHIDE_PARAM,
SHOWHIDDEN_PARAM,
SETTINGS_PARAM,
PLAYSTORE_PARAM,
......
......@@ -3,7 +3,7 @@ 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.PermanentSuggestionCommand;
import ohi.andre.consolelauncher.commands.specific.PermanentSuggestionCommand;
import ohi.andre.consolelauncher.commands.main.MainPack;
import ohi.andre.consolelauncher.tuils.Tuils;
......
......@@ -29,7 +29,7 @@ public class cp implements CommandAbstraction {
case FileManager.ISFILE:
return info.res.getString(R.string.output_isfile);
case FileManager.IOERROR:
return info.res.getString(R.string.output_ioerror);
return info.res.getString(R.string.output_error);
case FileManager.NOT_READABLE:
return info.res.getString(R.string.output_noreadable);
case FileManager.NOT_WRITEABLE:
......
......@@ -6,11 +6,8 @@ import android.net.NetworkInfo;
import android.net.NetworkInfo.State;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.telephony.TelephonyManager;
import android.util.Log;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import ohi.andre.consolelauncher.R;
import ohi.andre.consolelauncher.commands.CommandAbstraction;
......
......@@ -25,17 +25,14 @@ public class flash implements CommandAbstraction {
return info.res.getString(R.string.output_flashlightnotavailable);
}
if (info.camera == null) {
final boolean flashOn = info.isFlashOn;
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
info.initCamera();
}
if(info.camera == null) {
return info.res.getString(R.string.output_problemcamera);
}
final boolean flashOn = info.isFlashOn;
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
new Thread() {
@Override
public void run() {
......@@ -49,7 +46,11 @@ public class flash implements CommandAbstraction {
setSurfaceTexture(info.camera);
}
try {
info.camera.startPreview();
} catch (Exception e) {
info.camera.release();
}
} else {
info.parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
info.camera.setParameters(info.parameters);
......@@ -58,7 +59,11 @@ public class flash implements CommandAbstraction {
detachSurfaceTexture(info.camera);
}
try {
info.camera.stopPreview();
} catch (Exception e) {
info.camera.release();
}
}
}
}.start();
......@@ -82,14 +87,14 @@ public class flash implements CommandAbstraction {
public static void setSurfaceTexture(Camera camera) {
try {
camera.setPreviewTexture(new SurfaceTexture(0));
} catch (IOException e) {}
} catch (Exception e) {}
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public static void detachSurfaceTexture(Camera camera) {
try {
camera.setPreviewTexture(null);
} catch (IOException e) {}
} catch (Exception e) {}
}
@TargetApi(Build.VERSION_CODES.M)
......
package ohi.andre.consolelauncher.commands.main.raw;
import android.app.Activity;
import android.content.SharedPreferences;
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;
/**
* Created by francescoandreuzzi on 04/03/2017.
*/
public class hideapp implements CommandAbstraction {
@Override
public String exec(ExecutePack pack) throws Exception {
String app = pack.get(String.class, 0);
hideApp((MainPack) pack, app);
return null;
}
@Override
public int minArgs() {
return 1;
}
@Override
public int maxArgs() {
return 1;
}
@Override
public int[] argType() {
return new int[] {CommandAbstraction.PACKAGE};
}
@Override
public int priority() {
return 2;
}
@Override
public int helpRes() {
return R.string.help_appshide;
}
@Override
public String onArgNotFound(ExecutePack pack) {
MainPack info = (MainPack) pack;
return info.res.getString(R.string.output_appnotfound);
}
@Override
public String onNotArgEnough(ExecutePack pack, int nArgs) {
MainPack info = (MainPack) pack;
return info.res.getString(helpRes());
}
@Override
public String[] parameters() {
return null;
}
private String hideApp(MainPack info, String app) {
SharedPreferences.Editor editor = ((Activity) info.context).getPreferences(0).edit();
String result = info.appsManager.hideApp(app);
if (result != null) {
editor.commit();
return result + Tuils.SPACE + info.res.getString(R.string.output_hideapp);
} else
return info.res.getString(R.string.output_appnotfound);
}
}
......@@ -29,7 +29,7 @@ public class mv implements CommandAbstraction {
case FileManager.ISFILE:
return info.res.getString(R.string.output_isfile);
case FileManager.IOERROR:
return info.res.getString(R.string.output_ioerror);
return info.res.getString(R.string.output_error);
case FileManager.NOT_READABLE:
return info.res.getString(R.string.output_noreadable);
case FileManager.NOT_WRITEABLE:
......
......@@ -21,7 +21,7 @@ public class open implements CommandAbstraction {
if (result == FileManager.ISDIRECTORY)
return info.res.getString(R.string.output_isdirectory);
if (result == FileManager.IOERROR)
return info.res.getString(R.string.output_ioerror);
return info.res.getString(R.string.output_error);
return Tuils.EMPTYSTRING;
}
......
......@@ -27,7 +27,7 @@ public class rm implements CommandAbstraction {
case FileManager.ISFILE:
return info.res.getString(R.string.output_isfile);
case FileManager.IOERROR:
return info.res.getString(R.string.output_ioerror);
return info.res.getString(R.string.output_error);
case FileManager.NOT_WRITEABLE:
return info.res.getString(R.string.output_nowriteable);
}
......
......@@ -4,7 +4,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.util.Log;
import java.io.File;
import java.util.ArrayList;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment