package com.quark.adapter; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.List; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.os.Environment; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.android.volley.DefaultRetryPolicy; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.Response.ErrorListener; import com.android.volley.VolleyError; import com.android.volley.toolbox.ImageRequest; import com.carson.constant.ConstantForSaveList; import com.easemob.chat.EMContactManager; import com.easemob.chatuidemo.activity.AlertDialog; import com.qingmu.jianzhidaren.R; import com.quark.common.Url; import com.quark.http.image.CircularImage; import com.quark.http.image.LoadImage; import com.quark.jianzhidaren.ApplicationControl; import com.quark.model.HuanxinUser; import com.quark.ui.widget.EditDialog; import com.quark.volley.VolleySington; /** * * @ClassName: HuanxingSearchUserAdapter * @Description: 环信查找人员列表 * @author howe * @date 2015-2-5 上午11:16:35 * */ public class HuanxingSearchUserAdapter extends BaseAdapter { private ViewHolder holder; private List<HuanxinUser> list; private Context context; Activity activity; private ProgressDialog progressDialog; protected RequestQueue queue = VolleySington.getInstance() .getRequestQueue(); private SharedPreferences sp; public HuanxingSearchUserAdapter(Context context, List<HuanxinUser> list, Activity activity) { this.list = list; this.context = context; this.activity = activity; sp = context.getSharedPreferences("jrdr.setting", context.MODE_PRIVATE); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(final int i, View convertView, ViewGroup parent) { if (convertView == null) { holder = new ViewHolder(); convertView = LayoutInflater.from(context).inflate( R.layout.item_huanxinsearchuser, null); holder.avatar = (CircularImage) convertView .findViewById(R.id.avatar); holder.name = (TextView) convertView.findViewById(R.id.name); holder.indicator = (Button) convertView .findViewById(R.id.indicator); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } if ((list.get(i).getAvatar() != null) && (!list.get(i).getAvatar().equals(""))) { // 现获取本地头像 loadNativePhoto(list.get(i).getUid(), list.get(i).getAvatar(), holder.avatar); } else { if (list.get(i).getUid().contains("u")) { holder.avatar.setImageResource(R.drawable.default_avatar); } else if (list.get(i).getUid().contains("c")) { holder.avatar .setImageResource(R.drawable.default_avatar_business); } } holder.name.setText(list.get(i).getName()); holder.indicator.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // carson 添加好友是点击添加判断是否已添加或者是否是自己? // ApplicationControl.getInstance().getUserName().equals(list.get(i).getName()) // carson 更改判定条件是uid // ApplicationControl.getInstance().getUserName()得到的是uid,应该跟list.getUid对比 if (ApplicationControl.getInstance().getUserName() .equals(list.get(i).getUid())) { context.startActivity(new Intent(context, AlertDialog.class) .putExtra("msg", "不能添加自己")); return; } if (ApplicationControl.getInstance().getContactList() .containsKey(list.get(i).getUid())) { context.startActivity(new Intent(context, AlertDialog.class) .putExtra("msg", "此用户已是你的好友")); return; } showAlertDialog("留言", "留言", i); } }); return convertView; } private static class ViewHolder { CircularImage avatar; TextView name; Button indicator; } // /*************************carson add on // 4-9-19:47**************************************** /** * 加载本地头像 */ private void loadNativePhoto(final String id, final String avatarPic, final ImageView avatar) { File mePhotoFold = new File(Environment.getExternalStorageDirectory() + "/" + "jzdr/" + "image"); if (!mePhotoFold.exists()) { mePhotoFold.mkdirs(); } // 当前聊天对象的头像更改,要先联网验证头像路径是否更改 File picture_1 = new File(Environment.getExternalStorageDirectory() + "/" + "jzdr/" + "image/" + sp.getString(id + "_photo", "c")); if (picture_1.exists()) { // 加载本地图片 // Bitmap bb_bmp = MyResumeActivity.zoomImg(picture_1, 300, 300); Bitmap bb_bmp = BitmapFactory.decodeFile(Environment .getExternalStorageDirectory() + "/" + "jzdr/" + "image/" + sp.getString(id + "_photo", "c")); if (bb_bmp != null) { avatar.setImageBitmap(LoadImage.toRoundBitmap(bb_bmp)); // 更新本地数据 if (avatarPic != null && !"".equals(avatarPic)) { Editor edt = sp.edit(); edt.putString(id + "_photo", avatarPic); edt.commit(); } } else { loadpersonPic(avatarPic, avatar, 1); if (avatarPic != null && !"".equals(avatarPic)) { Editor edt = sp.edit(); edt.putString(id + "_photo", avatarPic); edt.commit(); } } } else { loadpersonPic(avatarPic, avatar, 1); if (avatarPic != null && !"".equals(avatarPic)) { Editor edt = sp.edit(); edt.putString(id + "_photo", avatarPic); edt.commit(); } } } /** * @Description: 加载图片 * @author howe * @date 2014-7-30 下午5:57:52 * */ public void loadpersonPic(final String url, final ImageView imageView, final int isRound) { ImageRequest imgRequest = new ImageRequest(Url.GETPIC + url, new Response.Listener<Bitmap>() { @Override public void onResponse(Bitmap arg0) { String picName = url; imageView.setImageBitmap(LoadImage.toRoundBitmap(arg0)); OutputStream output = null; try { File mePhotoFold = new File(Environment .getExternalStorageDirectory() + "/" + "jzdr/" + "image"); if (!mePhotoFold.exists()) { mePhotoFold.mkdirs(); } output = new FileOutputStream(Environment .getExternalStorageDirectory() + "/" + "jzdr/" + "image/" + picName); arg0.compress(Bitmap.CompressFormat.JPEG, 100, output); output.flush(); output.close(); } catch (Exception e) { e.printStackTrace(); } } }, 300, 200, Config.ARGB_8888, new ErrorListener() { @Override public void onErrorResponse(VolleyError arg0) { } }); queue.add(imgRequest); imgRequest.setRetryPolicy(new DefaultRetryPolicy( ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f)); } public void showAlertDialog(String str, final String str2, final int i) { final EditDialog.Builder builder = new EditDialog.Builder(context); builder.setMessage(str); builder.setTitle(str2); builder.setPositiveButton("确 定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { final String content = builder.getContent(); dialog.dismiss(); 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( list.get(i).getUid(), sendstr); activity.runOnUiThread(new Runnable() { public void run() { progressDialog.dismiss(); Toast.makeText(context, "发送请求成功,等待对方验证", 1) .show(); } }); } catch (final Exception e) { activity.runOnUiThread(new Runnable() { public void run() { progressDialog.dismiss(); Toast.makeText(context, "请求添加好友失败:" + e.getMessage(), 1) .show(); } }); } } }).start(); // }else{ // Toast.makeText(context, "请输入内容", 1).show(); // } } }); builder.create().show(); } }