package iShamrock.Postal.activity;
import android.app.ListActivity;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import iShamrock.Postal.R;
import iShamrock.Postal.database.Database;
import iShamrock.Postal.entity.User;
import java.util.ArrayList;
/**
* Created by lifengshuang on 2/22/15.
*/
public class AddFriend extends ListActivity {
// ListView listView;
EditText searchName;
ImageView search;
Runnable run;
ArrayList<User> allUsers;
ArrayList<User> friends;
ArrayList<User> list = new ArrayList<User>();
AddFriendAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_friend);
run = new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
};
allUsers = Database.getAllUsers();
friends = Database.getFriend();
initComponents();
}
private void initComponents() {
searchName = (EditText) findViewById(R.id.search_name);
search = (ImageView) findViewById(R.id.search_button_add_friend);
adapter = new AddFriendAdapter(this);
setListAdapter(adapter);
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
loadListData();
}
});
}
private void loadListData(){
String name = searchName.getText().toString();
list = new ArrayList<User>();
for (User i : allUsers) {
friends = Database.getFriend();
boolean isFriend = false;
for (User j : friends){
if (j.getPhone().equals(i.getPhone())){
isFriend = true;
break;
}
}
if (i.getNickname() != null && i.getPhone() != null) {
if (i.getNickname().startsWith(name)
&& !i.getPhone().equals(Database.me.getPhone())
&& !isFriend) {
list.add(i);
}
}
}
runOnUiThread(run);
}
public final class ViewHolder {
ImageView imageView;
TextView name;
TextView phone;
ImageView add;
}
public class AddFriendAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public AddFriendAdapter(Context context) {
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(final int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = mInflater.inflate(R.layout.add_friend_item, null);
holder.imageView = (ImageView) view.findViewById(R.id.photo_add_friend);
holder.name = (TextView) view.findViewById(R.id.username_add_friend);
holder.phone = (TextView) view.findViewById(R.id.phone_add_friend);
holder.add = (ImageView) view.findViewById(R.id.button_add_friend);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
try {
holder.imageView.setImageBitmap(MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.parse(list.get(i).getPhotoURI())));
} catch (Exception e) {
e.printStackTrace();
holder.imageView.setImageResource(R.drawable.zhihu);
}
holder.name.setText(list.get(i).getNickname());
holder.phone.setText(list.get(i).getPhone());
final int i_copy = i;
holder.add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Database.addFriend(list.get(i_copy));
loadListData();
Toast.makeText(AddFriend.this, "Added!", Toast.LENGTH_SHORT).show();
}
});
runOnUiThread(run);
return view;
}
}
}