package com.chicagoandroid.w160;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
public class SmsReceiver extends BroadcastReceiver
{
private static final String CLASS_NAME = SmsReceiver.class.getSimpleName();
public boolean doesSmsStartsWith(String smsMessage, String txt)
{
return smsMessage.trim().toLowerCase().startsWith(txt.trim().toLowerCase());
}
@Override
public void onReceive(Context context, Intent intent)
{
Log.i(CLASS_NAME + ".onReceive", "started");
Bundle bundle = intent.getExtras();
if (bundle == null)
return;
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
Log.w(CLASS_NAME + ".onReceive", pdus.length + " message(s) arrived in the queue.");
for (int i = 0; i < messages.length; i++)
{
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);
if (currentMessage == null)
{
Log.e(CLASS_NAME + ".onReceive", "SMS message is null -- ABORT");
break;
}
String message = currentMessage.getMessageBody();
String originatingAddress = currentMessage.getOriginatingAddress();
if (doesSmsStartsWith(message, "INFO:"))
SmsSender.validateAndSendSms(null, originatingAddress, Main.contactInfo.getText().toString());
}
}
}