/**
*
*/
package com.photoshare.service.findfriends.views;
import java.util.List;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
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.ImageView;
import android.widget.ListView;
import com.photoshare.service.users.UserInfo;
import com.photoshare.tabHost.R;
import com.photoshare.utils.async.AsyncUtils;
/**
* @author czj_yy
*
*/
public class FindFriendsView {
private Context context;
private View baseView;
private EditText mSearchNameView;
private Button mSearchBtn;
private ListView mFriendsView;
private FindFriendsAdapter mAdapter;
private List<UserInfo> mFriendsList;
private AsyncUtils async;
/**
* @param context
* @param baseView
* @param mFriendsList
* @param async
*/
public FindFriendsView(Context context, View baseView,
List<UserInfo> mFriendsList, AsyncUtils async) {
super();
this.context = context;
this.baseView = baseView;
this.mFriendsList = mFriendsList;
this.async = async;
}
public void applyView() {
mSearchBtn = (Button) baseView.findViewById(R.id.findFriendsBtn);
mSearchNameView = (EditText) baseView
.findViewById(R.id.findFriendsEditText);
mSearchBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (onSearchClickListener != null) {
onSearchClickListener.OnSearch(mSearchBtn, getSearchStr());
}
}
});
mFriendsView = (ListView) baseView
.findViewById(R.id.findFriendsListView);
mAdapter = new FindFriendsAdapter();
mFriendsView.setAdapter(mAdapter);
mFriendsView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
UserInfo info = mFriendsList.get(position);
if (info != null) {
if (onSearchClickListener != null) {
onSearchClickListener.OnItemClicked(info);
}
}
}
});
}
public void setmFriendsList(List<UserInfo> mFriendsList) {
this.mFriendsList = mFriendsList;
if (mAdapter != null) {
mAdapter.notifyDataSetChanged();
}
}
private String getSearchStr() {
return mSearchNameView.getText().toString();
}
private class FindFriendsAdapter extends ArrayAdapter<UserInfo> {
/**
* @param context
* @param textViewResourceId
* @param objects
*/
public FindFriendsAdapter() {
super(context, 0, mFriendsList);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
FindFriendsItemView ffView;
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (rowView == null) {
rowView = inflater.inflate(R.layout.find_friends_layout, null);
UserInfo info = getItem(position);
ffView = new FindFriendsItemView(rowView, async, info);
rowView.setTag(ffView);
} else {
ffView = (FindFriendsItemView) rowView.getTag();
}
ffView.registerListener(viewDisplay);
ffView.applyView();
return rowView;
}
}
private FindFriendsItemView.OnFriendsViewDisplay viewDisplay = new FindFriendsItemView.OnFriendsViewDisplay() {
public void OnDisplay(ImageView view, Drawable drawable, String url) {
// TODO Auto-generated method stub
if (onSearchClickListener != null) {
onSearchClickListener.OnDisplay(view, drawable, url);
}
}
public void OnDefault(ImageView view) {
// TODO Auto-generated method stub
if (onSearchClickListener != null) {
onSearchClickListener.OnDefault(view);
}
}
};
public void clear() {
mFriendsList.clear();
if (mAdapter != null) {
mAdapter.notifyDataSetChanged();
}
}
private OnSearchClick onSearchClickListener;
public void registerListener(OnSearchClick onSearchClick) {
this.onSearchClickListener = onSearchClick;
}
public interface OnSearchClick {
public void OnSearch(View view, String str);
public void OnItemClicked(UserInfo info);
public void OnDisplay(ImageView view, Drawable drawable, String url);
public void OnDefault(ImageView view);
}
}