package com.yeshi.ec.rebate.myapplication.presenter;
|
|
import android.app.Activity;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.support.v4.widget.SwipeRefreshLayout;
|
import android.util.Log;
|
import android.view.View;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.RelativeLayout;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.alibaba.baichuan.android.trade.model.AlibcShowParams;
|
import com.alibaba.baichuan.android.trade.model.OpenType;
|
import com.bumptech.glide.Glide;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.viewpagerindicator.LinePageIndicator;
|
import com.wpc.library.util.NetUtils;
|
import com.wpc.library.util.SystemCommon;
|
import com.wpc.library.util.common.DimenUtils;
|
import com.wpc.library.util.common.StringUtils;
|
import com.wpc.library.widget.RatioLayout;
|
import com.yeshi.ec.rebate.myapplication.R;
|
import com.yeshi.ec.rebate.myapplication.contract.JdSpecialFgContract;
|
import com.yeshi.ec.rebate.myapplication.entity.HomeBanner;
|
import com.yeshi.ec.rebate.myapplication.entity.TaoBaoGoodsBrief;
|
import com.yeshi.ec.rebate.myapplication.model.JdSpecialFgModel;
|
import com.yeshi.ec.rebate.myapplication.ui.invite.ShareBrowserActivity;
|
import com.yeshi.ec.rebate.myapplication.ui.jdSpecial.JdSpecialTopAdapter;
|
import com.yeshi.ec.rebate.myapplication.ui.mine.LoginSelectActivity;
|
import com.yeshi.ec.rebate.myapplication.ui.recommend.GoodsDetailActivityJD;
|
import com.yeshi.ec.rebate.myapplication.util.JumpActivityUtil;
|
|
import org.json.JSONObject;
|
|
import java.util.Iterator;
|
import java.util.List;
|
|
/**
|
* 京东精选 fragment presenter
|
*/
|
public class JdSpeciaFgPresenter extends BasePresenter<JdSpecialFgContract.JdSpecialView> {
|
private JdSpecialFgModel model;
|
private Context mContext;
|
|
public JdSpeciaFgPresenter(Context mContext) {
|
this.mContext = mContext;
|
this.model = new JdSpecialFgModel(mContext);
|
}
|
|
/**
|
* 获取京东专题商品
|
*
|
* @param page 页码
|
* @param cid 分类ID
|
*/
|
|
public void getGoodsInfo(String page, String cid, View bottom, TextView tv_loading, String setText) {
|
display_bottom(Integer.valueOf(page), bottom, tv_loading, setText);
|
model.getJdGoodsInfo(page, cid, new JdSpecialFgContract.JdSpecialFgCallBack() {
|
@Override
|
public void onSuccess(JSONObject obj) {
|
if (getView() != null) {
|
getView().onSearchSuccess(obj);
|
}
|
}
|
|
@Override
|
public void onFail(String errorInfo) {
|
if (getView() != null) {
|
getView().onSearchFail(errorInfo);
|
}
|
}
|
});
|
}
|
|
/**
|
* 京东精选 顶部轮播图 banner
|
*
|
* @param obj 数据
|
* @param indicator_recommend viewpage
|
* @param jdfgspecial_topbanner 指示器
|
* @param mBanners banner数据
|
* @param bannerAdapter 适配器
|
* @param indicatorRecommend
|
*/
|
public void setBanner(JSONObject obj, LinePageIndicator indicator_recommend, RatioLayout jdfgspecial_topbanner, List<HomeBanner> mBanners, JdSpecialTopAdapter bannerAdapter, int page, LinePageIndicator indicatorRecommend) {
|
//顶部banner
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<HomeBanner> list1 = null;
|
if (obj.optJSONObject("data").optJSONArray("listPic") != null) {
|
list1 = gson.fromJson(obj.optJSONObject("data").optJSONArray("listPic").toString(), new TypeToken<List<HomeBanner>>() {
|
}.getType());
|
float width = SystemCommon.getScreenWidth(mContext);
|
indicator_recommend.setLineWidth((width - (DimenUtils.dip2px(mContext, 30))) / list1.size());
|
indicator_recommend.setGapWidth(0);
|
indicator_recommend.setSelectedColor(mContext.getResources().getColor(R.color.white));
|
indicator_recommend.setUnselectedColor(mContext.getResources().getColor(R.color.transport_white3));
|
indicator_recommend.setStrokeWidth(DimenUtils.dip2px(mContext, 2));
|
}
|
if (page == 1 && (list1 == null || list1.size() == 0)) {
|
jdfgspecial_topbanner.setVisibility(View.GONE);
|
} else {
|
if (page == 1) {
|
jdfgspecial_topbanner.setVisibility(View.VISIBLE);
|
mBanners.clear();
|
mBanners.addAll(list1);
|
bannerAdapter.notifyDataSetChanged();
|
}
|
if (mBanners.size() == 1) {
|
indicator_recommend.setVisibility(View.GONE);
|
}
|
}
|
}
|
|
/**
|
* 京东 // 1大4小 专题列表
|
*
|
* @param obj 数据源
|
* @param page 页码
|
* @param pdd_top_speciallist 专题布局
|
* @param pdd_top_speciallist1 图1
|
* @param pdd_top_speciallist2 图2
|
* @param pdd_top_speciallist3 图3
|
* @param pdd_top_speciallist4 图4
|
* @param pdd_top_speciallist5 图5
|
* @param mlistSpe 专题数据
|
*/
|
public void setlistSpe(JSONObject obj, int page, RatioLayout pdd_top_speciallist, ImageView pdd_top_speciallist1, ImageView pdd_top_speciallist2,
|
ImageView pdd_top_speciallist3, ImageView pdd_top_speciallist4, ImageView pdd_top_speciallist5, List<HomeBanner> mlistSpe
|
) {
|
//顶部banner
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<HomeBanner> list1 = null;
|
if (obj.optJSONObject("data").optJSONArray("listSpe") != null) {
|
list1 = gson.fromJson(obj.optJSONObject("data").optJSONArray("listSpe").toString(), new TypeToken<List<HomeBanner>>() {
|
}.getType());
|
pdd_top_speciallist.setVisibility(View.VISIBLE);
|
}
|
if (page == 1 && (list1 == null || list1.size() == 0)) {
|
pdd_top_speciallist.setVisibility(View.GONE);
|
} else {
|
|
Glide.with(mContext)
|
.load(list1.get(0).getPicture())
|
.into(pdd_top_speciallist1);
|
Glide.with(mContext)
|
.load(list1.get(1).getPicture())
|
.into(pdd_top_speciallist2);
|
Glide.with(mContext)
|
.load(list1.get(2).getPicture())
|
.into(pdd_top_speciallist3);
|
Glide.with(mContext)
|
.load(list1.get(3).getPicture())
|
.into(pdd_top_speciallist4);
|
Glide.with(mContext)
|
.load(list1.get(4).getPicture())
|
.into(pdd_top_speciallist5);
|
mlistSpe.clear();
|
mlistSpe.addAll(list1);//添加专题列表 数据
|
}
|
}
|
|
/**
|
* 专题列表点击
|
*
|
* @param mList
|
* @param position
|
*/
|
public void setClickSpe(List<HomeBanner> mList, int position) {
|
if (mList.size() == 0) {
|
return;
|
}
|
JumpActivityUtil.jumpPage((Activity) mContext, mList.get(position).getJumpDetail(), mList.get(position).getParams());
|
}
|
|
|
/**
|
* 京东精选 商品加载
|
*
|
* @param obj 数据
|
* @param mList 商品list
|
* @param fragment_jdspecial_sf 下拉控件
|
*/
|
public void setList(JSONObject obj, List<TaoBaoGoodsBrief> mList, int page, SwipeRefreshLayout fragment_jdspecial_sf
|
, View bottom, ImageView iv_loading, TextView tv_loading, RelativeLayout ff_loading_no_data) {
|
Gson gson2 = new GsonBuilder().serializeNulls().create();
|
List<TaoBaoGoodsBrief> list = gson2.fromJson(obj.optJSONObject("data").optJSONArray("list").toString(), new TypeToken<List<TaoBaoGoodsBrief>>() {
|
}.getType());
|
if (page == 1)
|
mList.clear();
|
mList.addAll(list);
|
hide_bottom(mList, obj.optJSONObject("data").optInt("count"), bottom, iv_loading, tv_loading, ff_loading_no_data);
|
}
|
|
/**
|
* 显示 底部加载
|
*
|
* @param page
|
* @param bottom
|
*/
|
public void display_bottom(int page, View bottom, TextView tv_loading, String setText) {
|
if (page > 1) {
|
bottom.setVisibility(View.VISIBLE);
|
tv_loading.setText(setText);
|
}
|
}
|
|
/**
|
* 底部隐藏
|
*
|
* @param mList
|
* @param count
|
* @param bottom
|
* @param iv_loading
|
* @param tv_loading
|
* @param ff_loading_no_data
|
*/
|
private void hide_bottom(List<TaoBaoGoodsBrief> mList, int count, View bottom, ImageView iv_loading, TextView tv_loading, RelativeLayout ff_loading_no_data) {
|
if (mList.size() >= count) { //下拉数据请求完 到底了
|
bottom.setVisibility(View.VISIBLE);
|
iv_loading.setVisibility(View.GONE);
|
tv_loading.setText(mContext.getResources().getString(R.string.list_no_more));
|
} else { //下拉还有数据时
|
bottom.setVisibility(View.GONE);
|
}
|
if (mList.size() == 0) { //没有数据情况
|
bottom.setVisibility(View.VISIBLE);
|
ff_loading_no_data.setVisibility(View.VISIBLE); //展示 无数据页
|
} else {
|
ff_loading_no_data.setVisibility(View.GONE); //隐藏无数据页
|
}
|
}
|
|
/**
|
* 请求失败
|
*
|
* @param mList
|
* @param ll_no_data_rf
|
* @param ll_no_net
|
* @param ll_no_data
|
* @param ll_request_failture
|
*/
|
public void error(List<TaoBaoGoodsBrief> mList, ImageView ll_no_data_rf, LinearLayout ll_no_net, LinearLayout ll_no_data, LinearLayout ll_request_failture) {
|
if (mList.size() == 0) {
|
if (NetUtils.getNetworkState(mContext).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
requestState(3, ll_no_data_rf, ll_no_net, ll_no_data, ll_request_failture);
|
} else {
|
requestState(2, ll_no_data_rf, ll_no_net, ll_no_data, ll_request_failture);
|
}
|
} else {
|
if (NetUtils.getNetworkState(mContext).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
Toast.makeText(mContext, "网络未连接,请检测网络设置", Toast.LENGTH_SHORT).show();
|
} else {
|
Toast.makeText(mContext, "网络连接异常,请检测网络设置", Toast.LENGTH_SHORT).show();
|
}
|
}
|
}
|
|
/**
|
* 请求状态 0 数据正常展示;1 返回数据为空;2 网络请求失败;3 没有连接网络
|
*
|
* @param state
|
*/
|
public void requestState(int state, ImageView ll_no_data_rf, LinearLayout ll_no_net, LinearLayout ll_no_data, LinearLayout ll_request_failture) {
|
ll_no_data_rf.setVisibility(state == 1 ? View.VISIBLE : View.GONE);
|
ll_no_data.setVisibility(state == 1 ? View.VISIBLE : View.GONE);
|
ll_request_failture.setVisibility(state == 2 ? View.VISIBLE : View.GONE);
|
ll_no_net.setVisibility(state == 3 ? View.VISIBLE : View.GONE);
|
}
|
|
/**
|
* 判断登陆
|
*
|
* @return 登陆状态
|
*/
|
public boolean isLogin() {
|
final SharedPreferences sp = mContext.getSharedPreferences("user", Context.MODE_PRIVATE);
|
return sp.getBoolean("isLogin", false);
|
}
|
}
|