working gui
[adBlock.git] / src / de / ub0r / android / adBlock / AdBlock.java
blob6098d7745f3c9f905c4ebead5fd53f3fdaea6208
1 package de.ub0r.android.adBlock;
3 import java.util.ArrayList;
5 import android.app.Activity;
6 import android.app.AlertDialog;
7 import android.content.DialogInterface;
8 import android.content.Intent;
9 import android.os.Bundle;
10 import android.view.View;
11 import android.view.View.OnClickListener;
12 import android.widget.AdapterView;
13 import android.widget.ArrayAdapter;
14 import android.widget.Button;
15 import android.widget.EditText;
16 import android.widget.ListView;
17 import android.widget.AdapterView.OnItemClickListener;
19 /**
20 * Main Activity to controle ad blocking proxy.
22 * @author flx
24 public class AdBlock extends Activity implements OnClickListener,
25 OnItemClickListener {
27 /** ItemDialog: edit. */
28 private static final short ITEM_DIALOG_EDIT = 0;
29 /** ItemDialog: delete. */
30 private static final short ITEM_DIALOG_DELETE = 1;
32 /** The filter. */
33 private ArrayList<String> filter = new ArrayList<String>();
34 /** The ArrayAdapter. */
35 private ArrayAdapter<String> adapter = null;
37 /** Editmode? */
38 private int itemToEdit = -1;
40 /**
41 * Called when the activity is first created.
43 * @param savedInstanceState
44 * saved InstanceState
46 @Override
47 public final void onCreate(final Bundle savedInstanceState) {
48 super.onCreate(savedInstanceState);
49 this.setContentView(R.layout.main);
51 ((Button) this.findViewById(R.id.start_service))
52 .setOnClickListener(this);
53 ((Button) this.findViewById(R.id.stop_service))
54 .setOnClickListener(this);
55 ((Button) this.findViewById(R.id.filter_add_)).setOnClickListener(this);
56 ListView lv = (ListView) this.findViewById(R.id.filter);
57 this.adapter = new ArrayAdapter<String>(this,
58 android.R.layout.simple_list_item_1, this.filter);
59 lv.setAdapter(this.adapter);
60 lv.setTextFilterEnabled(true);
61 lv.setOnItemClickListener(this);
64 /**
65 * OnClickListener.
67 * @param v
68 * view
70 @Override
71 public final void onClick(final View v) {
72 switch (v.getId()) {
73 case R.id.start_service:
74 this.startService(new Intent(this, Proxy.class));
75 break;
76 case R.id.stop_service:
77 this.stopService(new Intent(this, Proxy.class));
78 case R.id.filter_add_:
79 EditText et = (EditText) this.findViewById(R.id.filter_add);
80 String f = et.getText().toString();
81 if (f.length() > 0) {
82 if (this.itemToEdit >= 0) {
83 this.filter.remove(this.itemToEdit);
84 this.itemToEdit = -1;
86 this.filter.add(f);
87 et.setText("");
88 this.adapter.notifyDataSetChanged();
90 break;
91 default:
92 break;
96 /**
97 * Handle clicked ListItem.
99 * @param parent
100 * parent AdapterView
101 * @param v
102 * View
103 * @param position
104 * Position
105 * @param id
106 * id
108 @Override
109 public final void onItemClick(final AdapterView<?> parent, final View v,
110 final int position, final long id) {
112 AlertDialog.Builder builder = new AlertDialog.Builder(this);
113 // builder.setTitle("Pick a color");
114 builder.setItems(
115 this.getResources().getStringArray(R.array.itemDialog),
116 new DialogInterface.OnClickListener() {
117 public void onClick(final DialogInterface dialog,
118 final int item) {
119 switch (item) {
120 case ITEM_DIALOG_EDIT:
121 AdBlock.this.itemToEdit = position;
122 ((EditText) AdBlock.this
123 .findViewById(R.id.filter_add))
124 .setText(AdBlock.this.adapter
125 .getItem(position));
126 break;
127 case ITEM_DIALOG_DELETE:
128 AdBlock.this.filter.remove(position);
129 AdBlock.this.adapter.notifyDataSetChanged();
130 break;
131 default:
132 break;
136 AlertDialog alert = builder.create();
137 alert.show();