package kz.virtex.htc.tweaker;
import java.text.NumberFormat;
import java.text.ParsePosition;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Vibrator;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Data;
import android.util.Log;
public class TweakerBroadcastReceiver extends BroadcastReceiver
{
public static final String ACTION_DELETE_MESSAGE = "tweaker.intent.action.DELETE_MESSAGE";
public static final String ACTION_CALL_TO_CONTACT = "tweaker.intent.action.CALL_TO_CONTACT";
public static final String ACTION_MARK_THREAD_READ = "tweaker.intent.action.MARK_THREAD_READ";
public static final String ACTION_REPLY_MESSAGE = "tweaker.intent.action.REPLY_MESSAGE";
private Context mContext;
public static boolean isNumeric(String str)
{
if (str == null) return false;
NumberFormat formatter = NumberFormat.getInstance();
ParsePosition pos = new ParsePosition(0);
formatter.parse(str, pos);
return str.length() == pos.getIndex();
}
public void getPhoneNumbers(String id)
{
Log.d("getPhoneNumbers", "looking data for contact id: " + id);
Cursor pCur = mContext.getContentResolver().query(Data.CONTENT_URI, new String[]
{ Data._ID, Phone.NUMBER, Phone.TYPE, Phone.LABEL }, Data.CONTACT_ID + "=?" + " AND "
+ Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'", new String[]
{ String.valueOf(id) }, null);
while (pCur.moveToNext())
{
String phoneNumber = pCur.getString(1);
String phoneType = pCur.getString(2);
String phoneLabel = pCur.getString(3);
if (isNumeric(phoneType))
{
Log.d("getPhoneNumbers", "phoneNumber: " + phoneNumber + ", phoneType: " + phoneType + ", phoneLabel: " + phoneLabel);
}
}
pCur.close();
return;
}
@Override
public void onReceive(Context paramContext, Intent paramIntent)
{
mContext = paramContext;
Vibrator vibrator = (Vibrator) paramContext.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(10);
if (paramIntent != null)
{
String action = paramIntent.getAction();
if (action == null)
action = "UNKNOWN";
}
Intent it = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
paramContext.sendBroadcast(it);
Long ContactId = paramIntent.getLongExtra("ContactId", 0L);
// Toast.makeText(paramContext, "ContactId: " + ContactId + ", Sender: "
// + paramIntent.getStringExtra("Sender"), Toast.LENGTH_SHORT).show();
getPhoneNumbers(ContactId.toString());
// Intent intent = new Intent(Intent.ACTION_VIEW,
// Uri.parse("content://contacts/people/" +
// paramIntent.getLongExtra("ContactId", 0L)));
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// paramContext.startActivity(intent);
/*
* Intent intent = new Intent(paramContext, ReplyDialogActivity.class);
* intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
*
* paramContext.startActivity(intent);
* paramContext.sendBroadcast(intent);
*/
// paramContext.unregisterReceiver(this);
}
}