2010-12-12 02:36:52 +01:00
|
|
|
package com.hectorone.multismssender;
|
2009-10-22 14:26:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
2010-12-12 02:36:52 +01:00
|
|
|
|
2009-10-22 14:26:02 +02:00
|
|
|
import android.app.ListActivity;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.database.Cursor;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.provider.Contacts.Phones;
|
2010-12-12 02:36:52 +01:00
|
|
|
import android.provider.ContactsContract.Groups;
|
2009-10-22 14:26:02 +02:00
|
|
|
import android.view.ContextMenu;
|
2010-12-12 02:36:52 +01:00
|
|
|
import android.view.ContextMenu.ContextMenuInfo;
|
2009-10-22 14:26:02 +02:00
|
|
|
import android.view.Menu;
|
|
|
|
import android.view.MenuItem;
|
|
|
|
import android.view.View;
|
2010-12-12 02:36:52 +01:00
|
|
|
import android.widget.AdapterView.AdapterContextMenuInfo;
|
2009-10-22 14:26:02 +02:00
|
|
|
import android.widget.ListView;
|
|
|
|
import android.widget.SimpleCursorAdapter;
|
|
|
|
|
|
|
|
|
|
|
|
public class SelectGroupActivity extends ListActivity{
|
|
|
|
|
|
|
|
GroupsDbAdapter mDbHelper;
|
|
|
|
public static final int DELETE_ID = Menu.FIRST;
|
|
|
|
public static final int EDIT_ID = Menu.FIRST + 1;
|
|
|
|
public static final int CREATE_ID = Menu.FIRST + 2;
|
|
|
|
|
|
|
|
public static final String PARAM_GROUP_ID = "gid";
|
|
|
|
|
|
|
|
public static final int ACTIVITY_EDIT_GROUP = 0;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
setContentView(R.layout.group_list);
|
|
|
|
mDbHelper = new GroupsDbAdapter(this);
|
|
|
|
mDbHelper.open();
|
|
|
|
fillData();
|
|
|
|
registerForContextMenu(getListView());
|
|
|
|
}
|
2010-01-22 15:21:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
protected void onDestroy() {
|
|
|
|
mDbHelper.close();
|
|
|
|
super.onDestroy();
|
|
|
|
}
|
2009-10-22 14:26:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void fillData() {
|
2010-12-12 02:36:52 +01:00
|
|
|
Cursor groupsCursor = getContentResolver().query(Groups.CONTENT_URI, new String[]{Groups._ID, Groups.TITLE}, null, null, Groups.TITLE);
|
2009-10-22 14:26:02 +02:00
|
|
|
|
|
|
|
startManagingCursor(groupsCursor);
|
|
|
|
|
2010-12-12 02:36:52 +01:00
|
|
|
String[] from = new String[]{Groups.TITLE};
|
2009-10-22 14:26:02 +02:00
|
|
|
|
|
|
|
int[] to = new int[]{R.id.groupNameTextView};
|
|
|
|
|
|
|
|
SimpleCursorAdapter notes =
|
|
|
|
new SimpleCursorAdapter(this, R.layout.group_row, groupsCursor, from, to);
|
|
|
|
setListAdapter(notes);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean onCreateOptionsMenu(Menu menu) {
|
|
|
|
super.onCreateOptionsMenu(menu);
|
|
|
|
menu.add(0, CREATE_ID,0, R.string.create_group);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onCreateContextMenu(ContextMenu menu, View v,
|
|
|
|
ContextMenuInfo menuInfo) {
|
|
|
|
super.onCreateContextMenu(menu, v, menuInfo);
|
|
|
|
menu.add(0, DELETE_ID, 0, R.string.remove_group);
|
|
|
|
menu.add(0, EDIT_ID, 0, R.string.edit_group);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onListItemClick(ListView l, View v, int position, long id) {
|
|
|
|
super.onListItemClick(l, v, position, id);
|
|
|
|
Cursor phonesListCursor = mDbHelper.fetchPhonesFromGroup(id);
|
2010-01-27 17:59:55 +01:00
|
|
|
startManagingCursor(phonesListCursor);
|
2009-10-22 14:26:02 +02:00
|
|
|
int phoneNumberIdx = phonesListCursor.getColumnIndex(Phones.NUMBER);
|
|
|
|
String[] res = new String[phonesListCursor.getCount()];
|
|
|
|
phonesListCursor.moveToFirst();
|
|
|
|
for (int i = 0; i < res.length; i++) {
|
|
|
|
res[i] = phonesListCursor.getString(phoneNumberIdx);
|
|
|
|
phonesListCursor.moveToNext();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Intent i = new Intent();
|
|
|
|
Bundle bundle = new Bundle();
|
|
|
|
|
|
|
|
bundle.putStringArray(MultiSmsSender.PARAM_NUMBERS_LIST, res);
|
|
|
|
i.putExtras(bundle);
|
|
|
|
setResult(RESULT_OK, i);
|
|
|
|
finish();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean onContextItemSelected(MenuItem item) {
|
|
|
|
switch(item.getItemId()) {
|
|
|
|
case DELETE_ID:
|
|
|
|
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
|
|
|
|
mDbHelper.deleteGroup(info.id);
|
|
|
|
fillData();
|
|
|
|
return true;
|
|
|
|
case EDIT_ID:
|
|
|
|
AdapterContextMenuInfo infoEdit = (AdapterContextMenuInfo) item.getMenuInfo();
|
|
|
|
editGroup(infoEdit.id);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return super.onContextItemSelected(item);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean onMenuItemSelected(int featureId, MenuItem item) {
|
|
|
|
switch(item.getItemId()) {
|
|
|
|
case CREATE_ID:
|
|
|
|
editGroup(null);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return super.onMenuItemSelected(featureId, item);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void editGroup(Long gid) {
|
|
|
|
Intent i = new Intent(this, GroupEditActivity.class);
|
|
|
|
|
|
|
|
if (gid != null) {
|
|
|
|
i.putExtra(PARAM_GROUP_ID, gid);
|
|
|
|
}
|
|
|
|
|
|
|
|
startActivityForResult(i, ACTIVITY_EDIT_GROUP);
|
|
|
|
}
|
|
|
|
}
|