package com.parttime.addresslist.userdetail; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.Toast; import com.easemob.chat.EMContactManager; import com.easemob.chatuidemo.domain.User; import com.parttime.IM.ChatActivity; import com.parttime.pojo.UserDetailVO; import com.qingmu.jianzhidaren.R; import com.quark.jianzhidaren.ApplicationControl; import com.quark.ui.widget.EditDialog; import java.util.Map; import java.util.Set; /** * 好友容器 */ public class FriendContentContainer implements View.OnClickListener{ public Button sendAddFriend, //发送添加好友 toMsg, //发起会话 deleteFriend;//删除好友 LinearLayout friendContainer; UserDetailActivity activity; //数据部分 UserDetailPagerAdapter.UserDetailFragment userDetailFragment; UserDetailPagerAdapter userDetailPagerAdapter; public FriendContentContainer(UserDetailPagerAdapter.UserDetailFragment userDetailFragment, UserDetailPagerAdapter userDetailPagerAdapter) { this.userDetailFragment = userDetailFragment; this.userDetailPagerAdapter = userDetailPagerAdapter; activity = userDetailPagerAdapter.userDetailActivity; } public void initView(View view){ sendAddFriend = (Button)view.findViewById(R.id.send_add_friend); toMsg = (Button)view.findViewById(R.id.to_msg); deleteFriend = (Button)view.findViewById(R.id.delete_friend); friendContainer = (LinearLayout)view.findViewById(R.id.friend_container); toMsg.setOnClickListener(this); sendAddFriend.setOnClickListener(this); } public void reflesh(UserDetailVO vo) { Map<String,User> contactList = ApplicationControl.getInstance().getContactList(); if(contactList != null && vo != null){ String userId = vo.userId; boolean contain = false; Set<String> keys = contactList.keySet(); for(String key : keys){ if(key.contains(userId)){ contain = true; break; } } if(contain){ //初始化好友界面 toMsg.setVisibility(View.VISIBLE); deleteFriend.setVisibility(View.GONE); friendContainer.setVisibility(View.VISIBLE); }else{ //初始化加入好友界面 sendAddFriend.setVisibility(View.VISIBLE); } } } @Override public void onClick(View v) { switch (v.getId()){ case R.id.send_add_friend: sendAddFriend("", "请在下方表明您的身份", userDetailFragment.userId); break; case R.id.to_msg: toMsg(); break; case R.id.delete_friend: deleteFriend(); break; } } private void sendAddFriend(String str, final String str2, final String userId) { final EditDialog.Builder builder = new EditDialog.Builder(activity); builder.setMessage(str); builder.setTitle(str2); builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { final String content = builder.getContent(); dialog.dismiss(); final ProgressDialog progressDialog = new ProgressDialog(activity); progressDialog.setMessage("正在发送请求..."); progressDialog.setCanceledOnTouchOutside(false); progressDialog.show(); new Thread(new Runnable() { public void run() { try { String sendstr ; // demo写死了个reason,实际应该让用户手动填入 if (content.isEmpty()) { sendstr = "邀请你为好友"; } else { sendstr = content; } EMContactManager.getInstance().addContact( userId, sendstr); activity.runOnUiThread(new Runnable() { public void run() { progressDialog.dismiss(); Toast.makeText(activity, "发送请求成功,等待对方验证", Toast.LENGTH_LONG) .show(); } }); } catch (final Exception e) { activity.runOnUiThread(new Runnable() { public void run() { progressDialog.dismiss(); Toast.makeText(activity, "请求添加好友失败:" + e.getMessage(), Toast.LENGTH_LONG) .show(); } }); } } }).start(); } }); builder.create().show(); } private void toMsg() { activity.startActivity(new Intent(activity, ChatActivity.class).putExtra("userId", userDetailFragment.userId)); } private void deleteFriend() { } }