package com.example.lovetalk.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import com.avos.avoscloud.AVException; import com.avos.avoscloud.AVFile; import com.avos.avoscloud.AVUser; import com.avos.avoscloud.SaveCallback; import com.example.lovetalk.R; import com.example.lovetalk.service.AddRequest; import com.example.lovetalk.service.AddRequestService; import com.example.lovetalk.service.UserService; import com.example.lovetalk.util.Utils; import com.example.lovetalk.view.ViewHolder; import java.util.List; public class NewFriendAdapter extends BaseListAdapter<AddRequest> { public NewFriendAdapter(Context context, List<AddRequest> list) { super(context, list); // TODO Auto-generated constructor stub } @Override public View getView(int position, View conView, ViewGroup parent) { // TODO Auto-generated method stub if (conView == null) { LayoutInflater mInflater = LayoutInflater.from(ctx); conView = mInflater.inflate(R.layout.contact_add_friend_item, null); } final AddRequest addRequest = datas.get(position); TextView nameView = ViewHolder.findViewById(conView, R.id.name); ImageView avatarView = ViewHolder.findViewById(conView, R.id.avatar); final Button addBtn = ViewHolder.findViewById(conView, R.id.add); String avatarUrl = getAvatarUrl(addRequest.getFromUser()); UserService.displayAvatar(avatarUrl, avatarView); int status = addRequest.getStatus(); if (status == AddRequest.STATUS_WAIT) { addBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub agreeAdd(addBtn, addRequest); } }); } else if (status == AddRequest.STATUS_DONE) { toAgreedTextView(addBtn); } nameView.setText(addRequest.getFromUser().getUsername()); return conView; } public String getAvatarUrl(AVUser user) { AVFile avatar = user.getAVFile("avatar"); if (avatar != null) { return avatar.getUrl(); } else { return null; } } public void toAgreedTextView(Button addBtn) { addBtn.setText(R.string.agreed); addBtn.setBackgroundDrawable(null); addBtn.setTextColor(Utils.getColor(R.color.base_color_text_black)); addBtn.setEnabled(false); } private void agreeAdd(final Button addBtn, final AddRequest addRequest) { AddRequestService.agreeAddRequest(addRequest, new SaveCallback() { @Override public void done(AVException e) { toAgreedTextView(addBtn); } }); } }