package com.koushikdutta.desktopsms; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.TextView; public class BlackListActivity extends Activity { private static final String LOGTAG = BlackListActivity.class.getSimpleName(); SharedPreferences blacklist; ListView listView; ArrayAdapter<String> listViewAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.blacklist); setTitle(R.string.manage_blacklist); blacklist = getApplicationContext().getSharedPreferences("blacklist", android.content.Context.MODE_PRIVATE); listView = (ListView) findViewById(R.id.list); listViewAdapter = new ArrayAdapter<String>(this, 0) { @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) convertView = getLayoutInflater().inflate(R.layout.blacklist_item, null); ((TextView)convertView).setText(listViewAdapter.getItem(position)); return convertView; } }; listView.setAdapter(listViewAdapter); updateNumbers(); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> a, View v, int position, long id) { final String number = listViewAdapter.getItem(position); AlertDialog.Builder numberBuilder = new AlertDialog.Builder(BlackListActivity.this); numberBuilder.setTitle(getString(R.string.blacklist_remove_number, number)); numberBuilder.setNegativeButton(android.R.string.cancel, null); numberBuilder.setPositiveButton(android.R.string.ok, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { blacklist.edit().remove(number).commit(); updateNumbers(); } }); numberBuilder.create().show(); } }); final EditText numberToAdd = (EditText) findViewById(R.id.edit); Button addToBlacklist = (Button) findViewById(R.id.add); addToBlacklist.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String numberAdded = numberToAdd.getText().toString(); if (!"".equals(numberAdded)) blacklist.edit().putBoolean(numberAdded, true).commit(); numberToAdd.setText(""); updateNumbers(); Log.i(LOGTAG, "Added " + numberAdded + " to blacklist."); } }); } private void updateNumbers() { listViewAdapter.clear(); for (String number : blacklist.getAll().keySet()) { listViewAdapter.add(number); } listViewAdapter.notifyDataSetChanged(); } }