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

6.2a

parent 81bb2393
No related branches found
No related tags found
No related merge requests found
Showing
with 230 additions and 635 deletions
......@@ -10,8 +10,8 @@ android {
minSdkVersion 8
targetSdkVersion 23
versionCode 119
versionName "6.1g"
versionCode 121
versionName "6.2b"
}
buildTypes {
......@@ -49,5 +49,5 @@ android {
}
}
dependencies {
// compile files('libs/anrwatchdog-1.3.0.jar')
compile files('libs/anrwatchdog-1.3.0.jar')
}
\ No newline at end of file
......@@ -29,6 +29,14 @@
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission
android:name="android.permission.FLASHLIGHT"
android:description="@string/help_flash"
android:label="@string/help_flash"
android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
android:protectionLevel="normal" />
<!-- features -->
<uses-feature android:name="android.hardware.camera"
......@@ -84,7 +92,8 @@
<receiver
android:name=".tuils.stuff.PolicyReceiver"
android:permission="android.permission.BIND_DEVICE_ADMIN">
android:permission="android.permission.BIND_DEVICE_ADMIN"
android:description="@string/admin_permission">
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/policy" />
......@@ -100,6 +109,10 @@
android:enabled="true"
android:exported="false" />
<service android:name=".managers.music.MusicService"
android:enabled="true"
android:exported="true"/>
<activity
android:name=".commands.tuixt.TuixtActivity"
android:theme="@style/Custom.Solid"
......
......@@ -23,10 +23,8 @@ import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Toast;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import com.github.anrwatchdog.ANRError;
import com.github.anrwatchdog.ANRWatchDog;
import ohi.andre.consolelauncher.commands.main.MainPack;
import ohi.andre.consolelauncher.commands.tuixt.TuixtActivity;
......@@ -37,6 +35,7 @@ import ohi.andre.consolelauncher.managers.notifications.NotificationManager;
import ohi.andre.consolelauncher.managers.notifications.NotificationService;
import ohi.andre.consolelauncher.managers.suggestions.SuggestionsManager;
import ohi.andre.consolelauncher.tuils.Assist;
import ohi.andre.consolelauncher.tuils.InputOutputReceiver;
import ohi.andre.consolelauncher.tuils.KeeperService;
import ohi.andre.consolelauncher.tuils.TimeManager;
import ohi.andre.consolelauncher.tuils.Tuils;
......@@ -71,9 +70,17 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
@Override
public String exec(String input) {
exec(input, false);
return null;
}
@Override
public String exec(String input, boolean needWriteInput) {
if(ui != null && needWriteInput) ui.setOutput(input, TerminalManager.CATEGORY_INPUT);
if(main != null) main.onCommand(input, null);
return null;
}
};
private Inputable in = new Inputable() {
......@@ -115,6 +122,11 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
public void onOutput(CharSequence output, int category) {
if(ui != null) ui.setOutput(output, category);
}
@Override
public void onOutput(int color, CharSequence output) {
ui.setOutput(color, output);
}
};
private Suggester sugg = new Suggester() {
......@@ -147,24 +159,22 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
private void finishOnCreate() {
// new ANRWatchDog(5000)
// .setANRListener(new ANRWatchDog.ANRListener() {
// @Override
// public void onAppNotResponding(ANRError anrError) {
// Tuils.log(anrError);
// Tuils.toFile(anrError);
// }
// })
// .setReportMainThreadOnly()
// .start();
new ANRWatchDog(5000)
.setANRListener(new ANRWatchDog.ANRListener() {
@Override
public void onAppNotResponding(ANRError anrError) {
Tuils.log(anrError);
Tuils.toFile(anrError);
}
})
.setReportMainThreadOnly()
.start();
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
Tuils.log(e);
try {
e.printStackTrace(new PrintStream(new FileOutputStream(new File(Tuils.getFolder(), "crash.txt"), true)));
} catch (FileNotFoundException e1) {}
Tuils.toFile(e);
}
});
......@@ -182,7 +192,9 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
if (showNotification) {
startService(keeperIntent);
} else {
try {
stopService(keeperIntent);
} catch (Exception e) {}
}
fullscreen = XMLPrefsManager.get(boolean.class, XMLPrefsManager.Ui.fullscreen);
......@@ -228,7 +240,7 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
setContentView(R.layout.base_view);
ViewGroup mainView = (ViewGroup) findViewById(R.id.mainview);
main = new MainManager(this, in, out, sugg);
main = new MainManager(this, in, out, sugg, ex);
ui = new UIManager(main.getMainPack(), this, mainView, ex, main.getMainPack(), canApplyTheme);
main.setRedirectionListener(ui.buildRedirectionListener());
main.setHintable(ui.getHintable());
......@@ -250,6 +262,13 @@ public class LauncherActivity extends AppCompatActivity implements Reloadable {
ui.setInput("tutorial");
}
IntentFilter filter = new IntentFilter();
filter.addAction(InputOutputReceiver.ACTION_CMD);
filter.addAction(InputOutputReceiver.ACTION_OUTPUT);
InputOutputReceiver inputOutputReceiver = new InputOutputReceiver(ex, out);
getApplicationContext().registerReceiver(inputOutputReceiver, filter);
System.gc();
}
......
......@@ -2,13 +2,13 @@ package ohi.andre.consolelauncher;
import android.content.Context;
import android.content.Intent;
import android.os.Environment;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import java.io.File;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import ohi.andre.consolelauncher.commands.Command;
......@@ -22,7 +22,7 @@ import ohi.andre.consolelauncher.managers.AppsManager;
import ohi.andre.consolelauncher.managers.ContactManager;
import ohi.andre.consolelauncher.managers.TerminalManager;
import ohi.andre.consolelauncher.managers.XMLPrefsManager;
import ohi.andre.consolelauncher.managers.music.MusicManager;
import ohi.andre.consolelauncher.managers.music.MusicManager2;
import ohi.andre.consolelauncher.tuils.StoppableThread;
import ohi.andre.consolelauncher.tuils.TimeManager;
import ohi.andre.consolelauncher.tuils.Tuils;
......@@ -35,7 +35,7 @@ import ohi.andre.consolelauncher.tuils.interfaces.Redirectator;
import ohi.andre.consolelauncher.tuils.interfaces.Rooter;
import ohi.andre.consolelauncher.tuils.interfaces.Suggester;
import ohi.andre.consolelauncher.tuils.libsuperuser.Shell;
import ohi.andre.consolelauncher.tuils.libsuperuser.StreamGobbler;
import ohi.andre.consolelauncher.tuils.libsuperuser.ShellHolder;
/*Copyright Francesco Andreuzzi
......@@ -107,7 +107,7 @@ public class MainManager {
private Hintable hintable;
protected MainManager(LauncherActivity c, Inputable i, Outputable o, Suggester sugg) {
protected MainManager(LauncherActivity c, Inputable i, Outputable o, Suggester sugg, CommandExecuter executer) {
mContext = c;
in = i;
......@@ -125,43 +125,15 @@ public class MainManager {
cont = new ContactManager(mContext);
} catch (NullPointerException e) {}
CommandExecuter executer = new CommandExecuter() {
@Override
public String exec(String aliasValue, String alias) {
onCommand(aliasValue, alias);
return null;
}
@Override
public String exec(String input) {
onCommand(input, null);
return null;
}
};
MusicManager music = new MusicManager(mContext, out);
MusicManager2 music = new MusicManager2(mContext);
AppsManager appsMgr = new AppsManager(c, out, sugg);
AppsManager appsMgr = new AppsManager(c, sugg);
AliasManager aliasManager = new AliasManager();
interactive = new Shell.Builder()
.setOnSTDOUTLineListener(new StreamGobbler.OnLineListener() {
@Override
public void onLine(String line) {
out.onOutput(line);
}
})
.setOnSTDERRLineListener(new StreamGobbler.OnLineListener() {
@Override
public void onLine(String line) {
out.onOutput(line);
}
})
.open();
interactive.addCommand("cd " + Environment.getExternalStorageDirectory().getAbsolutePath());
ShellHolder shellHolder = new ShellHolder(out);
interactive = shellHolder.build();
mainPack = new MainPack(mContext, group, aliasManager, appsMgr, music, cont, c, executer, out, redirectator);
mainPack = new MainPack(mContext, group, aliasManager, appsMgr, music, cont, c, executer, redirectator, shellHolder);
}
// command manager
......@@ -220,8 +192,17 @@ public class MainManager {
public void destroy() {
mainPack.destroy();
new Thread() {
@Override
public void run() {
super.run();
interactive.kill();
interactive.close();
}
}.start();
}
public MainPack getMainPack() {
return mainPack;
......@@ -318,10 +299,10 @@ public class MainManager {
int timeColor;
int outputColor;
Pattern pa = Pattern.compile("%a", Pattern.CASE_INSENSITIVE);
Pattern pp = Pattern.compile("%p", Pattern.CASE_INSENSITIVE);
Pattern pl = Pattern.compile("%l", Pattern.CASE_INSENSITIVE);
Pattern pn = Pattern.compile("%n", Pattern.CASE_INSENSITIVE);
Pattern pa = Pattern.compile("%a", Pattern.CASE_INSENSITIVE | Pattern.LITERAL);
Pattern pp = Pattern.compile("%p", Pattern.CASE_INSENSITIVE | Pattern.LITERAL);
Pattern pl = Pattern.compile("%l", Pattern.CASE_INSENSITIVE | Pattern.LITERAL);
Pattern pn = Pattern.compile("%n", Pattern.CASE_INSENSITIVE | Pattern.LITERAL);
@Override
public boolean trigger(ExecutePack info, String input) {
......@@ -343,10 +324,10 @@ public class MainManager {
}
String a = new String(appFormat);
a = pa.matcher(a).replaceAll(intent.getComponent().getClassName());
a = pp.matcher(a).replaceAll(intent.getComponent().getPackageName());
a = pl.matcher(a).replaceAll(i.publicLabel);
a = pn.matcher(a).replaceAll(Tuils.NEWLINE);
a = pa.matcher(a).replaceAll(Matcher.quoteReplacement(intent.getComponent().getClassName()));
a = pp.matcher(a).replaceAll(Matcher.quoteReplacement(intent.getComponent().getPackageName()));
a = pl.matcher(a).replaceAll(Matcher.quoteReplacement(i.publicLabel));
a = pn.matcher(a).replaceAll(Matcher.quoteReplacement(Tuils.NEWLINE));
SpannableString text = new SpannableString(a);
text.setSpan(new ForegroundColorSpan(outputColor), 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
......
......@@ -16,8 +16,8 @@ import ohi.andre.consolelauncher.managers.AppsManager;
import ohi.andre.consolelauncher.managers.ContactManager;
import ohi.andre.consolelauncher.managers.FileManager;
import ohi.andre.consolelauncher.managers.FileManager.DirInfo;
import ohi.andre.consolelauncher.managers.music.MusicManager;
import ohi.andre.consolelauncher.managers.XMLPrefsManager;
import ohi.andre.consolelauncher.managers.music.MusicManager2;
import ohi.andre.consolelauncher.managers.notifications.NotificationManager;
import ohi.andre.consolelauncher.tuils.SimpleMutableEntry;
import ohi.andre.consolelauncher.tuils.Tuils;
......@@ -373,7 +373,7 @@ public class CommandTuils {
return new ArgInfo(number, null, number != null, 1);
}
private static ArgInfo song(String input, MusicManager music) {
private static ArgInfo song(String input, MusicManager2 music) {
return new ArgInfo(input, null, true, 1);
}
......
......@@ -22,12 +22,12 @@ import ohi.andre.consolelauncher.managers.AliasManager;
import ohi.andre.consolelauncher.managers.AppsManager;
import ohi.andre.consolelauncher.managers.ContactManager;
import ohi.andre.consolelauncher.managers.SkinManager;
import ohi.andre.consolelauncher.managers.music.MusicManager;
import ohi.andre.consolelauncher.managers.music.MusicManager2;
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;
import ohi.andre.consolelauncher.tuils.interfaces.Rooter;
import ohi.andre.consolelauncher.tuils.libsuperuser.ShellHolder;
/**
* Created by francescoandreuzzi on 24/01/2017.
......@@ -35,8 +35,6 @@ import ohi.andre.consolelauncher.tuils.interfaces.Rooter;
public class MainPack extends ExecutePack {
public Outputable outputable;
// current directory
public File currentDirectory;
......@@ -62,7 +60,7 @@ public class MainPack extends ExecutePack {
public ContactManager contacts;
// music
public MusicManager player;
public MusicManager2 player;
// apps & assocs
public AliasManager aliasManager;
......@@ -84,13 +82,15 @@ public class MainPack extends ExecutePack {
public Redirectator redirectator;
public MainPack(Context context, CommandGroup commandGroup, AliasManager alMgr, AppsManager appmgr, MusicManager p,
ContactManager c, Reloadable r, CommandExecuter executeCommand, Outputable outputable, Redirectator redirectator) {
public ShellHolder shellHolder;
public MainPack(Context context, CommandGroup commandGroup, AliasManager alMgr, AppsManager appmgr, MusicManager2 p,
ContactManager c, Reloadable r, CommandExecuter executeCommand, Redirectator redirectator, ShellHolder shellHolder) {
super(commandGroup);
this.currentDirectory = Environment.getExternalStorageDirectory();
this.outputable = outputable;
this.shellHolder = shellHolder;
this.res = context.getResources();
......@@ -142,7 +142,7 @@ public class MainPack extends ExecutePack {
}
public void destroy() {
player.destroy(this.context);
player.destroy();
appsManager.onDestroy();
}
}
package ohi.andre.consolelauncher.commands.main.generals;
import ohi.andre.consolelauncher.R;
import ohi.andre.consolelauncher.commands.CommandAbstraction;
import ohi.andre.consolelauncher.commands.ExecutePack;
import ohi.andre.consolelauncher.commands.main.MainPack;
public abstract class music implements CommandAbstraction {
@Override
public String exec(ExecutePack info) {
MainPack pack = (MainPack) info;
if (!pack.player.initPlayer())
return pack.res.getString(R.string.output_musicfoldererror);
return null;
}
}
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.tuils.Tuils;
/**
* Created by francescoandreuzzi on 17/07/2017.
*/
public class community implements CommandAbstraction {
@Override
public String exec(ExecutePack pack) throws Exception {
pack.context.startActivity(Tuils.webPage("https://plus.google.com/communities/103936578623101446195"));
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 3;
}
@Override
public int helpRes() {
return R.string.help_community;
}
@Override
public String onArgNotFound(ExecutePack pack, int indexNotFound) {
return null;
}
@Override
public String onNotArgEnough(ExecutePack pack, int nArgs) {
return null;
}
}
package ohi.andre.consolelauncher.commands.main.raw;
import android.os.Environment;
import ohi.andre.consolelauncher.MainManager;
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.libsuperuser.Shell;
import ohi.andre.consolelauncher.tuils.libsuperuser.StreamGobbler;
/**
* Created by francescoandreuzzi on 26/07/2017.
......@@ -27,22 +23,7 @@ public class ctrlc implements CommandAbstraction {
MainManager.interactive.close();
MainManager.interactive = null;
MainManager.interactive = new Shell.Builder()
.setOnSTDOUTLineListener(new StreamGobbler.OnLineListener() {
@Override
public void onLine(String line) {
((MainPack) pack).outputable.onOutput(line);
}
})
.setOnSTDERRLineListener(new StreamGobbler.OnLineListener() {
@Override
public void onLine(String line) {
((MainPack) pack).outputable.onOutput(line);
}
})
.open();
MainManager.interactive.addCommand("cd " + Environment.getExternalStorageDirectory().getAbsolutePath());
MainManager.interactive = ((MainPack) pack).shellHolder.build();
}
}.start();
......
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.commands.main.generals.music;
public class listen extends music {
@Override
public String exec(ExecutePack pack) {
MainPack info = (MainPack) pack;
String output = super.exec(info);
if (output != null)
return output;
String name = info.get(String.class, 0);
String path = info.player.getPath(name);
if (info.player.jukebox(path))
return info.res.getString(R.string.output_playing) + " " + name;
return info.res.getString(R.string.output_nothing_found);
}
@Override
public int helpRes() {
return R.string.help_listen;
}
@Override
public int minArgs() {
return 1;
}
@Override
public int maxArgs() {
return 1;
}
@Override
public int[] argType() {
return new int[]{CommandAbstraction.SONG};
}
@Override
public int priority() {
return 2;
}
@Override
public String onNotArgEnough(ExecutePack pack, int nArgs) {
MainPack info = (MainPack) pack;
return info.res.getString(helpRes());
}
@Override
public String onArgNotFound(ExecutePack pack, int index) {
MainPack info = (MainPack) pack;
return info.res.getString(R.string.output_nothing_found);
}
}
......@@ -3,6 +3,7 @@ package ohi.andre.consolelauncher.commands.main.raw;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
......@@ -17,6 +18,7 @@ import ohi.andre.consolelauncher.R;
import ohi.andre.consolelauncher.commands.ExecutePack;
import ohi.andre.consolelauncher.commands.main.MainPack;
import ohi.andre.consolelauncher.commands.specific.APICommand;
import ohi.andre.consolelauncher.tuils.InputOutputReceiver;
/**
* Created by francescoandreuzzi on 10/05/2017.
......@@ -25,7 +27,7 @@ import ohi.andre.consolelauncher.commands.specific.APICommand;
public class location extends APICommand {
@Override
public String exec(ExecutePack pack) throws Exception {
public String exec(final ExecutePack pack) throws Exception {
Context context = ((MainPack) pack).context;
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED ||
......@@ -42,7 +44,9 @@ public class location extends APICommand {
LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
main.outputable.onOutput("Lat: " + location.getLatitude() + "; Long: " + location.getLongitude());
Intent intent = new Intent(InputOutputReceiver.ACTION_OUTPUT);
intent.putExtra(InputOutputReceiver.TEXT, "Lat: " + location.getLatitude() + "; Long: " + location.getLongitude());
pack.context.sendBroadcast(intent);
}
@Override
......
package ohi.andre.consolelauncher.commands.main.raw;
import ohi.andre.consolelauncher.R;
import ohi.andre.consolelauncher.commands.ExecutePack;
import ohi.andre.consolelauncher.commands.main.MainPack;
import ohi.andre.consolelauncher.commands.main.generals.music;
public class next extends music {
@Override
public String exec(ExecutePack pack) {
MainPack info = (MainPack) pack;
String output = super.exec(info);
if (output != null)
return output;
output = info.player.next();
return info.res.getString(R.string.output_playing) + " " + output;
}
@Override
public int helpRes() {
return R.string.help_next;
}
@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 5;
}
@Override
public String onNotArgEnough(ExecutePack info, int nArgs) {
return null;
}
@Override
public String onArgNotFound(ExecutePack info, int index) {
return null;
}
}
package ohi.andre.consolelauncher.commands.main.raw;
import ohi.andre.consolelauncher.R;
import ohi.andre.consolelauncher.commands.ExecutePack;
import ohi.andre.consolelauncher.commands.main.MainPack;
import ohi.andre.consolelauncher.commands.main.generals.music;
public class previous extends music {
@Override
public String exec(ExecutePack pack) {
MainPack info = (MainPack) pack;
String output = super.exec(info);
if (output != null)
return output;
output = info.player.prev();
return info.res.getString(R.string.output_playing) + " " + output;
}
@Override
public int helpRes() {
return R.string.help_previous;
}
@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 3;
}
@Override
public String onNotArgEnough(ExecutePack info, int nArgs) {
return null;
}
@Override
public String onArgNotFound(ExecutePack info, int index) {
return null;
}
}
......@@ -12,7 +12,7 @@ public class refresh implements CommandAbstraction {
MainPack info = (MainPack) pack;
info.appsManager.fill();
info.aliasManager.reload();
info.player.refresh(info.context);
info.player.refresh();
info.contacts.refreshContacts(info.context);
return info.res.getString(R.string.output_refresh);
......
......@@ -34,14 +34,14 @@ public class search extends ParamCommand {
return playstore(args, pack.context);
}
},
file {
@Override
public String exec(ExecutePack pack) {
List<String> args = pack.get(ArrayList.class, 1);
MainPack p = ((MainPack) pack);
return file(args, p.currentDirectory, p.res, p.outputable);
}
},
// file {
// @Override
// public String exec(ExecutePack pack) {
// List<String> args = pack.get(ArrayList.class, 1);
// MainPack p = ((MainPack) pack);
// return file(args, p.currentDirectory, p.res, p.outputable);
// }
// },
gg {
@Override
public String exec(ExecutePack pack) {
......
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;
public class stop implements CommandAbstraction {
@Override
public String exec(ExecutePack pack) {
MainPack info = (MainPack) pack;
try {
info.player.stop();
} catch (IllegalStateException e) {
return info.res.getString(R.string.output_cantstop);
}
return info.res.getString(R.string.output_stopped);
}
@Override
public int helpRes() {
return R.string.help_stop;
}
@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 3;
}
@Override
public String onNotArgEnough(ExecutePack info, int nArgs) {
return null;
}
@Override
public String onArgNotFound(ExecutePack info, int index) {
return null;
}
}
package ohi.andre.consolelauncher.commands.main.raw;
import ohi.andre.consolelauncher.R;
import ohi.andre.consolelauncher.commands.ExecutePack;
import ohi.andre.consolelauncher.commands.main.MainPack;
import ohi.andre.consolelauncher.commands.main.generals.music;
public class track extends music {
@Override
public String exec(ExecutePack pack) {
MainPack info = (MainPack) pack;
if (info.player.isPlaying())
return info.player.trackInfo();
else
return info.res.getString(R.string.output_nomusic);
}
@Override
public int helpRes() {
return R.string.help_track;
}
@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 2;
}
@Override
public String onNotArgEnough(ExecutePack info, int nArgs) {
return null;
}
@Override
public String onArgNotFound(ExecutePack info, int index) {
return null;
}
}
package ohi.andre.consolelauncher.commands.main.raw;
import java.util.List;
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 andre on 07/08/15.
*/
public class tracks implements CommandAbstraction {
@Override
public String exec(ExecutePack pack) {
MainPack info = (MainPack) pack;
List<String> names = info.player.getNames();
if(names == null) {
return info.res.getString(R.string.output_musicfoldererror);
}
Tuils.addPrefix(names, Tuils.DOUBLE_SPACE);
Tuils.insertHeaders(names, false);
return Tuils.toPlanString(names);
}
@Override
public int helpRes() {
return R.string.help_tracks;
}
@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 2;
}
@Override
public String onNotArgEnough(ExecutePack info, int nArgs) {
return null;
}
@Override
public String onArgNotFound(ExecutePack info, int index) {
return null;
}
}
......@@ -45,6 +45,27 @@ public class tui extends ParamCommand {
return info.res.getString(R.string.version_label) + Tuils.SPACE + BuildConfig.VERSION_NAME + Tuils.NEWLINE + Tuils.NEWLINE + info.res.getString(R.string.output_about);
}
},
telegram {
@Override
public String exec(ExecutePack pack) {
pack.context.startActivity(Tuils.webPage("https://t.me/tuilauncher"));
return null;
}
},
googlep {
@Override
public String exec(ExecutePack pack) {
pack.context.startActivity(Tuils.webPage("https://plus.google.com/communities/103936578623101446195"));
return null;
}
},
twitter {
@Override
public String exec(ExecutePack pack) {
pack.context.startActivity(Tuils.webPage("https://twitter.com/tui_launcher"));
return null;
}
},
reset {
@Override
public String exec(ExecutePack pack) {
......@@ -55,14 +76,6 @@ public class tui extends ParamCommand {
folder {
@Override
public String exec(ExecutePack pack) {
// Intent intent = new Intent(Intent.ACTION_VIEW);
// intent.setData(Uri.fromFile(Tuils.getFolder()));
// pack.context.startActivity(intent);
// Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
// Uri uri = Uri.parse(Tuils.getFolder().getAbsolutePath());
// intent.setDataAndType(uri, "*/*");
// pack.context.startActivity(Intent.createChooser(intent, "Open folder"));
Uri selectedUri = Uri.parse(Tuils.getFolder().getAbsolutePath());
Intent intent = new Intent(Intent.ACTION_VIEW);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment