package com.hx.hxchat.holder;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
import com.hx.hxchat.activity.GroupsActivity;
import com.hx.hxchat.adapter.GroupAdaptercopy;
import com.hx.hxchat.domain.GroupInfo;
import com.hx.hxchat.utils.StringUtils;
import com.mgw.member.R;
import com.mgw.member.uitls.LogUtils;
import com.mgw.member.uitls.UIUtils;
public class GroupListItemHeaderHolder extends BaseHolder<String> implements OnClickListener {
private TextView textView;
private Context context;
private BaseListView groupListView;
private EditText query;
private ImageButton search_clear;
private ImageButton imgb_search;
public GroupListItemHeaderHolder(Context context, BaseListView groupListView) {
// TODO Auto-generated constructor stub
this.context = context;
this.groupListView = groupListView;
}
@Override
protected View initView() {
View v = UIUtils.inflate(R.layout.search_bar_with_padding);
query = (EditText) v.findViewById(R.id.query);
search_clear = (ImageButton) v.findViewById(R.id.search_clear);
imgb_search = (ImageButton) v.findViewById(R.id.imgb_search);
search_clear.setOnClickListener(this);
imgb_search.setOnClickListener(this);
query.addTextChangedListener(new watcher());
return v;
}
@Override
public void refreshView() {
search_clear.setVisibility(StringUtils.isEmpty(query.getText().toString())?View.GONE:View.VISIBLE);
}
private long sencodeTextChangedTime;
private long firstTextChangedTime;
private String beforeText;
private String crrentText;
private GroupAdaptercopy groupAdapter;
private Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 001:
break;
default:
break;
}
};
};
class watcher implements TextWatcher {
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
firstTextChangedTime = SystemClock.currentThreadTimeMillis();
refreshView();
if("".equals(s.toString())){
refreshinfiet("");
}
LogUtils.i(GroupsActivity.TAG, "TextWatcher,afterTextChanged s=" + s + ",Editable=" + s);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
LogUtils.i(GroupsActivity.TAG, "TextWatcher,beforeTextChanged s=" + s + ",count=" + count);
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
LogUtils.i(GroupsActivity.TAG, "TextWatcher,onTextChanged s=" + s + ",count=" + count);
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.search_clear:
query.setText("");
refreshinfiet("");
break;
case R.id.imgb_search:
if(query.getText().toString()==null){
return;
}
refreshinfiet(query.getText().toString());
break;
default:
break;
}
}
private void refreshinfiet(String aa) {
Pattern p = Pattern.compile(aa);
List<GroupInfo> mDatas = ((GroupsActivity) context).mDatas;
List<GroupInfo> mDatasMatcher = new ArrayList<GroupInfo>();
mDatasMatcher.clear();
for (GroupInfo dd : mDatas) {
if(dd==null||dd.getGroupName()==null||dd.getGroupId()==null)
continue;
Matcher matcher = p.matcher(dd.getGroupName()+dd.getGroupId());
if (matcher.find()) {
mDatasMatcher.add(dd);
}
groupAdapter = new GroupAdaptercopy(context, 1, mDatasMatcher, groupListView);
groupListView.setAdapter(groupAdapter);
// groupAdapter.notifyDataSetChanged();
query.requestFocus();
}
}
}