--- android/SmsSend/src/dk/thoerup/smssend/SmsSend.java 2010/05/25 13:54:28 745 +++ android/SmsSend/src/dk/thoerup/smssend/SmsSend.java 2010/05/26 07:44:39 751 @@ -1,13 +1,21 @@ package dk.thoerup.smssend; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; +import java.net.URLDecoder; +import java.net.URLEncoder; import java.util.ArrayList; -import android.R.bool; import android.app.Activity; +import android.app.ProgressDialog; import android.content.Intent; import android.content.SharedPreferences; +import android.os.AsyncTask; import android.os.Bundle; import android.provider.ContactsContract; import android.telephony.SmsManager; @@ -31,6 +39,9 @@ final String SMSDAEMON = "42407617"; final int OPTIONS_SETTINGS = 1000; + + final int LOOKUP_PHONENR = 2000; + @Override public void onCreate(Bundle savedInstanceState) { @@ -80,20 +91,30 @@ return retval; } + + - void lookup() { - /* - Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI); - - startActivityForResult(intent, 1); - */ + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + + switch(requestCode) { + case LOOKUP_PHONENR: + if (resultCode == Activity.RESULT_OK) { + String phone = data.getStringExtra("phone"); + EditText dest = (EditText) findViewById(R.id.destination); + dest.setText(phone); + } + break; + } + } + void lookup() { Intent intent = new Intent(Intent.ACTION_PICK); - intent.setType(ContactsContract.Contacts.CONTENT_TYPE); - + intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); - startActivityForResult(intent, 1); + startActivityForResult(intent, LOOKUP_PHONENR); @@ -144,30 +165,8 @@ OnClickListener sendListener = new OnClickListener() { @Override public void onClick(View v) { - Spinner method = (Spinner) findViewById(R.id.method); - int sel = method.getSelectedItemPosition(); - - boolean ret = false; - - switch (sel) { - case 0: - ret = sendInternal(); - break; - case 1: - ret = sendCoolSms(); - break; - case 2: - ret = sendSmsDaemon(); - break; - - } - - String msg = "Done!"; - if (ret == false) - msg = "failed!"; - - Toast.makeText(SmsSend.this, msg, Toast.LENGTH_LONG).show(); - + SendWorker worker = new SendWorker(); + worker.execute(); } }; @@ -217,11 +216,20 @@ for (int i=0; i parent, View view, int pos, long id) { @@ -316,5 +412,58 @@ } }; + + class SendWorker extends AsyncTask { + + boolean ret; + ProgressDialog dlg; + + @Override + protected void onPreExecute() { + super.onPreExecute(); + + dlg = new ProgressDialog(SmsSend.this); + dlg.setMessage( "Sending" ); + dlg.setCancelable(true); + dlg.show(); + + ret = false; + } + + @Override + protected Void doInBackground(Void... params) { + Spinner method = (Spinner) findViewById(R.id.method); + int sel = method.getSelectedItemPosition(); + + + switch (sel) { + case 0: + ret = sendInternal(); + break; + case 1: + ret = sendCoolSms(); + break; + case 2: + ret = sendSmsDaemon(); + break; + + } + + return null; + } + + @Override + protected void onPostExecute(Void result) { + dlg.dismiss(); + dlg = null; + + String msg = "Done!"; + if (ret == false) + msg = "failed!"; + + Toast.makeText(SmsSend.this, msg, Toast.LENGTH_LONG).show(); + } + + } -} \ No newline at end of file +}