|
@@ -1,15 +1,11 @@
|
|
|
package com.sheishuo.app.core_module.trade.view.adapter;
|
|
|
|
|
|
import android.content.Context;
|
|
|
-import android.support.annotation.Nullable;
|
|
|
-import android.support.constraint.ConstraintLayout;
|
|
|
-import android.support.v7.widget.CardView;
|
|
|
import android.support.v7.widget.RecyclerView;
|
|
|
import android.util.Log;
|
|
|
import android.view.LayoutInflater;
|
|
|
import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
|
-import android.widget.GridLayout;
|
|
|
import android.widget.ImageView;
|
|
|
import android.widget.LinearLayout;
|
|
|
import android.widget.TextView;
|
|
@@ -22,31 +18,23 @@ import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
|
|
|
import com.sheishuo.app.R;
|
|
|
import com.sheishuo.app.cache.AccountCache;
|
|
|
import com.sheishuo.app.common.beans.TradeBean;
|
|
|
-import com.sheishuo.app.common.util.img.ImgUtil;
|
|
|
import com.sheishuo.app.common.views.GridViewAdapter;
|
|
|
import com.sheishuo.app.common.views.ImgGridView;
|
|
|
import com.sheishuo.app.common.views.PartlyHighLightTextView;
|
|
|
import com.sheishuo.app.core_module.mine.view.ui.activity.MineTradeActivity;
|
|
|
import com.sheishuo.app.core_module.trade.model.TradeModel;
|
|
|
-import com.sheishuo.app.core_module.trade.view.ui.activity.TradeChangePriorityActivity;
|
|
|
-import com.sheishuo.app.login.beans.LoginBean;
|
|
|
import com.sheishuo.app.main.fragment.TradeListFragment;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* Created by KN on 2017/8/1.
|
|
|
*/
|
|
|
|
|
|
-public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.TradeItemViewHolder> implements View.OnClickListener{
|
|
|
+public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.TradeItemViewHolder> implements View.OnClickListener {
|
|
|
|
|
|
- public static final String PRIORITY_DISTRICT = "3"
|
|
|
- ,PRIORITY_CITY = "2"
|
|
|
- ,PRIORITY_PROVINCE = "1"
|
|
|
- ,PRIORITY_COUNTRY = "0";
|
|
|
+ public static final String PRIORITY_DISTRICT = "3", PRIORITY_CITY = "2", PRIORITY_PROVINCE = "1", PRIORITY_COUNTRY = "0";
|
|
|
|
|
|
private boolean IS_IN_MINE_INFO = false;
|
|
|
|
|
@@ -57,8 +45,11 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
|
|
|
private OnTradeItemClickListener listener;
|
|
|
|
|
|
|
|
|
+ //FLAGS
|
|
|
+ public static Boolean IS_SEARCH_MODE = false;
|
|
|
|
|
|
- public TradeItemAdapter(TradeListFragment fragment,TradeBean bean){
|
|
|
+
|
|
|
+ public TradeItemAdapter(TradeListFragment fragment, TradeBean bean) {
|
|
|
data = new ArrayList<>();
|
|
|
this.fragment = fragment;
|
|
|
context = fragment.getActivity();
|
|
@@ -66,17 +57,17 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
|
|
|
}
|
|
|
|
|
|
|
|
|
- public TradeItemAdapter(MineTradeActivity activity, TradeBean bean){
|
|
|
+ public TradeItemAdapter(MineTradeActivity activity, TradeBean bean) {
|
|
|
data = new ArrayList<>();
|
|
|
this.activity = activity;
|
|
|
this.context = activity;
|
|
|
addAll(bean);
|
|
|
- IS_IN_MINE_INFO =true;
|
|
|
+ IS_IN_MINE_INFO = true;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public TradeItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
|
|
- View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.trade_list_item,parent,false);
|
|
|
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.trade_list_item, parent, false);
|
|
|
return new TradeItemViewHolder(view);
|
|
|
}
|
|
|
|
|
@@ -100,21 +91,21 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
|
|
|
holder.content.setText(bean.getMsg());
|
|
|
String highLightStr = "";
|
|
|
|
|
|
- if (!bean.getDistrict().isEmpty()){
|
|
|
+ if (!bean.getDistrict().isEmpty()) {
|
|
|
highLightStr = highLightStr + "[" + bean.getDistrict() + "]";
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
highLightStr = highLightStr + "[全国]";
|
|
|
}
|
|
|
|
|
|
- if (Integer.valueOf(bean.getType()) == TradeModel.TYPE_SELL){
|
|
|
+ if (Integer.valueOf(bean.getType()) == TradeModel.TYPE_SELL) {
|
|
|
highLightStr = highLightStr + "[出售]";
|
|
|
- }else if(Integer.valueOf(bean.getType()) == TradeModel.TYPE_BUY){
|
|
|
+ } else if (Integer.valueOf(bean.getType()) == TradeModel.TYPE_BUY) {
|
|
|
highLightStr = highLightStr + "[求购]";
|
|
|
}
|
|
|
|
|
|
|
|
|
- if (!highLightStr.isEmpty()){
|
|
|
- holder.content.addHightlightStr(highLightStr,R.color.green_4DC0A4);
|
|
|
+ if (!highLightStr.isEmpty()) {
|
|
|
+ holder.content.addHightlightStr(highLightStr, R.color.green_4DC0A4);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -123,53 +114,56 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
|
|
|
|
|
|
|
|
|
//设置置顶权限
|
|
|
- if (Integer.valueOf(bean.getPriority()) > 0){
|
|
|
+ if (bean.getPriority() != null && Integer.valueOf(bean.getPriority()) > 0) {
|
|
|
holder.priority.setText("置顶x" + bean.getPriority());
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+
|
|
|
//判断是否为自己发布的交易帖,如果是才能编辑置顶加权
|
|
|
- if (bean.getUser_id().equals(AccountCache.getAccount().getId())){
|
|
|
- holder.priority.setTag(R.id.flag_trade_id,bean.getId());
|
|
|
- holder.priority.setTag(R.id.flag_trade_priority,bean.getPriority());
|
|
|
- holder.priority.setTag(R.id.flag_trade_priority_type,bean.getPriority_type());
|
|
|
+ if (bean.getUser_id().equals(AccountCache.getAccount().getId())) {
|
|
|
+ holder.priority.setTag(R.id.flag_trade_id, bean.getId());
|
|
|
+ holder.priority.setTag(R.id.flag_trade_priority, bean.getPriority());
|
|
|
+ holder.priority.setTag(R.id.flag_trade_priority_type, bean.getPriority_type());
|
|
|
holder.priority.setOnClickListener(this);
|
|
|
}
|
|
|
|
|
|
|
|
|
//判断是否已加关注
|
|
|
- if (1 == bean.getFollow()){
|
|
|
+ if (1 == bean.getFollow()) {
|
|
|
Glide.with(context).load(R.drawable.trade_followed).into(holder.followImg);
|
|
|
- holder.followImg.setTag(R.drawable.trade_followed,bean.getId());
|
|
|
+ holder.followImg.setTag(R.drawable.trade_followed, bean.getId());
|
|
|
holder.followImg.setOnClickListener(this);
|
|
|
- }else {
|
|
|
- holder.followImg.setTag(R.drawable.trade_unfollowed,bean.getId());
|
|
|
+ } else {
|
|
|
+ holder.followImg.setTag(R.drawable.trade_unfollowed, bean.getId());
|
|
|
holder.followImg.setOnClickListener(this);
|
|
|
}
|
|
|
|
|
|
//设置浏览量
|
|
|
- holder.review.setText("浏览"+bean.getReview());
|
|
|
+ holder.review.setText("浏览" + bean.getReview());
|
|
|
|
|
|
//加载thumbs
|
|
|
- GridViewAdapter gridViewAdapter = new GridViewAdapter(context,bean.getThumbs(),bean.getPics());
|
|
|
- if (bean.getThumbs().size() > 4){
|
|
|
+ GridViewAdapter gridViewAdapter = new GridViewAdapter(context, bean.getThumbs(), bean.getPics());
|
|
|
+ if (bean.getThumbs().size() > 4) {
|
|
|
//默认为两列,如果超过4张图则显示为3列
|
|
|
holder.imgGridView.setNumColumns(3);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
holder.imgGridView.setNumColumns(2);
|
|
|
}
|
|
|
holder.imgGridView.setAdapter(gridViewAdapter);
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
//预加载
|
|
|
- if (IS_IN_MINE_INFO){
|
|
|
- if (position >= data.size() - 1){
|
|
|
- activity.getTradeList(activity.TYPE_TO_LOAD,activity.PAGE_TO_LOAD);
|
|
|
+ //如果为搜索结果模式,停止预加载
|
|
|
+ if (IS_SEARCH_MODE) return;
|
|
|
+
|
|
|
+ if (IS_IN_MINE_INFO) {
|
|
|
+ if (position >= data.size() - 1) {
|
|
|
+ activity.getTradeList(activity.TYPE_TO_LOAD, activity.PAGE_TO_LOAD);
|
|
|
}
|
|
|
- }else {
|
|
|
- if (position >= data.size() - 1){
|
|
|
- fragment.loadTradeList(fragment.TYPE_TO_LOAD,fragment.PAGE_TO_LOAD);
|
|
|
+ } else {
|
|
|
+ if (position >= data.size() - 1) {
|
|
|
+ fragment.loadTradeList(fragment.TYPE_TO_LOAD, fragment.PAGE_TO_LOAD);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -184,27 +178,27 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
|
|
|
public void onViewRecycled(TradeItemViewHolder holder) {
|
|
|
super.onViewRecycled(holder);
|
|
|
//清空followImg设置的Tag
|
|
|
- holder.followImg.setTag(R.drawable.trade_followed,null);
|
|
|
- holder.followImg.setTag(R.drawable.trade_unfollowed,null);
|
|
|
+ holder.followImg.setTag(R.drawable.trade_followed, null);
|
|
|
+ holder.followImg.setTag(R.drawable.trade_unfollowed, null);
|
|
|
Glide.with(context).load(R.drawable.trade_unfollowed).into(holder.followImg);
|
|
|
}
|
|
|
|
|
|
|
|
|
@Override
|
|
|
public void onClick(View view) {
|
|
|
- if (listener != null)listener.onClick(view);
|
|
|
+ if (listener != null) listener.onClick(view);
|
|
|
}
|
|
|
|
|
|
|
|
|
//添加数据
|
|
|
- public void addAll(TradeBean bean){
|
|
|
+ public void addAll(TradeBean bean) {
|
|
|
final List<TradeBean.DBean.ListBean> datas = bean.getD().getList();
|
|
|
|
|
|
|
|
|
//将数据中的所有用户ID存入List
|
|
|
List<String> userIds = new ArrayList<>();
|
|
|
//遍历发布者ID
|
|
|
- for (TradeBean.DBean.ListBean data : datas){
|
|
|
+ for (TradeBean.DBean.ListBean data : datas) {
|
|
|
if (!userIds.contains(data.getUser_id()))
|
|
|
userIds.add(data.getUser_id());
|
|
|
}
|
|
@@ -215,12 +209,12 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
|
|
|
//添加数据
|
|
|
data.addAll(datas);
|
|
|
notifyDataSetChanged();
|
|
|
- Log.e("添加数据成功","Success");
|
|
|
+ Log.e("添加数据成功", "Success");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onFailed(int i) {
|
|
|
- Log.e("Failed",i+"");
|
|
|
+ Log.e("Failed", i + "");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -232,17 +226,17 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
|
|
|
}
|
|
|
|
|
|
//设置Item点击监听事件
|
|
|
- public void setOnTradeItemClickListener(OnTradeItemClickListener listener){
|
|
|
+ public void setOnTradeItemClickListener(OnTradeItemClickListener listener) {
|
|
|
this.listener = listener;
|
|
|
}
|
|
|
|
|
|
//有用户名返回用户名,无用户名返回用户ID
|
|
|
- private String getUserName(String userId){
|
|
|
+ private String getUserName(String userId) {
|
|
|
if (NIMClient.getService(UserService.class).getUserInfo(userId) != null) {
|
|
|
String name = NIMClient.getService(UserService.class).getUserInfo(userId).getName();
|
|
|
- if (name.equals("")){
|
|
|
+ if (name.equals("")) {
|
|
|
return userId;
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
return name;
|
|
|
}
|
|
|
}
|
|
@@ -251,9 +245,9 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
|
|
|
}
|
|
|
|
|
|
//用于更新本地缓存,标注已关注的帖子
|
|
|
- public void setFollowed(String id){
|
|
|
- for (TradeBean.DBean.ListBean bean: data){
|
|
|
- if (id.equals(bean.getId())){
|
|
|
+ public void setFollowed(String id) {
|
|
|
+ for (TradeBean.DBean.ListBean bean : data) {
|
|
|
+ if (id.equals(bean.getId())) {
|
|
|
bean.setFollow(1);
|
|
|
Log.e("notifyDataSetChanged", " true");
|
|
|
notifyDataSetChanged();
|
|
@@ -261,10 +255,11 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
//用于更新本地缓存,标注取消关注的帖子
|
|
|
- public void setUnfollowed(String id){
|
|
|
- for (TradeBean.DBean.ListBean bean: data){
|
|
|
- if (id.equals(bean.getId())){
|
|
|
+ public void setUnfollowed(String id) {
|
|
|
+ for (TradeBean.DBean.ListBean bean : data) {
|
|
|
+ if (id.equals(bean.getId())) {
|
|
|
bean.setFollow(0);
|
|
|
Log.e("notifyDataSetChanged", " true");
|
|
|
notifyDataSetChanged();
|
|
@@ -273,16 +268,16 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void clearAll(){
|
|
|
+ public void clearAll() {
|
|
|
data.clear();
|
|
|
notifyDataSetChanged();
|
|
|
}
|
|
|
|
|
|
- public void updateTradePriority(String id,String priority){
|
|
|
- Log.e("adapter","收到置顶修改请求");
|
|
|
- Log.e("adapter",id + " " + priority);
|
|
|
- for (TradeBean.DBean.ListBean bean : data){
|
|
|
- if (bean.getId().equals(id)){
|
|
|
+ public void updateTradePriority(String id, String priority) {
|
|
|
+ Log.e("adapter", "收到置顶修改请求");
|
|
|
+ Log.e("adapter", id + " " + priority);
|
|
|
+ for (TradeBean.DBean.ListBean bean : data) {
|
|
|
+ if (bean.getId().equals(id)) {
|
|
|
bean.setPriority(priority);
|
|
|
}
|
|
|
}
|
|
@@ -290,12 +285,13 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
|
|
|
notifyDataSetChanged();
|
|
|
}
|
|
|
|
|
|
- class TradeItemViewHolder extends RecyclerView.ViewHolder{
|
|
|
+ class TradeItemViewHolder extends RecyclerView.ViewHolder {
|
|
|
private LinearLayout layout;
|
|
|
- private ImageView avatarImg,followImg;
|
|
|
- private TextView userName,date,priority,review;
|
|
|
+ private ImageView avatarImg, followImg;
|
|
|
+ private TextView userName, date, priority, review;
|
|
|
private PartlyHighLightTextView content;
|
|
|
private ImgGridView imgGridView;
|
|
|
+
|
|
|
public TradeItemViewHolder(View view) {
|
|
|
super(view);
|
|
|
layout = (LinearLayout) view.findViewById(R.id.trade_list_item_layout);
|
|
@@ -311,7 +307,7 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
|
|
|
}
|
|
|
|
|
|
|
|
|
- public interface OnTradeItemClickListener{
|
|
|
+ public interface OnTradeItemClickListener {
|
|
|
void onClick(View view);
|
|
|
}
|
|
|
}
|