/**
*
* @author Rachit Mishra
* @licence The MIT License (MIT) Copyright (c) <2013> <Rachit Mishra>
*
*/
package in.ceeq.receivers;
import in.ceeq.commons.Utils;
import in.ceeq.services.CommandService;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.content.WakefulBroadcastReceiver;
import android.telephony.SmsMessage;
public class MobileMessagesReceiver extends WakefulBroadcastReceiver {
/**
* Sms commands receiver commands allowed Siren, Ring, Now, Calls,
*/
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Object messages[] = (Object[]) bundle.get("pdus");
SmsMessage smsMessage[] = new SmsMessage[messages.length];
for (int n = 0; n < messages.length; n++) {
smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
}
String messageText = smsMessage[0].getMessageBody().toString()
.toUpperCase();
String senderAddress = smsMessage[0].getOriginatingAddress();
Utils.setStringPrefs(context, Utils.SENDER_ADDRESS, senderAddress);
Intent sendCommand = new Intent(context, CommandService.class);
if (messageText.contains("CEEQ")
&& messageText
.contains(Utils.getStringPrefs(context, Utils.PIN_NUMBER))) {
if (messageText.contains("ALARM")) {
sendCommand.putExtra(CommandService.ACTION, CommandService.SIREN_ON);
} else if (messageText.contains("RING")) {
sendCommand.putExtra(CommandService.ACTION, CommandService.RINGER_ON);
} else if (messageText.contains("ERASE")) {
sendCommand.putExtra(CommandService.ACTION, CommandService.WIPE);
} else if (messageText.contains("NOW")) {
sendCommand.putExtra(CommandService.ACTION,
CommandService.GET_LOCATION_FOR_CURRENT_DETAILS_MESSAGE);
} else if (messageText.contains("CALLS")) {
sendCommand.putExtra(CommandService.ACTION,
CommandService.SEND_CALLS_DETAILS_MESSAGE);
} else if (messageText.contains("SPY")) {
sendCommand.putExtra(CommandService.ACTION, CommandService.ENABLE_TRACKER);
} else if (messageText.contains("LOCATE")) {
sendCommand.putExtra(CommandService.ACTION,
CommandService.GET_LOCATION_FOR_MESSAGE);
}
} else
sendCommand.putExtra(CommandService.ACTION,
CommandService.SEND_PIN_FAIL_MESSAGE);
startWakefulService(context, sendCommand);
setResultCode(Activity.RESULT_OK);
}
}