|
@@ -42,6 +42,7 @@ import com.yunbao.common.utils.RouteUtil;
|
|
|
import com.yunbao.common.utils.WordUtil;
|
|
import com.yunbao.common.utils.WordUtil;
|
|
|
import com.yunbao.main.R;
|
|
import com.yunbao.main.R;
|
|
|
import com.yunbao.main.activity.ChooseCityActivity;
|
|
import com.yunbao.main.activity.ChooseCityActivity;
|
|
|
|
|
+import com.yunbao.main.activity.GoodsFilterActivity;
|
|
|
import com.yunbao.main.activity.MainActivity;
|
|
import com.yunbao.main.activity.MainActivity;
|
|
|
import com.yunbao.main.activity.MallSearchActivity;
|
|
import com.yunbao.main.activity.MallSearchActivity;
|
|
|
import com.yunbao.main.activity.YoungOpenedActivity;
|
|
import com.yunbao.main.activity.YoungOpenedActivity;
|
|
@@ -70,8 +71,6 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
private boolean mBannerNeedUpdate;
|
|
private boolean mBannerNeedUpdate;
|
|
|
private List<BannerBean> mBannerList;
|
|
private List<BannerBean> mBannerList;
|
|
|
private List<GoodsHomeClassBean> mClassList;
|
|
private List<GoodsHomeClassBean> mClassList;
|
|
|
-
|
|
|
|
|
- private List<GoodsHomeClassBean> mOneClassList;
|
|
|
|
|
private RecyclerView mRecyclerViewClass;
|
|
private RecyclerView mRecyclerViewClass;
|
|
|
private boolean mClassShowed;
|
|
private boolean mClassShowed;
|
|
|
private View mScrollIndicator;
|
|
private View mScrollIndicator;
|
|
@@ -92,9 +91,11 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
private TextView mSpecialSeckillTip;
|
|
private TextView mSpecialSeckillTip;
|
|
|
private TextView mLocation;
|
|
private TextView mLocation;
|
|
|
private String mCityVal;
|
|
private String mCityVal;
|
|
|
- private String mOneClassId;
|
|
|
|
|
|
|
+ private String mType;
|
|
|
private ActivityResultCallback mChooseCityResultCallback;
|
|
private ActivityResultCallback mChooseCityResultCallback;
|
|
|
|
|
|
|
|
|
|
+ private boolean mRecommendGoodsNeedUpdate;
|
|
|
|
|
+
|
|
|
public MainMallViewHolder(Context context, ViewGroup parentView) {
|
|
public MainMallViewHolder(Context context, ViewGroup parentView) {
|
|
|
super(context, parentView);
|
|
super(context, parentView);
|
|
|
}
|
|
}
|
|
@@ -107,8 +108,10 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
@Override
|
|
@Override
|
|
|
public void init() {
|
|
public void init() {
|
|
|
setStatusHeight();
|
|
setStatusHeight();
|
|
|
|
|
+ mType = "1";
|
|
|
findViewById(R.id.btn_search).setOnClickListener(this);
|
|
findViewById(R.id.btn_search).setOnClickListener(this);
|
|
|
findViewById(R.id.btn_shop_location).setOnClickListener(this);
|
|
findViewById(R.id.btn_shop_location).setOnClickListener(this);
|
|
|
|
|
+// findViewById(R.id.btn_shop_filter).setOnClickListener(this);
|
|
|
mLocation = findViewById(R.id.tv_shop_location);
|
|
mLocation = findViewById(R.id.tv_shop_location);
|
|
|
mRefreshView = findViewById(R.id.refreshView);
|
|
mRefreshView = findViewById(R.id.refreshView);
|
|
|
mRefreshView.setEmptyLayoutId(R.layout.view_no_data_main_mall);
|
|
mRefreshView.setEmptyLayoutId(R.layout.view_no_data_main_mall);
|
|
@@ -127,7 +130,7 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void loadData(int p, HttpCallback callback) {
|
|
public void loadData(int p, HttpCallback callback) {
|
|
|
- MainHttpUtil.getHomeGoodsList(p, mOneClassId, callback);
|
|
|
|
|
|
|
+ MainHttpUtil.getHomeGoodsList(p, mType, callback);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -149,26 +152,25 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
mBannerList = bannerList;
|
|
mBannerList = bannerList;
|
|
|
- mOneClassList = JSON.parseArray(obj.getString("shoponeclass"), GoodsHomeClassBean.class);
|
|
|
|
|
// loadOneClassGoods();
|
|
// loadOneClassGoods();
|
|
|
- mClassList = JSON.parseArray(obj.getString("shoptwoclass"), GoodsHomeClassBean.class);
|
|
|
|
|
- // mClassList移除 mName为全部的
|
|
|
|
|
- if (mClassList != null && mClassList.size() > 0) {
|
|
|
|
|
- for (int i = mClassList.size() - 1; i >= 0; i--) {
|
|
|
|
|
- if (mClassList.get(i).getName().equals(mContext.getString(R.string.all))) {
|
|
|
|
|
- mClassList.remove(i);
|
|
|
|
|
|
|
+ mClassList = JSON.parseArray(obj.getString("shoponeclass"), GoodsHomeClassBean.class);
|
|
|
|
|
+ List<MainMallGoodsBean> recommendList = JSON.parseArray(obj.getString("recom_goods_list"), MainMallGoodsBean.class);
|
|
|
|
|
+ mRecommendGoodsNeedUpdate = false;
|
|
|
|
|
+ if (recommendList != null && recommendList.size() > 0) {
|
|
|
|
|
+ if (mRecommendList == null || mRecommendList.size() != recommendList.size()) {
|
|
|
|
|
+ mRecommendGoodsNeedUpdate = true;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ for (int i = 0; i < mRecommendList.size(); i++) {
|
|
|
|
|
+ MainMallGoodsBean bean = mRecommendList.get(i);
|
|
|
|
|
+ if (bean == null || !bean.isEqual(recommendList.get(i))) {
|
|
|
|
|
+ mRecommendGoodsNeedUpdate = true;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- mRecommendList = new ArrayList<MainMallGoodsBean>();
|
|
|
|
|
- MainMallGoodsBean bean = new MainMallGoodsBean();
|
|
|
|
|
- bean.setId("11");
|
|
|
|
|
- bean.setName("乐山橙子");
|
|
|
|
|
- bean.setPrice("19.9");
|
|
|
|
|
- mRecommendList.add(bean);
|
|
|
|
|
- mRecommendList.add(bean);
|
|
|
|
|
- mRecommendList.add(bean);
|
|
|
|
|
- return JSON.parseArray(obj.getString("shop_goods_list"), MainMallGoodsBean.class);
|
|
|
|
|
|
|
+ mRecommendList = recommendList;
|
|
|
|
|
+ return JSON.parseArray(obj.getString("shop_class_goods_list"), MainMallGoodsBean.class);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -245,22 +247,22 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
mTeenagerWrap.setVisibility(View.VISIBLE);
|
|
mTeenagerWrap.setVisibility(View.VISIBLE);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// mRecommend = headView.findViewById(R.id.class_recommend);
|
|
|
|
|
-// mRecyclerViewRecommend = headView.findViewById(R.id.hot_product_recyclerView);
|
|
|
|
|
-// TextView tvTitle = headView.findViewById(R.id.tv_shop_name);
|
|
|
|
|
-// String fullText = "爆款推荐";
|
|
|
|
|
-// SpannableString spannable = new SpannableString(fullText);
|
|
|
|
|
-// spannable.setSpan(
|
|
|
|
|
-// new ForegroundColorSpan(Color.parseColor("#12CD7C")),
|
|
|
|
|
-// 0, 2, // 开始位置到结束位置(不包含结束)
|
|
|
|
|
-// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
|
|
|
|
|
-// );
|
|
|
|
|
-// spannable.setSpan(
|
|
|
|
|
-// new ForegroundColorSpan(Color.parseColor("#333333")),
|
|
|
|
|
-// 2, fullText.length(),
|
|
|
|
|
-// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
|
|
|
|
|
-// );
|
|
|
|
|
-// tvTitle.setText(spannable);
|
|
|
|
|
|
|
+ mRecommend = headView.findViewById(R.id.class_recommend);
|
|
|
|
|
+ mRecyclerViewRecommend = headView.findViewById(R.id.hot_product_recyclerView);
|
|
|
|
|
+ TextView tvTitle = headView.findViewById(R.id.tv_shop_name);
|
|
|
|
|
+ String fullText = "爆款推荐";
|
|
|
|
|
+ SpannableString spannable = new SpannableString(fullText);
|
|
|
|
|
+ spannable.setSpan(
|
|
|
|
|
+ new ForegroundColorSpan(Color.parseColor("#12CD7C")),
|
|
|
|
|
+ 0, 2, // 开始位置到结束位置(不包含结束)
|
|
|
|
|
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
|
|
|
|
|
+ );
|
|
|
|
|
+ spannable.setSpan(
|
|
|
|
|
+ new ForegroundColorSpan(Color.parseColor("#333333")),
|
|
|
|
|
+ 2, fullText.length(),
|
|
|
|
|
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
|
|
|
|
|
+ );
|
|
|
|
|
+ tvTitle.setText(spannable);
|
|
|
|
|
|
|
|
mNormalGoodsMenu = headView.findViewById(R.id.btn_normal_goods);
|
|
mNormalGoodsMenu = headView.findViewById(R.id.btn_normal_goods);
|
|
|
mAgriculturalAssistanceMenu = headView.findViewById(R.id.btn_agricultural_assistance);
|
|
mAgriculturalAssistanceMenu = headView.findViewById(R.id.btn_agricultural_assistance);
|
|
@@ -298,33 +300,6 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * 加载一级分类下的商品
|
|
|
|
|
- */
|
|
|
|
|
- private void loadOneClassGoods() {
|
|
|
|
|
- if (!TextUtils.isEmpty(mOneClassId)) {
|
|
|
|
|
- MainHttpUtil.getHomeOneClassGoodsList(mOneClassId, "fold", new HttpCallback() {
|
|
|
|
|
- @Override
|
|
|
|
|
- public void onSuccess(int code, String msg, String[] info) {
|
|
|
|
|
- if (code == 0 && info.length > 0) {
|
|
|
|
|
- JSONObject obj = JSON.parseObject(info[0]);
|
|
|
|
|
- List<MainMallGoodsBean> goodsList = JSON.parseArray(obj.getString("list"), MainMallGoodsBean.class);
|
|
|
|
|
- if (mAdapter != null && goodsList != null) {
|
|
|
|
|
- mAdapter.refreshData(goodsList);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- @Override
|
|
|
|
|
- public void onError() {
|
|
|
|
|
-// toast
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
private void showBanner() {
|
|
private void showBanner() {
|
|
|
if (mBanner == null || mBannerWrap == null) {
|
|
if (mBanner == null || mBannerWrap == null) {
|
|
|
return;
|
|
return;
|
|
@@ -370,8 +345,21 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
mRecommend.setVisibility(View.VISIBLE);
|
|
mRecommend.setVisibility(View.VISIBLE);
|
|
|
- ItemDecoration itemDecoration = new ItemDecoration(mContext, 0x00000000, DpUtil.dp2px(10), 0);
|
|
|
|
|
- mRecyclerViewRecommend.addItemDecoration(itemDecoration);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (!mRecommendGoodsNeedUpdate) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 设置网格布局管理器,每行展示3个Item
|
|
|
|
|
+ GridLayoutManager layoutManager = new GridLayoutManager(mContext, 3);
|
|
|
|
|
+ mRecyclerViewRecommend.setLayoutManager(layoutManager);
|
|
|
|
|
+
|
|
|
|
|
+ // 清除之前的ItemDecoration,避免重复添加
|
|
|
|
|
+// if (mRecyclerViewRecommend.getItemDecorationCount() > 0) {
|
|
|
|
|
+// mRecyclerViewRecommend.removeItemDecorationAt(0);
|
|
|
|
|
+// }
|
|
|
|
|
+// ItemDecoration itemDecoration = new ItemDecoration(mContext, 0x00000000, DpUtil.dp2px(1), 0);
|
|
|
|
|
+// mRecyclerViewRecommend.addItemDecoration(itemDecoration);
|
|
|
MainMallHotAdapter adapter = new MainMallHotAdapter(mContext, mRecommendList);
|
|
MainMallHotAdapter adapter = new MainMallHotAdapter(mContext, mRecommendList);
|
|
|
mRecyclerViewRecommend.setAdapter(adapter);
|
|
mRecyclerViewRecommend.setAdapter(adapter);
|
|
|
}
|
|
}
|
|
@@ -400,6 +388,9 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
int id = v.getId();
|
|
int id = v.getId();
|
|
|
if (id == R.id.btn_close_teenager) {
|
|
if (id == R.id.btn_close_teenager) {
|
|
|
YoungOpenedActivity.forward(mContext);
|
|
YoungOpenedActivity.forward(mContext);
|
|
|
|
|
+// } else if (id == R.id.btn_shop_filter) {
|
|
|
|
|
+//// 打开GoodsFilterActivity
|
|
|
|
|
+// GoodsFilterActivity.forward(mContext);
|
|
|
} else if (id == R.id.btn_shop_location) {
|
|
} else if (id == R.id.btn_shop_location) {
|
|
|
if (mChooseCityResultCallback == null) {
|
|
if (mChooseCityResultCallback == null) {
|
|
|
mChooseCityResultCallback = new ActivityResultCallback() {
|
|
mChooseCityResultCallback = new ActivityResultCallback() {
|
|
@@ -435,15 +426,6 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
}
|
|
}
|
|
|
MallSearchActivity.forward(mContext);
|
|
MallSearchActivity.forward(mContext);
|
|
|
} else if (id == R.id.btn_normal_goods) {
|
|
} else if (id == R.id.btn_normal_goods) {
|
|
|
-// 获取mNormalGoodsText文字和mOneClassList中mName一致的
|
|
|
|
|
- for (GoodsHomeClassBean bean : mOneClassList) {
|
|
|
|
|
- if (bean.getName().equals(mNormalGoodsText.getText().toString())) {
|
|
|
|
|
- if (bean.getId().equals(mOneClassId)) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- mOneClassId = bean.getId();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
// 普通商品
|
|
// 普通商品
|
|
|
mNormalGoodsText.setTextColor(Color.parseColor("#303132"));
|
|
mNormalGoodsText.setTextColor(Color.parseColor("#303132"));
|
|
|
// mNormalGoodsText.setTypeface(mNormalGoodsText.getTypeface(), Typeface.BOLD);
|
|
// mNormalGoodsText.setTypeface(mNormalGoodsText.getTypeface(), Typeface.BOLD);
|
|
@@ -459,19 +441,14 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
// mSpecialSeckillText.setTypeface(mSpecialSeckillText.getTypeface(), Typeface.NORMAL);
|
|
// mSpecialSeckillText.setTypeface(mSpecialSeckillText.getTypeface(), Typeface.NORMAL);
|
|
|
mSpecialSeckillTip.setBackground(null);
|
|
mSpecialSeckillTip.setBackground(null);
|
|
|
mSpecialSeckillTip.setTextColor(Color.parseColor("#999999"));
|
|
mSpecialSeckillTip.setTextColor(Color.parseColor("#999999"));
|
|
|
-
|
|
|
|
|
- if (mRefreshView != null) {
|
|
|
|
|
- mRefreshView.initData();
|
|
|
|
|
- }
|
|
|
|
|
- } else if (id == R.id.btn_agricultural_assistance) {
|
|
|
|
|
- for (GoodsHomeClassBean bean : mOneClassList) {
|
|
|
|
|
- if (bean.getName().equals(mAgriculturalAssistanceText.getText().toString())) {
|
|
|
|
|
- if (bean.getId().equals(mOneClassId)) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- mOneClassId = bean.getId();
|
|
|
|
|
|
|
+ if (!mType.equals("1")){
|
|
|
|
|
+ mType = "1";
|
|
|
|
|
+ if (mRefreshView != null) {
|
|
|
|
|
+ mRefreshView.initData();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ } else if (id == R.id.btn_agricultural_assistance) {
|
|
|
// 助农特惠
|
|
// 助农特惠
|
|
|
mAgriculturalAssistanceText.setTextColor(Color.parseColor("#303132"));
|
|
mAgriculturalAssistanceText.setTextColor(Color.parseColor("#303132"));
|
|
|
// mAgriculturalAssistanceText.setTypeface(mAgriculturalAssistanceText.getTypeface(), Typeface.BOLD);
|
|
// mAgriculturalAssistanceText.setTypeface(mAgriculturalAssistanceText.getTypeface(), Typeface.BOLD);
|
|
@@ -487,18 +464,13 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
// mSpecialSeckillText.setTypeface(mSpecialSeckillText.getTypeface(), Typeface.NORMAL);
|
|
// mSpecialSeckillText.setTypeface(mSpecialSeckillText.getTypeface(), Typeface.NORMAL);
|
|
|
mSpecialSeckillTip.setBackground(null);
|
|
mSpecialSeckillTip.setBackground(null);
|
|
|
mSpecialSeckillTip.setTextColor(Color.parseColor("#999999"));
|
|
mSpecialSeckillTip.setTextColor(Color.parseColor("#999999"));
|
|
|
- if (mRefreshView != null) {
|
|
|
|
|
- mRefreshView.initData();
|
|
|
|
|
- }
|
|
|
|
|
- } else if (id == R.id.btn_special_seckill) {
|
|
|
|
|
- for (GoodsHomeClassBean bean : mOneClassList) {
|
|
|
|
|
- if (bean.getName().equals(mSpecialSeckillText.getText().toString())) {
|
|
|
|
|
- if (bean.getId().equals(mOneClassId)) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- mOneClassId = bean.getId();
|
|
|
|
|
|
|
+ if (!mType.equals("2")){
|
|
|
|
|
+ mType = "2";
|
|
|
|
|
+ if (mRefreshView != null) {
|
|
|
|
|
+ mRefreshView.initData();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ } else if (id == R.id.btn_special_seckill) {
|
|
|
// 特价秒杀
|
|
// 特价秒杀
|
|
|
mSpecialSeckillText.setTextColor(Color.parseColor("#303132"));
|
|
mSpecialSeckillText.setTextColor(Color.parseColor("#303132"));
|
|
|
// mSpecialSeckillText.setTypeface(mSpecialSeckillText.getTypeface(), Typeface.BOLD);
|
|
// mSpecialSeckillText.setTypeface(mSpecialSeckillText.getTypeface(), Typeface.BOLD);
|
|
@@ -514,8 +486,11 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
|
|
|
// mAgriculturalAssistanceText.setTypeface(mAgriculturalAssistanceText.getTypeface(), Typeface.NORMAL);
|
|
// mAgriculturalAssistanceText.setTypeface(mAgriculturalAssistanceText.getTypeface(), Typeface.NORMAL);
|
|
|
mAgriculturalAssistanceTip.setBackground(null);
|
|
mAgriculturalAssistanceTip.setBackground(null);
|
|
|
mAgriculturalAssistanceTip.setTextColor(Color.parseColor("#999999"));
|
|
mAgriculturalAssistanceTip.setTextColor(Color.parseColor("#999999"));
|
|
|
- if (mRefreshView != null) {
|
|
|
|
|
- mRefreshView.initData();
|
|
|
|
|
|
|
+ if (!mType.equals("3")){
|
|
|
|
|
+ mType = "3";
|
|
|
|
|
+ if (mRefreshView != null) {
|
|
|
|
|
+ mRefreshView.initData();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|