package com.diandi.demo.adapter;
import android.app.ProgressDialog;
import android.content.Context;
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.diandi.demo.CustomApplication;
import com.diandi.demo.R;
import com.diandi.demo.adapter.base.BaseListAdapter;
import com.diandi.demo.adapter.base.ViewHolder;
import com.diandi.demo.util.CollectionUtils;
import com.diandi.demo.util.ImageLoadOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
import cn.bmob.im.BmobUserManager;
import cn.bmob.im.bean.BmobInvitation;
import cn.bmob.im.config.BmobConfig;
import cn.bmob.im.db.BmobDB;
import cn.bmob.im.util.BmobLog;
import cn.bmob.v3.listener.UpdateListener;
/**
* *******************************************************************************
* ********* Author : klob(kloblic@gmail.com) .
* ********* Date : 2014-11-29 .
* ********* Time : 11:46 .
* ********* Project name : Diandi1.18 .
* ********* Version : 1.0
* ********* Copyright @ 2014, klob, All Rights Reserved
* *******************************************************************************
*/
public class NewFriendAdapter extends BaseListAdapter<BmobInvitation> {
public NewFriendAdapter(Context context, List<BmobInvitation> list) {
super(context, list);
}
@Override
public View bindView(int arg0, View convertView, ViewGroup arg2) {
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item_add_friend, null);
}
final BmobInvitation msg = getList().get(arg0);
ImageView avatarImg = ViewHolder.get(convertView, R.id.item_add_friend_avatar_img);
TextView nameText = ViewHolder.get(convertView, R.id.item_add_friend_name_text);
final Button addBtn = ViewHolder.get(convertView, R.id.item_add_friend_add_btn);
String avatar = msg.getAvatar();
if (avatar != null && !avatar.equals("")) {
ImageLoader.getInstance().displayImage(avatar, avatarImg, ImageLoadOptions.getOptions());
} else {
avatarImg.setImageResource(R.drawable.default_head);
}
int status = msg.getStatus();
if (status == BmobConfig.INVITE_ADD_NO_VALIDATION || status == BmobConfig.INVITE_ADD_NO_VALI_RECEIVED) {
// btn_add.setText("同意");
// btn_add.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.btn_login_selector));
// btn_add.setTextColor(mContext.getResources().getColor(R.color.base_color_text_white));
addBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
BmobLog.i("点击同意按钮:" + msg.getFromid());
agressAdd(addBtn, msg);
}
});
} else if (status == BmobConfig.INVITE_ADD_AGREE) {
addBtn.setText("已同意");
addBtn.setBackgroundDrawable(null);
addBtn.setTextColor(mContext.getResources().getColor(R.color.base_color_text_black));
addBtn.setEnabled(false);
}
nameText.setText(msg.getFromname());
return convertView;
}
/**
* 添加好友
* agressAdd
*
* @param @param btn_add
* @param @param msg
* @return void
* @throws
* @Title: agressAdd
* @Description: TODO
*/
private void agressAdd(final Button btn_add, final BmobInvitation msg) {
final ProgressDialog progress = new ProgressDialog(mContext);
progress.setMessage("正在添加...");
progress.setCanceledOnTouchOutside(false);
progress.show();
try {
//同意添加好友
BmobUserManager.getInstance(mContext).agreeAddContact(msg, new UpdateListener() {
@Override
public void onSuccess() {
progress.dismiss();
btn_add.setText("已同意");
btn_add.setBackgroundDrawable(null);
btn_add.setTextColor(mContext.getResources().getColor(R.color.base_color_text_black));
btn_add.setEnabled(false);
//保存到application中方便比较
CustomApplication.getInstance().setContactList(CollectionUtils.list2map(BmobDB.create(mContext).getContactList()));
}
@Override
public void onFailure(int arg0, final String arg1) {
progress.dismiss();
ShowToast("添加失败: " + arg1);
}
});
} catch (final Exception e) {
progress.dismiss();
ShowToast("添加失败: " + e.getMessage());
}
}
}