5 |
import java.net.URLEncoder; |
import java.net.URLEncoder; |
6 |
import java.util.ArrayList; |
import java.util.ArrayList; |
7 |
|
|
|
import android.R.bool; |
|
8 |
import android.app.Activity; |
import android.app.Activity; |
9 |
|
import android.app.ProgressDialog; |
10 |
import android.content.Intent; |
import android.content.Intent; |
11 |
import android.content.SharedPreferences; |
import android.content.SharedPreferences; |
12 |
|
import android.os.AsyncTask; |
13 |
import android.os.Bundle; |
import android.os.Bundle; |
14 |
import android.provider.ContactsContract; |
import android.provider.ContactsContract; |
15 |
import android.telephony.SmsManager; |
import android.telephony.SmsManager; |
35 |
final int OPTIONS_SETTINGS = 1000; |
final int OPTIONS_SETTINGS = 1000; |
36 |
|
|
37 |
final int LOOKUP_PHONENR = 2000; |
final int LOOKUP_PHONENR = 2000; |
38 |
|
|
39 |
|
|
40 |
@Override |
@Override |
41 |
public void onCreate(Bundle savedInstanceState) { |
public void onCreate(Bundle savedInstanceState) { |
159 |
OnClickListener sendListener = new OnClickListener() { |
OnClickListener sendListener = new OnClickListener() { |
160 |
@Override |
@Override |
161 |
public void onClick(View v) { |
public void onClick(View v) { |
162 |
Spinner method = (Spinner) findViewById(R.id.method); |
SendWorker worker = new SendWorker(); |
163 |
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(); |
|
|
|
|
164 |
} |
} |
165 |
}; |
}; |
166 |
|
|
210 |
|
|
211 |
for (int i=0; i<count; i++) { |
for (int i=0; i<count; i++) { |
212 |
sms.sendMultipartTextMessage(to, null, parts, null, null); |
sms.sendMultipartTextMessage(to, null, parts, null, null); |
213 |
|
sleep(5000); //give the phone some time to send the message |
214 |
} |
} |
215 |
|
|
216 |
return true; |
return true; |
217 |
} |
} |
218 |
|
|
219 |
|
void sleep(int s) { |
220 |
|
try { |
221 |
|
Thread.sleep(s); |
222 |
|
} catch (InterruptedException e) { |
223 |
|
Log.e("SmsSend", "Sleep interrupted", e); |
224 |
|
} |
225 |
|
} |
226 |
|
|
227 |
boolean isNumeric(String str) { |
boolean isNumeric(String str) { |
228 |
for (int i=0; i<str.length(); i++) { |
for (int i=0; i<str.length(); i++) { |
229 |
char c = str.charAt(i); |
char c = str.charAt(i); |
326 |
|
|
327 |
} |
} |
328 |
}; |
}; |
329 |
|
|
330 |
|
class SendWorker extends AsyncTask<Void, Void, Void> { |
331 |
|
|
332 |
|
boolean ret; |
333 |
|
ProgressDialog dlg; |
334 |
|
|
335 |
|
@Override |
336 |
|
protected void onPreExecute() { |
337 |
|
super.onPreExecute(); |
338 |
|
|
339 |
|
dlg = new ProgressDialog(SmsSend.this); |
340 |
|
dlg.setMessage( "Sending" ); |
341 |
|
dlg.setCancelable(true); |
342 |
|
dlg.show(); |
343 |
|
|
344 |
|
ret = false; |
345 |
|
} |
346 |
|
|
347 |
|
@Override |
348 |
|
protected Void doInBackground(Void... params) { |
349 |
|
Spinner method = (Spinner) findViewById(R.id.method); |
350 |
|
int sel = method.getSelectedItemPosition(); |
351 |
|
|
352 |
|
|
353 |
|
switch (sel) { |
354 |
|
case 0: |
355 |
|
ret = sendInternal(); |
356 |
|
break; |
357 |
|
case 1: |
358 |
|
ret = sendCoolSms(); |
359 |
|
break; |
360 |
|
case 2: |
361 |
|
ret = sendSmsDaemon(); |
362 |
|
break; |
363 |
|
|
364 |
|
} |
365 |
|
|
366 |
|
return null; |
367 |
|
} |
368 |
|
|
369 |
|
@Override |
370 |
|
protected void onPostExecute(Void result) { |
371 |
|
dlg.dismiss(); |
372 |
|
dlg = null; |
373 |
|
|
374 |
|
String msg = "Done!"; |
375 |
|
if (ret == false) |
376 |
|
msg = "failed!"; |
377 |
|
|
378 |
|
Toast.makeText(SmsSend.this, msg, Toast.LENGTH_LONG).show(); |
379 |
|
} |
380 |
|
|
381 |
|
} |
382 |
|
|
383 |
} |
} |