|
|
@@ -1,6 +1,7 @@
|
|
|
package com.modular.appmessages.adapter;
|
|
|
|
|
|
import android.content.Context;
|
|
|
+import android.graphics.Bitmap;
|
|
|
import android.support.v7.widget.RecyclerView;
|
|
|
import android.text.Html;
|
|
|
import android.text.TextUtils;
|
|
|
@@ -10,6 +11,7 @@ import android.view.ViewGroup;
|
|
|
import android.widget.ImageView;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
+import com.common.LogUtil;
|
|
|
import com.common.data.ListUtils;
|
|
|
import com.common.data.StringUtil;
|
|
|
import com.core.app.MyApplication;
|
|
|
@@ -23,6 +25,10 @@ import com.core.xmpp.utils.HtmlUtils;
|
|
|
import com.modular.appmessages.R;
|
|
|
import com.modular.appmessages.model.MessageHeader;
|
|
|
import com.modular.appmessages.model.MessageNew;
|
|
|
+import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
|
|
+import com.nostra13.universalimageloader.core.ImageLoader;
|
|
|
+import com.nostra13.universalimageloader.core.assist.FailReason;
|
|
|
+import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
@@ -113,24 +119,25 @@ public class MessageNewAdapter extends RecyclerView.Adapter<MessageNewAdapter.Vi
|
|
|
@Override
|
|
|
public void onBindViewHolder(ViewHolder viewHolder, int i) {
|
|
|
MessageNew model = models.get(i);
|
|
|
- viewHolder.itemView.setTag(R.id.tag_key,i);
|
|
|
- viewHolder.itemView.setTag(R.id.tag_key2,model);
|
|
|
+ viewHolder.itemView.setTag(R.id.tag_key, i);
|
|
|
+ viewHolder.itemView.setTag(R.id.tag_key2, model);
|
|
|
if (model != null && model.getT() != null) {
|
|
|
if (model.getT() instanceof MessageHeader) {
|
|
|
- bindHeader((MessageHeader) model.getT(), viewHolder);
|
|
|
+ bindHeader((MessageHeader) model.getT(), viewHolder,i);
|
|
|
} else if (model.getT() instanceof BaseSortModel) {
|
|
|
BaseSortModel baseSortModel = (BaseSortModel) model.getT();
|
|
|
if (baseSortModel.getBean() instanceof Friend) {
|
|
|
- bindView(viewHolder, (Friend) baseSortModel.getBean());
|
|
|
+ bindView(viewHolder, (Friend) baseSortModel.getBean(), i);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void bindHeader(MessageHeader model, ViewHolder hodler) {
|
|
|
+ private void bindHeader(MessageHeader model, ViewHolder hodler,int position) {
|
|
|
hodler.itemView.setOnLongClickListener(null);
|
|
|
hodler.itemView.setOnClickListener(mOnClickListener);
|
|
|
+ hodler.headerImg.setTag(position);
|
|
|
if (model != null) {
|
|
|
hodler.headerImg.setImageResource(model.getIcon());
|
|
|
if (model.getRedNum() > 0) {
|
|
|
@@ -183,7 +190,7 @@ public class MessageNewAdapter extends RecyclerView.Adapter<MessageNewAdapter.Vi
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- private void bindView(ViewHolder holder, Friend friend) {
|
|
|
+ private void bindView(final ViewHolder holder, Friend friend, final int position) {
|
|
|
holder.itemView.setOnLongClickListener(mOnLongClickListener);
|
|
|
holder.itemView.setOnClickListener(mOnClickListener);
|
|
|
holder.headerImg.setBackgroundResource(R.color.transparent);
|
|
|
@@ -196,7 +203,41 @@ public class MessageNewAdapter extends RecyclerView.Adapter<MessageNewAdapter.Vi
|
|
|
holder.headerImg.setImageResource(R.drawable.icon_uuhelper);
|
|
|
} else {
|
|
|
if (friend.getRoomFlag() == 0) {// 这是单个人
|
|
|
- AvatarHelper.getInstance().display(friend.getUserId(), holder.headerImg, false, false);//每次刷新都会去删除此人缓存
|
|
|
+ String url = AvatarHelper.getInstance().getAvatarUrl(friend.getUserId(), false);
|
|
|
+ holder.headerImg.setTag(position);
|
|
|
+ ImageLoader.getInstance().displayImage(url, holder.headerImg, mNormalImageOptions, new ImageLoadingListener() {
|
|
|
+ @Override
|
|
|
+ public void onLoadingStarted(String s, View view) {
|
|
|
+ LogUtil.i("gong","onLoadingStarted");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onLoadingFailed(String s, View view, FailReason failReason) {
|
|
|
+ LogUtil.i("gong","onLoadingFailed");
|
|
|
+ if (holder.headerImg.getTag() != null && holder.headerImg.getTag() instanceof Integer) {
|
|
|
+ int item = (int) holder.headerImg.getTag();
|
|
|
+ if (item == position) {
|
|
|
+ holder.headerImg.setImageResource(R.drawable.avatar_round);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onLoadingComplete(String s, View view, Bitmap bitmap) {
|
|
|
+ LogUtil.i("gong","onLoadingComplete");
|
|
|
+ if (holder.headerImg.getTag() != null && holder.headerImg.getTag() instanceof Integer) {
|
|
|
+ int item = (int) holder.headerImg.getTag();
|
|
|
+ if (item == position) {
|
|
|
+ holder.headerImg.setImageBitmap(bitmap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onLoadingCancelled(String s, View view) {
|
|
|
+ LogUtil.i("gong","onLoadingCancelled");
|
|
|
+ }
|
|
|
+ });
|
|
|
} else {
|
|
|
if (TextUtils.isEmpty(friend.getRoomCreateUserId())) {
|
|
|
holder.headerImg.setImageResource(R.drawable.qunliao);
|
|
|
@@ -232,7 +273,12 @@ public class MessageNewAdapter extends RecyclerView.Adapter<MessageNewAdapter.Vi
|
|
|
}
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+ DisplayImageOptions mNormalImageOptions = new DisplayImageOptions.Builder()
|
|
|
+ .bitmapConfig(Bitmap.Config.RGB_565)
|
|
|
+ .cacheInMemory(true)
|
|
|
+ .cacheOnDisc(true)
|
|
|
+ .resetViewBeforeLoading(false)
|
|
|
+ .build();
|
|
|
private void doShowMsgPhotos(ViewHolder holder, Friend friend) {
|
|
|
String msg_type = friend.getDescription();
|
|
|
if (!TextUtils.isEmpty(msg_type)) {
|