X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=src%2Fro%2Fieval%2Ffonbot%2FUtils.java;h=40a5e57dfbf66a93a52b772b4de9fe7201544647;hb=a5259b32f390d9adf8bca1b7a4bbb620bde11479;hp=be7923ba5694d7c1eb169c0eb649fc9cfad8f4cc;hpb=0bcf6b2e55caca54187c6011eaa174297480731e;p=fonbot.git diff --git a/src/ro/ieval/fonbot/Utils.java b/src/ro/ieval/fonbot/Utils.java index be7923b..40a5e57 100644 --- a/src/ro/ieval/fonbot/Utils.java +++ b/src/ro/ieval/fonbot/Utils.java @@ -59,7 +59,7 @@ public final class Utils { */ @SuppressWarnings("javadoc") public static enum Command{ - TOAST, ECHO, SMS, FLASH, WIFI, + TOAST, ECHO, SMS, SMSQ, FLASH, WIFI, BLUETOOTH, DIAL, RING, SPEAK, VIBRATE, DIALOG, LOCATION, NOLOCATION, RINGER, NCFILE, PHOTO, SETNOTIFICATION, DELNOTIFICATION, SETPASSWORD, HELP, @@ -68,7 +68,7 @@ public final class Utils { LS, RM, CONTACTS, DISABLE, ENABLE, POLL, HANGUP, ANSWER, LAUNCH, DATA, GPS, GLOCATION, REBOOT, NOTIFY, SCREENCAP, - TORCH, GETFILE + TORCH, GETFILE, SH, ROOTSH } /** @@ -271,6 +271,22 @@ public final class Utils { sendMessage(context, address, toNonNull(context.getString(resource, args))); } + /** + * Send a confirmation message to a certain Address. A confirm message is a message that: + * 1) Confers no information (except for confirming that the command was executed). + * 2) May be dropped if the user asked so. + * + * @param context Context instance + * @param address destination Address + * @param resource String resource for the message text + * @param args format parameters for the resource + */ + public static void sendConfirmMessage(final Context context, final Address address, final int resource, final Object... args){ + final SharedPreferences sp=PreferenceManager.getDefaultSharedPreferences(context); + if(address.protocol != Protocol.SMS || !sp.getBoolean("expensive_sms", false)) + sendMessage(context, address, resource, args); + } + /** * Send a notification to the user. * @@ -447,7 +463,15 @@ public final class Utils { Heavy.help(context, replyTo, toNonNull(Command.SMS)); break; } - Heavy.sms(context, replyTo, toNonNull(args[0]), join(" ", 1, args)); + Heavy.sms(context, replyTo, toNonNull(args[0]), join(" ", 1, args), false); + break; + + case SMSQ: + if(args.length < 2){ + Heavy.help(context, replyTo, toNonNull(Command.SMSQ)); + break; + } + Heavy.sms(context, replyTo, toNonNull(args[0]), join(" ", 1, args), true); break; case FLASH: @@ -680,7 +704,7 @@ public final class Utils { PreferenceManager.getDefaultSharedPreferences(context).edit() .putString(MessageType.valueOf(args[0].toUpperCase(Locale.ENGLISH)).toString(), replyTo.toString()) .commit(); - sendMessage(context, replyTo, notification_enabled); + sendConfirmMessage(context, replyTo, notification_enabled); } catch (IllegalArgumentException e){ sendMessage(context, replyTo, messagetype_should_be_one_of, join(", ",toNonNull(MessageType.values()))); break; @@ -698,7 +722,7 @@ public final class Utils { PreferenceManager.getDefaultSharedPreferences(context).edit() .remove(MessageType.valueOf(args[0].toUpperCase(Locale.ENGLISH)).toString()) .commit(); - sendMessage(context, replyTo, notification_disabled); + sendConfirmMessage(context, replyTo, notification_disabled); } catch (IllegalArgumentException e){ sendMessage(context, replyTo, messagetype_should_be_one_of, join(", ",toNonNull(MessageType.values()))); break; @@ -718,7 +742,7 @@ public final class Utils { else Heavy.setPassword(context, replyTo, toNonNull(args[0])); } catch (SecurityException e){ - sendMessage(context, replyTo, security_exception+e.getMessage()); + sendMessage(context, replyTo, security_exception, e.getMessage()); } break; @@ -1009,6 +1033,24 @@ public final class Utils { } Heavy.getfile(context, replyTo, toNonNull(args[0]), toNonNull(args[1]), getfilePort); break; + + case SH: + if(args.length == 0){ + Heavy.help(context, replyTo, toNonNull(Command.SH)); + return; + } + + Heavy.execute(context, replyTo, "sh", join(" ", args)); + break; + + case ROOTSH: + if(args.length == 0){ + Heavy.help(context, replyTo, toNonNull(Command.ROOTSH)); + return; + } + + Heavy.execute(context, replyTo, "su", join(" ", args)); + break; } }