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;
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();