189 lines
5.1 KiB
Java
189 lines
5.1 KiB
Java
package com.openwide.android;
|
|
|
|
import java.util.HashSet;
|
|
|
|
import android.app.Activity;
|
|
import android.app.AlertDialog;
|
|
import android.app.Dialog;
|
|
import android.app.ProgressDialog;
|
|
import android.content.DialogInterface;
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.telephony.gsm.SmsManager;
|
|
import android.view.Menu;
|
|
import android.view.MenuItem;
|
|
import android.view.View;
|
|
import android.view.View.OnClickListener;
|
|
import android.view.inputmethod.EditorInfo;
|
|
import android.widget.Button;
|
|
import android.widget.TextView;
|
|
|
|
public class MultiSmsSender extends Activity {
|
|
private Button mAddButton;
|
|
private Button mSend;
|
|
private TextView mContacts;
|
|
private TextView mEditor;
|
|
|
|
private ProgressDialog mSendingDialog;
|
|
|
|
public static final int ACTIVITY_EDIT = 0;
|
|
public static final int ACTIVITY_ADD_GROUP = 1;
|
|
private static final int SENDING_DIALOG_KEY = 0;
|
|
private static final int INSERT_ID = Menu.FIRST;
|
|
|
|
public static final String PARAM_NUMBERS_LIST = "param number list";
|
|
|
|
@Override
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.main);
|
|
|
|
mAddButton = (Button) findViewById(R.id.contacts);
|
|
mSend = (Button) findViewById(R.id.send);
|
|
mContacts = (TextView) findViewById(R.id.numbers);
|
|
mEditor = (TextView) findViewById(R.id.editor);
|
|
|
|
mContacts.setImeOptions(EditorInfo.IME_ACTION_NEXT);
|
|
mEditor.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
|
|
|
mAddButton.setOnClickListener(new OnClickListener() {
|
|
|
|
@Override
|
|
public void onClick(View v) {
|
|
selectNumbers();
|
|
}
|
|
});
|
|
|
|
mSend.setOnClickListener(new OnClickListener() {
|
|
|
|
@Override
|
|
public void onClick(View v) {
|
|
sendMessage();
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
public void selectNumbers() {
|
|
Intent i = new Intent(this, PhoneNumberSelection.class);
|
|
String rawNumbers = mContacts.getText().toString();
|
|
String[] numbers = rawNumbers.split(",");
|
|
i.putExtra(PARAM_NUMBERS_LIST, numbers);
|
|
startActivityForResult(i, ACTIVITY_EDIT);
|
|
}
|
|
|
|
public void sendMessage() {
|
|
SmsManager manager = SmsManager.getDefault();
|
|
String message = mEditor.getText().toString();
|
|
String[] numbers = mContacts.getText().toString().split(",");
|
|
HashSet<String> allreadySend = new HashSet<String>();
|
|
int size = numbers.length;
|
|
showDialog(SENDING_DIALOG_KEY);
|
|
if(numbers.length != 0) {
|
|
for (int i = 0; i < numbers.length; i++) {
|
|
String newN = numbers[i].trim();
|
|
mSendingDialog.setMax(size);
|
|
if (!newN.equals("")) {
|
|
mSendingDialog.setProgress(i / size);
|
|
if (!allreadySend.contains(newN)) {
|
|
allreadySend.add(newN);
|
|
manager.sendMultipartTextMessage(newN, null, manager.divideMessage(message), null, null);
|
|
|
|
}
|
|
}
|
|
}
|
|
mSendingDialog.dismiss();
|
|
new AlertDialog.Builder(this).setPositiveButton(getResources().getString(R.string.ok),
|
|
new DialogInterface.OnClickListener() {
|
|
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
dialog.dismiss();
|
|
|
|
}
|
|
}).setMessage( getResources().getString(R.string.message_sent)).show();
|
|
}else {
|
|
new AlertDialog.Builder(this).setPositiveButton(getResources().getString(R.string.ok),
|
|
new DialogInterface.OnClickListener() {
|
|
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
dialog.dismiss();
|
|
|
|
}
|
|
}).setMessage(getResources().getString(R.string.enter_number)).show();
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
protected Dialog onCreateDialog(int id) {
|
|
switch (id) {
|
|
case SENDING_DIALOG_KEY: {
|
|
mSendingDialog = new ProgressDialog(this);
|
|
mSendingDialog.setTitle(R.string.sending);
|
|
mSendingDialog.setMessage(getResources().getString(R.string.wait));
|
|
mSendingDialog.setIndeterminate(true);
|
|
mSendingDialog.setCancelable(true);
|
|
return mSendingDialog;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
protected void onActivityResult(int requestCode, int resultCode,
|
|
Intent intent) {
|
|
super.onActivityResult(requestCode, resultCode, intent);
|
|
if (intent != null) {
|
|
String[] numbers = intent.getExtras().getStringArray(
|
|
PARAM_NUMBERS_LIST);
|
|
String string = "";
|
|
HashSet<String> res = new HashSet<String>();
|
|
for (int i = 0; i < numbers.length; i++) {
|
|
String newN = numbers[i].trim();
|
|
if (!newN.equals("")) {
|
|
res.add(newN);
|
|
}
|
|
}
|
|
String oldContactsString = mContacts.getText().toString();
|
|
String[] oldContacts = oldContactsString.split(",");
|
|
for (int i = 0; i < oldContacts.length; i++) {
|
|
String newN = oldContacts[i].trim();
|
|
if (!newN.equals("")) {
|
|
res.add(newN);
|
|
}
|
|
}
|
|
|
|
for (String number : res) {
|
|
string += number + ", ";
|
|
}
|
|
|
|
mContacts.setText(string);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean onCreateOptionsMenu(Menu menu) {
|
|
super.onCreateOptionsMenu(menu);
|
|
menu.add(0, INSERT_ID,0, R.string.add_group);
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean onMenuItemSelected(int featureId, MenuItem item) {
|
|
switch(item.getItemId()) {
|
|
case INSERT_ID:
|
|
display_group_list();
|
|
return true;
|
|
}
|
|
return super.onMenuItemSelected(featureId, item);
|
|
}
|
|
|
|
|
|
public void display_group_list(){
|
|
|
|
Intent i = new Intent(this, SelectGroupActivity.class);
|
|
startActivityForResult(i, ACTIVITY_ADD_GROUP);
|
|
}
|
|
} |