/[projects]/android/SmsSend/src/dk/thoerup/smssend/SmsSend.java
ViewVC logotype

Diff of /android/SmsSend/src/dk/thoerup/smssend/SmsSend.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 748 by torben, Tue May 25 18:54:02 2010 UTC revision 754 by torben, Wed May 26 14:43:20 2010 UTC
# Line 1  Line 1 
1  package dk.thoerup.smssend;  package dk.thoerup.smssend;
2    
3    import java.io.ByteArrayOutputStream;
4    import java.io.IOException;
5    import java.io.InputStream;
6    import java.io.OutputStream;
7    import java.net.HttpURLConnection;
8  import java.net.URL;  import java.net.URL;
9  import java.net.URLConnection;  import java.net.URLConnection;
10    import java.net.URLDecoder;
11  import java.net.URLEncoder;  import java.net.URLEncoder;
12  import java.util.ArrayList;  import java.util.ArrayList;
13    import java.util.HashMap;
14    import java.util.Map;
15    
 import android.R.bool;  
16  import android.app.Activity;  import android.app.Activity;
17    import android.app.ProgressDialog;
18  import android.content.Intent;  import android.content.Intent;
19  import android.content.SharedPreferences;  import android.content.SharedPreferences;
20    import android.os.AsyncTask;
21  import android.os.Bundle;  import android.os.Bundle;
22  import android.provider.ContactsContract;  import android.provider.ContactsContract;
23  import android.telephony.SmsManager;  import android.telephony.SmsManager;
# Line 34  public class SmsSend extends Activity { Line 43  public class SmsSend extends Activity {
43          final int OPTIONS_SETTINGS = 1000;          final int OPTIONS_SETTINGS = 1000;
44                    
45          final int LOOKUP_PHONENR = 2000;          final int LOOKUP_PHONENR = 2000;
46            
47    
48          @Override          @Override
49          public void onCreate(Bundle savedInstanceState) {          public void onCreate(Bundle savedInstanceState) {
# Line 157  public class SmsSend extends Activity { Line 167  public class SmsSend extends Activity {
167          OnClickListener sendListener = new OnClickListener() {          OnClickListener sendListener = new OnClickListener() {
168                  @Override                  @Override
169                  public void onClick(View v) {                  public void onClick(View v) {
170                          Spinner method = (Spinner) findViewById(R.id.method);                          SendWorker worker = new SendWorker();
171                          int sel = method.getSelectedItemPosition();                          worker.execute();
                           
                         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();  
   
172                  }                  }
173          };          };
174    
# Line 230  public class SmsSend extends Activity { Line 218  public class SmsSend extends Activity {
218    
219                  for (int i=0; i<count; i++) {                  for (int i=0; i<count; i++) {
220                          sms.sendMultipartTextMessage(to, null, parts, null, null);                          sms.sendMultipartTextMessage(to, null, parts, null, null);
221                            sleep(5000); //give the phone some time to send the message
222                  }                  }
223                                    
224                  return true;                  return true;
225          }          }
226                    
227            void sleep(int s) {
228                    try {
229                            Thread.sleep(s);
230                    } catch (InterruptedException e) {
231                            Log.e("SmsSend", "Sleep interrupted", e);
232                    }
233            }
234            
235          boolean isNumeric(String str) {          boolean isNumeric(String str) {
236                  for (int i=0; i<str.length(); i++) {                  for (int i=0; i<str.length(); i++) {
237                          char c = str.charAt(i);                          char c = str.charAt(i);
# Line 245  public class SmsSend extends Activity { Line 242  public class SmsSend extends Activity {
242                  return true;                  return true;
243          }          }
244                    
245          String encode(String url) {  
                 try {  
                         return URLEncoder.encode(url, "UTF-8");  
                 } catch (Exception e) {  
                         return url;  
                 }  
         }  
246    
247          boolean sendCoolSms() {          boolean sendCoolSms() {
248                  SharedPreferences prefs = this.getSharedPreferences("SmsSend", MODE_PRIVATE);                  SharedPreferences prefs = this.getSharedPreferences("SmsSend", MODE_PRIVATE);
# Line 269  public class SmsSend extends Activity { Line 260  public class SmsSend extends Activity {
260                  }                  }
261                                    
262                  //"http://sms.coolsmsc.dk:8080/?username=%s&password=%s&to=%s&from=SMS+HTTP+GW&message=hello+world"                  //"http://sms.coolsmsc.dk:8080/?username=%s&password=%s&to=%s&from=SMS+HTTP+GW&message=hello+world"
                 StringBuilder sb = new StringBuilder();  
                 sb.append("http://sms.coolsmsc.dk:8080/");  
                 sb.append("?username=").append(user);  
                 sb.append("&password=").append(pass);  
                 sb.append("&to=").append( getTo() );  
                 sb.append("&from=").append( encode(getFrom()) );  
                 sb.append("&message=").append( encode(getMessage()) );  
263                                    
264                  Log.v("SmsSend", sb.toString());                  String url = "http://sms.coolsmsc.dk:8080/";
265                    
266                    Map<String,String> params = new HashMap<String,String>();
267                    params.put("username", user);
268                    params.put("password", pass);
269                    params.put("to", getTo());
270                    params.put("from", getFrom());
271                    params.put("message", getMessage() );
272                    params.put("resulttype", "urlencoded" );
273                    params.put("lang", "lang" );
274                    
275                    String paramStr = HttpUtil.encodeParams(params);
276                    
277                    Log.v("SmsSend", paramStr);
278                    
279                                    
280                    boolean success = false;
281                    String msg = "";
282                  try {                  try {
283                          URL u = new URL( sb.toString() );                          byte bytes[] = HttpUtil.postContent(url,  paramStr, 2500 );
284                          URLConnection conn =  u.openConnection();                          String res = new String(bytes);
285                          conn.getInputStream();                          Map<String,String> vals = HttpUtil.decodeParams(res);
                           
286                                                    
287                            success = vals.get("status").equals("success");
288                            msg = vals.get("result");
289                                                    
290                  } catch (Exception e) {                  } catch (Exception e) {
291                          Log.e("SmsSend", "sendCoolSms", e);                          Log.e("SmsSend", "sendCoolSms", e);
292                          return false;                          success = false;
293                  }                  }
294                                    
295                  return true;                  return success;
296          }          }
297            
298          boolean sendSmsDaemon() {          boolean sendSmsDaemon() {
299    
300                  int count = getCount();                                  int count = getCount();                
# Line 310  public class SmsSend extends Activity { Line 311  public class SmsSend extends Activity {
311    
312                  return true;                  return true;
313          }          }
314            
315            
316    
317    
318          OnItemSelectedListener methodSelected = new OnItemSelectedListener() {          OnItemSelectedListener methodSelected = new OnItemSelectedListener() {
319                  public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {                  public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
# Line 337  public class SmsSend extends Activity { Line 341  public class SmsSend extends Activity {
341                                                    
342                  }                                }              
343          };          };
344            
345            class SendWorker extends AsyncTask<Void, Void, Void> {
346    
347                    boolean ret;
348                    ProgressDialog dlg;
349    
350                    @Override
351                    protected void onPreExecute() {
352                            super.onPreExecute();                  
353                            
354                            dlg = new ProgressDialog(SmsSend.this);                
355                            dlg.setMessage( "Sending" );
356                            dlg.setCancelable(true);
357                            dlg.show();
358    
359                            ret = false;
360                    }
361    
362                    @Override
363                    protected Void doInBackground(Void... params) {
364                            Spinner method = (Spinner) findViewById(R.id.method);
365                            int sel = method.getSelectedItemPosition();
366                            
367    
368                            switch (sel) {
369                            case 0:
370                                    ret = sendInternal();
371                                    break;
372                            case 1:
373                                    ret = sendCoolSms();
374                                    break;
375                            case 2:
376                                    ret = sendSmsDaemon();
377                                    break;                                          
378    
379                            }
380                    
381                            return null;
382                    }
383                    
384                    @Override
385                    protected void onPostExecute(Void result) {
386                            dlg.dismiss();
387                            dlg = null;
388                            
389                            String msg = "Done!";
390                            if (ret == false)
391                                    msg = "failed!";
392    
393                            Toast.makeText(SmsSend.this, msg, Toast.LENGTH_LONG).show();
394                    }
395                    
396            }
397    
 }  
398    }

Legend:
Removed from v.748  
changed lines
  Added in v.754

  ViewVC Help
Powered by ViewVC 1.1.20