package ru.shutoff.cgstarter; import android.app.Activity; import android.app.AlertDialog; import android.content.ContentResolver; import android.content.DialogInterface; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.BaseColumns; import android.provider.ContactsContract; public class SmsDialog extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String number = getIntent().getStringExtra(State.INFO); Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number)); ContentResolver contentResolver = getContentResolver(); Cursor contactLookup = contentResolver.query(uri, new String[]{BaseColumns._ID, ContactsContract.PhoneLookup.DISPLAY_NAME}, null, null, null); final String lat = getIntent().getStringExtra(State.LATITUDE); final String lon = getIntent().getStringExtra(State.LONGITUDE); try { if (contactLookup != null && contactLookup.getCount() > 0) { contactLookup.moveToNext(); number = contactLookup.getString(contactLookup.getColumnIndex(ContactsContract.Data.DISPLAY_NAME)); } } finally { if (contactLookup != null) { contactLookup.close(); } } AlertDialog dialog = new AlertDialog.Builder(this) .setTitle(number) .setMessage(getIntent().getStringExtra(State.TEXT)) .setPositiveButton(R.string.go, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (OnExitService.isRunCG(SmsDialog.this)) CarMonitor.killCG(SmsDialog.this); CarMonitor.startCG(SmsDialog.this, lat + "|" + lon, null, null); } }) .setNegativeButton(R.string.cancel, null) .create(); dialog.show(); dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { finish(); } }); } }