X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=src%2Fro%2Fieval%2Ffonbot%2FSmsReceiver.java;h=63609bdd9d23c935c884dc78d7f7765a8b4dcb55;hb=6378595ca19bc3b4552e937e6715e0e5b2e02245;hp=49d4bea9fad8cedb0501bf3ec883b510a7a037f7;hpb=8dfb76c9431dbf8401412cb92c7512e7dc3081a2;p=fonbot.git diff --git a/src/ro/ieval/fonbot/SmsReceiver.java b/src/ro/ieval/fonbot/SmsReceiver.java index 49d4bea..63609bd 100644 --- a/src/ro/ieval/fonbot/SmsReceiver.java +++ b/src/ro/ieval/fonbot/SmsReceiver.java @@ -6,7 +6,6 @@ import static ro.ieval.fonbot.Utils.toNonNull; import org.eclipse.jdt.annotation.Nullable; -import ro.ieval.fonbot.Address.Protocol; import ro.ieval.fonbot.Utils.MessageType; import android.content.BroadcastReceiver; import android.content.Context; @@ -50,33 +49,31 @@ public final class SmsReceiver extends BroadcastReceiver { final SmsMessage sms=SmsMessage.createFromPdu((byte[]) pdu); final String originAddress=sms.getOriginatingAddress(); if(sms.getMessageBody() == null || originAddress == null) - return; + continue; final String name=Utils.callerId(context, originAddress); + final String body=sms.getMessageBody(); if(name==null) - Utils.sendMessage(context, toNonNull(MessageType.SMS), - toNonNull(context.getString(sms_received_fmt, - originAddress, sms.getMessageBody()))); + Utils.sendMessage(context, toNonNull(MessageType.SMS), sms_received_fmt, + originAddress, body.replace("\n", "\n ")); else - Utils.sendMessage(context, toNonNull(MessageType.SMS), - toNonNull(context.getString(sms_received_fmt, - originAddress+" ("+name+")",sms.getMessageBody()))); + Utils.sendMessage(context, toNonNull(MessageType.SMS), sms_received_fmt, + originAddress+" ("+name+")", body.replace("\n", "\n ")); - final String[] lines=sms.getMessageBody().split("\n"); + final String[] lines=body.split("\n"); final String password = PreferenceManager.getDefaultSharedPreferences(context).getString("smspassword",""); if(password==null||password.length()==0) - return; + continue; if(lines.length==0 || !lines[0].equals(password)) - return; + continue; - final Address address=new Address(toNonNull(Protocol.SMS), originAddress);//NOPMD variable depends on originAddress for (int i = 1; i < lines.length; i++) { - final String[] words=Utils.shellwords(toNonNull(lines[i])); - final String[] args=new String[words.length-1];//NOPMD variable size depends on words.length - System.arraycopy(words, 1, args, 0, args.length); - - Utils.processCommand(context, toNonNull(words[0]), args, toNonNull(address)); + final Intent process_intent = new Intent(context, FonBotMainService.class); + process_intent.setAction(FonBotMainService.ACTION_PROCESS_COMMAND); + process_intent.putExtra(FonBotMainService.EXTRA_COMMAND_LINE, lines[i]); + process_intent.putExtra(FonBotMainService.EXTRA_SMS_ORIGIN_ADDRESS, originAddress); + context.startService(process_intent); } abortBroadcast();