package com.tejia.lijin.app.ui.recommend;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageManager;
|
import android.graphics.Canvas;
|
import android.graphics.Rect;
|
import android.graphics.drawable.AnimationDrawable;
|
import android.graphics.drawable.GradientDrawable;
|
import android.os.Bundle;
|
import android.os.Handler;
|
import android.os.Message;
|
import android.provider.Settings;
|
import android.util.Log;
|
import android.view.Gravity;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.ScrollView;
|
import android.widget.SeekBar;
|
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.lzj.gallery.library.views.BannerViewPager;
|
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
|
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.ShoppingApi;
|
import com.tejia.lijin.app.ShoppingApplication;
|
import com.tejia.lijin.app.entity.FirstCategory;
|
import com.tejia.lijin.app.entity.HomeBanner;
|
import com.tejia.lijin.app.entity.JumpDetail;
|
import com.tejia.lijin.app.entity.LimitTimeBuy;
|
import com.tejia.lijin.app.entity.PushEventData;
|
import com.tejia.lijin.app.entity.RecommendHot;
|
import com.tejia.lijin.app.entity.SpecialOffer2;
|
import com.tejia.lijin.app.entity.TaoBaoGoodsBrief;
|
import com.tejia.lijin.app.ui.dialog.ShapeLoadingDialog;
|
import com.tejia.lijin.app.ui.invite.ShareBrowserActivity;
|
import com.tejia.lijin.app.ui.timeLimitedSpike.TimeLimitedSpikeActivity;
|
import com.tejia.lijin.app.util.FlowLayout;
|
import com.tejia.lijin.app.util.JumpActivityUtil;
|
import com.tejia.lijin.app.util.ui.HomeUIUtil;
|
import com.tejia.lijin.app.util.umengCustomEvent.MainCustomEvent;
|
import com.tejia.lijin.app.util.user.UserUtil;
|
import com.wpc.library.RetainViewFragment;
|
import com.wpc.library.content.ConnectivityChangeHelper;
|
import com.wpc.library.util.NetUtils;
|
import com.wpc.library.util.SystemCommon;
|
import com.wpc.library.util.cache.DiskLruCache;
|
import com.wpc.library.util.common.DimenUtils;
|
import com.wpc.library.util.common.StorageUtils;
|
import com.wpc.library.util.common.StringUtils;
|
import com.wpc.library.widget.MyGridView;
|
import com.wpc.library.widget.RatioLayout;
|
|
import org.apache.http.Header;
|
import org.json.JSONException;
|
import org.json.JSONObject;
|
|
import java.io.File;
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.Collections;
|
import java.util.Iterator;
|
import java.util.List;
|
|
import androidx.annotation.NonNull;
|
import androidx.annotation.Nullable;
|
import androidx.recyclerview.widget.GridLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
import androidx.viewpager.widget.PagerAdapter;
|
import androidx.viewpager.widget.ViewPager;
|
|
import static android.content.Context.MODE_PRIVATE;
|
|
/**
|
* Created by weikou2015 on 2017/2/20.
|
* 精选--首页
|
*/
|
|
public class RecommendFragment extends RetainViewFragment implements View.OnClickListener {
|
private LinearLayout ll_fragment_activity, ll_special_offer, ll_limit_time_buy, ll_jinbi_exchange_buy;
|
private MyGridView gv_limit_time_goods, gv_jinbi_exchange_goods;
|
private SwipeRefreshLayout rl_first_page;
|
private ImageView iv_activity_bg, iv_slid_top, iv_input;
|
private FrameLayout fl_fragment_activity;
|
private RatioLayout rl_recommend_activity2;
|
private RecyclerView rv_recommend_goods, rv_special_offer;
|
private View v_divider;
|
private FlowLayout flow_hot;
|
ScrollView sv_hot;
|
private View bottom;
|
private ImageView iv_loading, iv_hot_img;
|
private TextView tv_loading;
|
|
com.lzj.gallery.library.views.BannerViewPager vp_banner;
|
ViewPager vp_recommend_activity2;
|
private LinearLayout ll_no_net, ll_no_data, ll_request_failture;
|
|
private List<HomeBanner> mBanners = new ArrayList<>();
|
private List<SpecialOffer2> circleSpecials = new ArrayList<>();
|
private List<SpecialOffer2> mSpecial3s = new ArrayList<>();
|
private List<HomeBanner> mBanners2 = new ArrayList<>();
|
private List<TaoBaoGoodsBrief> mList = new ArrayList<>();
|
private List<String> lList = new ArrayList<>();
|
private List<String> lList2 = new ArrayList<>();
|
|
private RecommendActivityAdapter activityAdapter;
|
private RecommendCircleSpecialAdapter specialAdapter2;
|
private RecommendGoodsAdapter goodsAdapter;//精选商品 Adapter
|
private LimitTimeBuyAdapter limitTimeBuyAdapter, jinbiExchangeAdapter;
|
private DiskLruCache cache;
|
private ConnectivityChangeHelper mChangeHelper;
|
private boolean isCache = false;
|
private boolean isLoad = false;
|
ShapeLoadingDialog pd = null;
|
|
|
TextView
|
tv_limit_time_hint, tv_jinbi_exchange_hint;
|
|
//小黄条
|
private String TYPE = "home";
|
private TextView tv_notice_content;
|
private TextView tv_hour_1, tv_hour_2, tv_minute_1, tv_minute_2, tv_second_1, tv_second_2;
|
private LinearLayout ll_notice;
|
private ImageView iv_close;
|
SeekBar seekBar;
|
int goodsType = 1;
|
private long clickTime4 = 0;
|
private String clickId4;
|
int rowHeight = 0;
|
int rowNum = 1;
|
|
LimitTimeBuy limitTimeBuyInfo;
|
LimitTimeBuy jinBiExchangeInfo;
|
|
public static RecommendFragment newInstance(FirstCategory type) {
|
RecommendFragment fragment = new RecommendFragment();
|
Bundle bundle = new Bundle();
|
bundle.putSerializable("type", type);
|
fragment.setArguments(bundle);
|
return fragment;
|
}
|
|
@Override
|
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
super.onActivityCreated(savedInstanceState);
|
}
|
|
@Override
|
public int getContentResource() {
|
return R.layout.fragment_first_page;
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
init(contentView);
|
initCacheData();
|
}
|
|
@Override
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
try {
|
cache = DiskLruCache.open(
|
new File(StorageUtils.getCacheDirectory(getContext())
|
.toString(), "http"), getVersionNum(getContext()),
|
1, 1024 * 1024);
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
|
public static int getVersionNum(Context context) {
|
try {
|
PackageInfo pi = context.getPackageManager().getPackageInfo(
|
context.getPackageName(), 0);
|
return pi.versionCode;
|
} catch (PackageManager.NameNotFoundException e) {
|
e.printStackTrace();
|
return 1;
|
}
|
}
|
|
int visibilyNum = -1;
|
|
|
RecyclerView.ItemDecoration circleSpecialItemDecoration = new RecyclerView.ItemDecoration() {
|
@Override
|
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
|
super.onDraw(c, parent, state);
|
}
|
|
@Override
|
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
|
super.onDrawOver(c, parent, state);
|
}
|
|
@Override
|
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
|
super.getItemOffsets(outRect, view, parent, state);
|
int index = parent.getChildAdapterPosition(view);
|
int total = parent.getAdapter().getItemCount();
|
int minWidth = DimenUtils.dipToPixels(6, view.getContext());
|
if (index % 4 == 0) {
|
outRect.left = 0; //第一列左边贴边
|
outRect.right = minWidth * 3;
|
} else if (index % 4 == 1) {
|
outRect.left = minWidth * 1;
|
outRect.right = minWidth * 2;
|
} else if (index % 4 == 2) {
|
outRect.left = minWidth * 2;
|
outRect.right = minWidth * 1;
|
} else {
|
outRect.right = 0; //第一列左边贴边
|
outRect.left = minWidth * 3;
|
}
|
|
int lastRow = total / 4;
|
|
if (lastRow != index / 4) {
|
outRect.bottom = minWidth * 4;
|
}
|
}
|
};
|
|
private void init(View contentView) {
|
rv_recommend_goods = contentView.findViewById(R.id.rv_recommend_goods);
|
rl_first_page = contentView.findViewById(R.id.rl_first_page);
|
iv_slid_top = contentView.findViewById(R.id.iv_slid_top);
|
final View top = LayoutInflater.from(rv_recommend_goods.getContext())
|
.inflate(R.layout.item_recommend_top, null);
|
top.setBackground(HomeUIUtil.getHomeTopBg("#FF227B", "#FF2A3E"));
|
ll_fragment_activity = top.findViewById(R.id.ll_fragment_activity);
|
ll_special_offer = top.findViewById(R.id.ll_special_offer);
|
ll_limit_time_buy = top.findViewById(R.id.ll_limit_time_buy);
|
ll_jinbi_exchange_buy = top.findViewById(R.id.ll_jinbi_exchange_buy);
|
fl_fragment_activity = top.findViewById(R.id.fl_fragment_activity);
|
rl_recommend_activity2 = top.findViewById(R.id.rl_recommend_activity2);
|
iv_activity_bg = top.findViewById(R.id.iv_activity_bg);
|
vp_banner = top.findViewById(R.id.vp_banner);
|
rv_special_offer = top.findViewById(R.id.rv_special_offer);
|
flow_hot = top.findViewById(R.id.flow_hot);
|
iv_input = top.findViewById(R.id.iv_input);
|
vp_recommend_activity2 = top.findViewById(R.id.vp_recommend_activity2);
|
v_divider = top.findViewById(R.id.v_divider);
|
tv_hour_1 = top.findViewById(R.id.tv_hour_1);
|
tv_hour_2 = top.findViewById(R.id.tv_hour_2);
|
tv_minute_1 = top.findViewById(R.id.tv_minute_1);
|
tv_minute_2 = top.findViewById(R.id.tv_minute_2);
|
tv_second_1 = top.findViewById(R.id.tv_second_1);
|
tv_second_2 = top.findViewById(R.id.tv_second_2);
|
tv_limit_time_hint = top.findViewById(R.id.tv_limit_time_hint);
|
tv_jinbi_exchange_hint = top.findViewById(R.id.tv_jinbi_exchange_hint);
|
gv_limit_time_goods = top.findViewById(R.id.gv_limit_time_goods);
|
gv_jinbi_exchange_goods = top.findViewById(R.id.gv_jinbi_exchange_goods);
|
sv_hot = top.findViewById(R.id.sv_hot);
|
iv_hot_img = top.findViewById(R.id.iv_hot_img);
|
|
iv_hot_img.setOnClickListener(this);
|
|
ll_no_net = contentView.findViewById(R.id.ll_no_net);
|
ll_no_data = contentView.findViewById(R.id.ll_no_data);
|
ll_request_failture = contentView.findViewById(R.id.ll_request_failture);
|
|
contentView.findViewById(R.id.tv_net_setting).setOnClickListener(this);
|
contentView.findViewById(R.id.tv_refresh).setOnClickListener(this);
|
iv_slid_top.setOnClickListener(this);
|
ll_limit_time_buy.setOnClickListener(this);
|
ll_jinbi_exchange_buy.setOnClickListener(this);
|
|
mChangeHelper = new ConnectivityChangeHelper(ll_no_data.getContext(),
|
new ConnectivityChangeHelper.OnConnectivityChangeListener() {
|
|
@Override
|
public void onNetworkUnAvailable() {
|
if (mList.size() == 0)
|
requestState(3);
|
}
|
|
@Override
|
public void onNetworkAvailable() {
|
requestState(0);
|
// mSpecial3s(以前是这个 他会导致跳转其他页面回来后 重复请求)
|
if (mList.size() == 0 || isCache) {
|
setGoodsIndex();
|
guessLikeByDevice();
|
}
|
}
|
});
|
|
bottom = LayoutInflater.from(rv_recommend_goods.getContext())
|
.inflate(R.layout.item_recyclerview_bottom, null);
|
tv_loading = bottom.findViewById(R.id.tv_loading);
|
iv_loading = bottom.findViewById(R.id.iv_loading);
|
AnimationDrawable animationDrawable = (AnimationDrawable) getResources().getDrawable(
|
R.drawable.anim_list_loading);
|
iv_loading.setImageDrawable(animationDrawable);
|
animationDrawable.start();
|
bottom.setVisibility(View.INVISIBLE);
|
|
rv_recommend_goods.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
@Override
|
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
super.onScrollStateChanged(recyclerView, newState);
|
LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();
|
int first = manager.findFirstVisibleItemPosition();
|
int last = manager.findLastVisibleItemPosition();
|
int total = manager.getItemCount();
|
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
|
if (first == 0) {
|
iv_slid_top.setVisibility(View.GONE);
|
}
|
if (last == total - 1 && mList.size() < count && isLoad) {
|
page++;
|
isLoad = false;
|
tv_loading.setText("正在加载更多数据");
|
iv_loading.setVisibility(View.VISIBLE);
|
guessLikeByDevice();
|
}
|
} else {
|
iv_slid_top.setVisibility(View.GONE);
|
}
|
}
|
|
@Override
|
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
|
super.onScrolled(recyclerView, dx, dy);
|
// totalSlide += dy;
|
if (Math.abs(dy) > 30) {
|
if (dy > 0) {
|
iv_slid_top.setVisibility(View.GONE);
|
} else {
|
iv_slid_top.setVisibility(View.VISIBLE);
|
}
|
}
|
}
|
});
|
|
//小黄条
|
tv_notice_content = top.findViewById(R.id.tv_notice_content);
|
ll_notice = top.findViewById(R.id.ll_notice);
|
iv_close = top.findViewById(R.id.iv_close);
|
getAppPageNotification();
|
|
//设置列表可以水平滑动,两行
|
GridLayoutManager layoutManager = new GridLayoutManager(getContext(), 4, GridLayoutManager.VERTICAL, false) {
|
@Override
|
public boolean canScrollVertically() {
|
return false;
|
}
|
};
|
rv_special_offer.setLayoutManager(layoutManager);
|
specialAdapter2 = new RecommendCircleSpecialAdapter(getActivity(), circleSpecials);
|
rv_special_offer.setAdapter(specialAdapter2);
|
|
seekBar = top.findViewById(R.id.slide_indicator_point);
|
seekBar.setPadding(0, 0, 0, 0);
|
seekBar.setThumbOffset(0);
|
seekBar.setVisibility(View.GONE);
|
|
rv_special_offer.addItemDecoration(circleSpecialItemDecoration);
|
|
rv_special_offer.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
@Override
|
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
|
super.onScrolled(recyclerView, dx, dy);
|
// //显示区域的高度。
|
int extent = rv_special_offer.computeHorizontalScrollExtent();
|
//整体的高度,注意是整体,包括在显示区域之外的。
|
int range = rv_special_offer.computeHorizontalScrollRange();
|
//已经向下滚动的距离,为0时表示已处于顶部。
|
int offset = rv_special_offer.computeHorizontalScrollOffset();
|
Log.i("dx------", range + "****" + extent + "****" + offset);
|
//此处获取seekbar的getThumb,就是可以滑动的小的滚动游标
|
|
//设置可滚动区域
|
seekBar.setMax(range - extent);
|
if (dx == 0) {
|
seekBar.setProgress(0);
|
} else if (dx > 0) {
|
// int ss = (int)(tt/2.3f);
|
seekBar.setProgress(offset);
|
} else if (dx < 0) {
|
seekBar.setProgress(offset);
|
}
|
}
|
|
@Override
|
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
super.onScrollStateChanged(recyclerView, newState);
|
}
|
});
|
|
limitTimeBuyAdapter = new LimitTimeBuyAdapter(getActivity(), lList);
|
gv_limit_time_goods.setAdapter(limitTimeBuyAdapter);
|
jinbiExchangeAdapter = new LimitTimeBuyAdapter(getActivity(), lList2);
|
gv_jinbi_exchange_goods.setAdapter(jinbiExchangeAdapter);
|
|
rl_first_page.setColorSchemeColors(getResources().getColor(R.color.theme));
|
/**
|
* 下拉刷新
|
*/
|
rl_first_page.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
page = 1;
|
setGoodsIndex();
|
guessLikeByDevice();
|
}
|
});
|
|
vp_recommend_activity2.setCurrentItem(0, true);
|
activityAdapter = new RecommendActivityAdapter(mBanners2, getActivity());
|
vp_recommend_activity2.setAdapter(activityAdapter);
|
rv_recommend_goods.setLayoutManager(new LinearLayoutManager(getContext()));
|
goodsAdapter = new RecommendGoodsAdapter(getContext(), mList, "jingxuan");
|
rv_recommend_goods.setAdapter(goodsAdapter);
|
goodsAdapter.addFooterView(bottom);
|
goodsAdapter.addHeaderView(top);
|
initTimeHandle();
|
setBannerData();
|
}
|
|
|
private void setBannerData() {
|
|
List<String> urlList = new ArrayList<>();
|
for (HomeBanner ad : mBanners)
|
urlList.add(ad.getSrc());
|
if (urlList.size() > 0) {
|
if (!vp_banner.hasAdapter()) {
|
vp_banner.initBanner(urlList, false, 0.4375f)//开启3D画廊效果
|
.addPageMargin(10, 10)//参数1page之间的间距,参数2中间item距离边界的间距
|
.addStartTimer(3)//自动轮播3秒间隔
|
.addPointBottom(0)//底部间距
|
.addPoint(5, R.drawable.shape_banner_indicator_highlight, R.drawable.shape_banner_indicator)
|
.addDefaultImg(R.drawable.shape_banner_default)
|
.addRoundCorners(DimenUtils.dip2px(getContext(), 10))//圆角
|
.finishConfig()//这句必须加
|
.addBannerListener(new BannerViewPager.OnClickBannerListener() {
|
@Override
|
public void onBannerClick(int position) {
|
if (position >= mBanners.size())
|
return;
|
JumpActivityUtil.jumpPage(getActivity(), mBanners.get(position).getJumpDetail(), mBanners.get(position).getParams());
|
}
|
});
|
} else {
|
vp_banner.notifyDataSetChanged();
|
}
|
}
|
|
}
|
|
|
private void addHot(final RecommendHot recommendHot) {
|
if (recommendHot == null) {
|
flow_hot.setVisibility(View.GONE);
|
return;
|
}
|
Glide.with(getContext()).load(recommendHot.getPicture()).into(iv_hot_img);
|
iv_input.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
discoverClick(recommendHot);
|
}
|
});
|
iv_hot_img.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
discoverClick(recommendHot);
|
}
|
});
|
|
if (flow_hot.getChildCount() > 0) {
|
flow_hot.removeAllViews();
|
}
|
//往容器内添加TextView数据
|
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 50);
|
layoutParams.setMargins(10, 5, 10, 5);
|
if (flow_hot != null) {
|
flow_hot.removeAllViews();
|
}
|
for (int i = 0; i < recommendHot.getKeyList().size(); i++) {
|
TextView tv = new TextView(getContext());
|
tv.setPadding(10, 0, 10, 0);
|
tv.setText(recommendHot.getKeyList().get(i).getName());
|
tv.setTextColor(getResources().getColor(R.color.text_black_1));
|
tv.setTextSize(13);
|
tv.setMaxEms(10);
|
tv.setGravity(Gravity.CENTER);
|
tv.setIncludeFontPadding(false);
|
tv.setSingleLine();
|
tv.setBackgroundResource(R.drawable.shape_recommend_hot_bg);
|
flow_hot.addView(tv, layoutParams);
|
if (i == 0) {
|
rowHeight = 60;
|
sv_hot.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, rowHeight));
|
}
|
final int j = i;
|
tv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (!StringUtils.isEmpty(recommendHot.getJumpResult().getActivity())) {
|
if (recommendHot.getJumpResult().isNeedLogin()) {
|
SharedPreferences sp = getContext().getSharedPreferences("user", MODE_PRIVATE);
|
if (!sp.getBoolean("isLogin", false)) {
|
UserUtil.jumpLogin(getContext());
|
return;
|
}
|
}
|
jumpDetail(recommendHot.getJumpResult(), recommendHot.getKeyList().get(j).getParams());
|
}
|
}
|
});
|
}
|
}
|
|
private void discoverClick(RecommendHot recommendHot) {
|
if (!StringUtils.isEmpty(recommendHot.getJumpDetail().getActivity())) {
|
if (recommendHot.getJumpDetail().isNeedLogin()) {
|
SharedPreferences sp = getContext().getSharedPreferences("user", MODE_PRIVATE);
|
if (!sp.getBoolean("isLogin", false)) {
|
UserUtil.jumpLogin(getContext());
|
return;
|
}
|
}
|
jumpDetail(recommendHot.getJumpDetail(), recommendHot.getParams());
|
}
|
}
|
|
private void jumpDetail(JumpDetail jumpDetail, com.alibaba.fastjson.JSONObject params) {
|
Intent intent;
|
if ((!StringUtils.isEmpty(jumpDetail.getActivity()))) {
|
try {
|
intent = new Intent(getContext(), Class.forName(JumpActivityUtil.filterActivityName(jumpDetail.getActivity())));
|
} catch (Exception e) {
|
e.printStackTrace();
|
return;
|
}
|
if (params != null) {
|
@SuppressWarnings("unchecked")
|
Iterator<String> its = params.keySet().iterator();
|
while (its.hasNext()) {
|
String key = its.next();
|
String value = params.getString(key);
|
intent.putExtra(key, value);
|
}
|
}
|
startActivity(intent);
|
}
|
}
|
|
private long recLen = 0;
|
private boolean isFirstRun = true;
|
Handler handler = null;
|
|
private void initTimeHandle() {
|
if (handler != null)
|
handler.removeCallbacksAndMessages(null);//取消所有handle事件
|
handler = new Handler() {
|
public void handleMessage(@NonNull Message msg) { // handle message
|
super.handleMessage(msg);
|
switch (msg.what) {
|
case 1:
|
recLen--;
|
if (recLen > 0) {
|
//小时区域
|
tv_hour_1.setText(recLen / 60 / 60 / 10 + "");
|
tv_hour_2.setText(recLen / 60 / 60 % 10 + "");
|
//分钟区域
|
tv_minute_1.setText(recLen / 60 % 60 / 10 + "");
|
tv_minute_2.setText(recLen / 60 % 60 % 10 + "");
|
//秒钟区域
|
tv_second_1.setText(recLen % 60 / 10 + "");
|
tv_second_2.setText(recLen % 60 % 10 + "");
|
|
Message message = handler.obtainMessage(1);
|
handler.sendMessageDelayed(message, 1000); // send message
|
} else {
|
getSpikeGoods();
|
Message message = handler.obtainMessage(1);
|
handler.sendMessageDelayed(message, 5000);//5s再试
|
}
|
}
|
}
|
};
|
|
}
|
|
/*
|
获取小黄条内容
|
*/
|
private void getAppPageNotification() {
|
ShoppingApi.getAppPageNotification(rv_recommend_goods.getContext(), TYPE, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code") == 0) {
|
boolean isClose = jsonObject.optJSONObject("data").optBoolean("canClose");
|
String content = jsonObject.optJSONObject("data").optString("content");
|
final String contentUrl = jsonObject.optJSONObject("data").optString("contentUrl");
|
final String md5 = jsonObject.optJSONObject("data").optString("md5");
|
|
tv_notice_content.setText(content);
|
final SharedPreferences sp = rv_recommend_goods.getContext().getSharedPreferences("notice", Context.MODE_PRIVATE);
|
if (!sp.getBoolean(md5, false)) {//false 展示,true不展示
|
ll_notice.setVisibility(View.VISIBLE);
|
} else {
|
ll_notice.setVisibility(View.GONE);
|
}
|
|
if (isClose) {
|
iv_close.setImageDrawable(getResources().getDrawable(R.drawable.ic_notice_close));
|
iv_close.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
ll_notice.setVisibility(View.GONE);
|
SharedPreferences.Editor editor = sp.edit();
|
editor.putBoolean(md5, true);
|
editor.commit();
|
}
|
});
|
} else {
|
iv_close.setImageDrawable(getResources().getDrawable(R.drawable.ic_notice_input));
|
}
|
ll_notice.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (StringUtils.isEmpty(contentUrl))
|
return;
|
Intent intent = new Intent(rv_recommend_goods.getContext(), ShareBrowserActivity.class);
|
intent.putExtra("url", contentUrl);
|
rv_recommend_goods.getContext().startActivity(intent);
|
}
|
});
|
} else {
|
ll_notice.setVisibility(View.GONE);
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
}
|
});
|
}
|
|
boolean isHaveCache = false;
|
|
/*
|
初始化缓存数据
|
*/
|
private void initCacheData() {
|
if (cache != null) {
|
{ //顶部Banner
|
DiskLruCache.Snapshot snapshot = null;
|
try {
|
snapshot = cache.get(getKey("BannerAd"));
|
if (snapshot != null) {
|
//顶部banner
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<HomeBanner> list1 = gson.fromJson(snapshot.getString(0),
|
new TypeToken<List<HomeBanner>>() {
|
}.getType());
|
if (mBanners.size() > 0) {
|
mBanners.clear();
|
}
|
mBanners.clear();
|
mBanners.addAll(list1);
|
setBannerData();
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
if (snapshot != null) {
|
snapshot.close();
|
}
|
}
|
}
|
{ //活动专题2
|
DiskLruCache.Snapshot snapshot = null;
|
try {
|
snapshot = cache.get(getKey("arcArea"));
|
if (snapshot != null) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<SpecialOffer2> list2 = gson.fromJson(
|
snapshot.getString(0),
|
new TypeToken<List<SpecialOffer2>>() {
|
}.getType());
|
if (circleSpecials.size() > 0) {
|
circleSpecials.clear();
|
}
|
circleSpecials.addAll(list2);
|
specialAdapter2.notifyDataSetChanged();
|
|
if (circleSpecials.size() > 10) {
|
GradientDrawable gradientDrawable = (GradientDrawable) seekBar.getThumb();
|
//根据列表的个数,动态设置游标的大小,设置游标的时候,progress进度的颜色设置为和seekbar的颜色设置的一样的,所以就不显示进度了。
|
gradientDrawable.setSize(DimenUtils.dip2px(getContext(), 50) * 5 / (circleSpecials.size() / 2)
|
, DimenUtils.dip2px(getContext(), 4));
|
}
|
// seekBar.setVisibility(mSpecial2s.size() <= 10 ? View.GONE : View.VISIBLE);
|
|
if (list2 == null || list2.size() == 0) {
|
rv_special_offer.setVisibility(View.GONE);
|
} else {
|
rv_special_offer.setVisibility(View.VISIBLE);
|
}
|
isHaveCache = true;
|
}
|
} catch (IOException e) {
|
e.printStackTrace();
|
} finally {
|
if (snapshot != null) {
|
snapshot.close();
|
}
|
}
|
}
|
{ //活动专题3
|
DiskLruCache.Snapshot snapshot = null;
|
try {
|
snapshot = cache.get(getKey("activityArea"));
|
if (snapshot != null) {
|
JSONObject jsonObject = null;
|
try {
|
jsonObject = new JSONObject(snapshot.getString(0));
|
} catch (JSONException e) {
|
e.printStackTrace();
|
}
|
if (jsonObject != null) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<SpecialOffer2> list3 = gson.fromJson(
|
jsonObject.optJSONArray("list").toString(),
|
new TypeToken<List<SpecialOffer2>>() {
|
}.getType());
|
if (mSpecial3s.size() > 0) {
|
mSpecial3s.clear();
|
}
|
String url = jsonObject.optString("bottomPicture");
|
|
if (list3 == null || list3.size() == 0) {
|
fl_fragment_activity.setVisibility(View.GONE);
|
} else {
|
fl_fragment_activity.setVisibility(View.VISIBLE);
|
}
|
showActivity1(list3, url);
|
}
|
|
}
|
} catch (IOException e) {
|
e.printStackTrace();
|
} finally {
|
if (snapshot != null) {
|
snapshot.close();
|
}
|
}
|
}
|
{ //活动专题4
|
DiskLruCache.Snapshot snapshot = null;
|
try {
|
snapshot = cache.get(getKey("invitePicList"));
|
if (snapshot != null) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<HomeBanner> list4 = gson.fromJson(
|
snapshot.getString(0),
|
new TypeToken<List<HomeBanner>>() {
|
}.getType());
|
if (mBanners2.size() > 0) {
|
mBanners2.clear();
|
}
|
mBanners2.addAll(list4);
|
activityAdapter.notifyDataSetChanged();
|
if (list4 == null || list4.size() == 0) {
|
rl_recommend_activity2.setVisibility(View.GONE);
|
} else {
|
rl_recommend_activity2.setVisibility(View.VISIBLE);
|
}
|
}
|
} catch (IOException e) {
|
e.printStackTrace();
|
} finally {
|
if (snapshot != null) {
|
snapshot.close();
|
}
|
}
|
}
|
{ //活动专题5
|
DiskLruCache.Snapshot snapshot = null;
|
try {
|
snapshot = cache.get(getKey("blockArea"));
|
if (snapshot != null) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<SpecialOffer2> list5 = gson.fromJson(
|
snapshot.getString(0),
|
new TypeToken<List<SpecialOffer2>>() {
|
}.getType());
|
showActivity2(list5);
|
|
if (list5 == null || list5.size() == 0) {
|
ll_special_offer.setVisibility(View.GONE);
|
} else {
|
ll_special_offer.setVisibility(View.VISIBLE);
|
}
|
}
|
} catch (IOException e) {
|
e.printStackTrace();
|
} finally {
|
if (snapshot != null) {
|
snapshot.close();
|
}
|
}
|
}
|
}
|
}
|
|
|
private String getKey(String method) {
|
return new Md5FileNameGenerator().generate(method);
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
mChangeHelper.registerReceiver();
|
vp_recommend_activity2.postDelayed(mAutoScroller2, 2000);
|
sv_hot.postDelayed(mAutoScroller3, 2000);
|
scanSpecial(System.currentTimeMillis());
|
}
|
|
private void scanSpecial(Long curTime) {
|
long stayTime2 = curTime - specialAdapter2.clickTime;
|
long stayTime3 = curTime - activityAdapter.clickTime;
|
long stayTime4 = curTime - clickTime4;
|
|
if (specialAdapter2.clickTime > 0 && stayTime2 > 15 * 1000) {
|
PushEventData info = new PushEventData();
|
info.setId(specialAdapter2.clickId);
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
String data = gson.toJson(info);
|
specialAdapter2.clickTime = 0;
|
specialAdapter2.clickId = "";
|
}
|
if (activityAdapter.clickTime > 0 && stayTime3 > 15 * 1000) {
|
PushEventData info = new PushEventData();
|
info.setId(activityAdapter.clickId);
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
String data = gson.toJson(info);
|
activityAdapter.clickTime = 0;
|
activityAdapter.clickId = "";
|
}
|
if (clickTime4 > 0 && stayTime4 > 15 * 1000) {
|
PushEventData info = new PushEventData();
|
info.setId(clickId4);
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
String data = gson.toJson(info);
|
clickTime4 = 0;
|
clickId4 = "";
|
}
|
}
|
|
private Runnable mAutoScroller2 = new Runnable() {
|
|
@Override
|
public void run() {
|
PagerAdapter adapter = vp_recommend_activity2.getAdapter();
|
if (adapter != null && adapter.getCount() != 0) {
|
vp_recommend_activity2.setCurrentItem((vp_recommend_activity2.getCurrentItem() + 1)
|
% adapter.getCount(), true);
|
}
|
vp_recommend_activity2.postDelayed(this, 5000);
|
}
|
};
|
|
private Runnable mAutoScroller3 = new Runnable() {
|
|
@Override
|
public void run() {
|
int y = rowNum * rowHeight;
|
sv_hot.smoothScrollTo(0, y);
|
if (rowNum > 0) {
|
if (y >= flow_hot.getHeight()) {
|
rowNum = -1;
|
} else {
|
if (y % rowNum != 0) {
|
y = y + (rowHeight - (y % rowNum));
|
sv_hot.smoothScrollTo(0, y - rowNum);
|
}
|
}
|
}
|
|
rowNum++;
|
sv_hot.postDelayed(this, 5000);
|
}
|
};
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
mChangeHelper.unregisterReceiver();
|
vp_recommend_activity2.removeCallbacks(mAutoScroller2);
|
sv_hot.removeCallbacks(mAutoScroller3);
|
}
|
|
|
private void setGoodsIndex() {
|
if (pd == null) {
|
pd = new ShapeLoadingDialog.Builder(getContext()).build();
|
}
|
if (mBanners.size() == 0 && circleSpecials.size() == 0
|
&& mSpecial3s.size() == 0 && mBanners2.size() == 0
|
&& mList.size() == 0) {
|
pd.show();
|
}
|
ShoppingApi.getRecommendIndex(vp_banner.getContext(), UserUtil.getUid(ShoppingApplication.application), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
if (pd.isShowing()) {
|
pd.dismiss();
|
}
|
rl_first_page.setRefreshing(false);
|
}
|
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
isCache = false;
|
//顶部banner
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<HomeBanner> list1 = gson.fromJson(jsonObject.optJSONObject("data")
|
.optJSONArray("topPicList").toString(),
|
new TypeToken<List<HomeBanner>>() {
|
}.getType());
|
if (mBanners.size() > 0) {
|
mBanners.clear();
|
}
|
mBanners.addAll(list1);
|
setBannerData();
|
|
DiskLruCache.Editor editor0 = cache
|
.edit(getKey("BannerAd"));
|
editor0.set(0, jsonObject.optJSONObject("data").optJSONArray("topPicList").toString());
|
editor0.commit();
|
|
//圆形专题
|
List<SpecialOffer2> list2 = gson.fromJson(
|
jsonObject.optJSONObject("data").optJSONObject("arcArea")
|
.optJSONArray("list").toString(),
|
new TypeToken<List<SpecialOffer2>>() {
|
}.getType());
|
if (circleSpecials.size() > 0) {
|
circleSpecials.clear();
|
}
|
circleSpecials.addAll(list2);
|
specialAdapter2.notifyDataSetChanged();
|
// seekBar.setVisibility(mSpecial2s.size() <= 10 ? View.GONE : View.VISIBLE);
|
if (circleSpecials.size() > 10) {
|
GradientDrawable gradientDrawable = (GradientDrawable) seekBar.getThumb();
|
//根据列表的个数,动态设置游标的大小,设置游标的时候,progress进度的颜色设置为和seekbar的颜色设置的一样的,所以就不显示进度了。
|
gradientDrawable.setSize(DimenUtils.dip2px(getContext(), 50) * 5 / (circleSpecials.size() / 2)
|
, DimenUtils.dip2px(getContext(), 4));
|
}
|
if (list2 == null || list2.size() == 0) {
|
rv_special_offer.setVisibility(View.GONE);
|
} else {
|
rv_special_offer.setVisibility(View.VISIBLE);
|
}
|
rv_special_offer.getLayoutManager().scrollToPosition(0);
|
|
DiskLruCache.Editor editor1 = cache
|
.edit(getKey("arcArea"));
|
editor1.set(0, jsonObject.optJSONObject("data").optJSONObject("arcArea")
|
.optJSONArray("list").toString());
|
editor1.commit();
|
//活动专题3
|
List<SpecialOffer2> list3 = gson.fromJson(
|
jsonObject.optJSONObject("data").optJSONObject("activityArea")
|
.optJSONArray("list").toString(),
|
new TypeToken<List<SpecialOffer2>>() {
|
}.getType());
|
if (mSpecial3s.size() > 0) {
|
mSpecial3s.clear();
|
}
|
String url = jsonObject.optJSONObject("data")
|
.optJSONObject("activityArea").optString("bottomPicture");
|
|
showActivity1(list3, url);
|
if (list3 == null || list3.size() == 0) {
|
fl_fragment_activity.setVisibility(View.GONE);
|
} else {
|
fl_fragment_activity.setVisibility(View.VISIBLE);
|
}
|
DiskLruCache.Editor editor2 = cache
|
.edit(getKey("activityArea"));
|
editor2.set(0, jsonObject.optJSONObject("data")
|
.optJSONObject("activityArea").toString());
|
editor2.commit();
|
//活动专题4
|
List<HomeBanner> list4 = gson.fromJson(
|
jsonObject.optJSONObject("data")
|
.optJSONArray("invitePicList").toString(),
|
new TypeToken<List<HomeBanner>>() {
|
}.getType());
|
if (mBanners2.size() > 0) {
|
mBanners2.clear();
|
}
|
mBanners2.addAll(list4);
|
activityAdapter.notifyDataSetChanged();
|
|
if (list4 == null || list4.size() == 0) {
|
rl_recommend_activity2.setVisibility(View.GONE);
|
} else {
|
rl_recommend_activity2.setVisibility(View.VISIBLE);
|
}
|
DiskLruCache.Editor editor3 = cache
|
.edit(getKey("invitePicList"));
|
editor3.set(0, jsonObject.optJSONObject("data")
|
.optJSONArray("invitePicList").toString());
|
editor3.commit();
|
//活动专题5
|
List<SpecialOffer2> list5 = gson.fromJson(
|
jsonObject.optJSONObject("data").optJSONObject("blockArea")
|
.optJSONArray("list").toString(),
|
new TypeToken<List<SpecialOffer2>>() {
|
}.getType());
|
showActivity2(list5);
|
|
if (list5 == null || list5.size() == 0) {
|
ll_special_offer.setVisibility(View.GONE);
|
} else {
|
ll_special_offer.setVisibility(View.VISIBLE);
|
}
|
DiskLruCache.Editor editor4 = cache
|
.edit(getKey("blockArea"));
|
editor4.set(0, jsonObject.optJSONObject("data").optJSONObject("blockArea")
|
.optJSONArray("list").toString());
|
editor4.commit();
|
|
//推荐热点
|
// RecommendHot recommendHot = gson.fromJson(jsonObject.optJSONObject("data")
|
// .optJSONObject("searchDiscovery").toString(),
|
// new TypeToken<RecommendHot>() {
|
// }.getType());
|
addHot(null);
|
|
//限时秒杀
|
ll_limit_time_buy.setVisibility(View.GONE);
|
// try {
|
// tv_limit_time_hint.setText(jsonObject.optJSONObject("data").optJSONObject("spikeGoods").optString("desc"));
|
// recLen = jsonObject.optJSONObject("data").optJSONObject("spikeGoods").optLong("endTime") / 1000;
|
// limitTimeBuyInfo = gson.fromJson(jsonObject.optJSONObject("data").optJSONObject("spikeGoods")
|
// .toString(), LimitTimeBuy.class);
|
// List<String> list = limitTimeBuyInfo.getImgList();
|
// if (lList.size() > 0)
|
// lList.clear();
|
// for (int i = 0; i < list.size(); i++) {
|
// if (i > 1)
|
// list.remove(i);
|
// }
|
// list.clear();
|
// lList.addAll(list);
|
// ll_limit_time_buy.setVisibility(View.GONE);
|
// limitTimeBuyAdapter.mInfo = limitTimeBuyInfo;
|
// limitTimeBuyAdapter.notifyDataSetChanged();
|
// initTimeHandle();
|
// //测试
|
//// if (isFirstRun) {
|
// Message message = handler.obtainMessage(1); // Message
|
// handler.sendMessageDelayed(message, 1000);
|
// isFirstRun = false;
|
//// }
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// ll_limit_time_buy.setVisibility(View.GONE);
|
// }
|
|
//金币兑换
|
ll_jinbi_exchange_buy.setVisibility(View.GONE);
|
// try {
|
// tv_jinbi_exchange_hint.setText(jsonObject.optJSONObject("data").optJSONObject("scoreExchange").optString("desc"));
|
// jinBiExchangeInfo = gson.fromJson(jsonObject.optJSONObject("data").optJSONObject("scoreExchange").toString(), LimitTimeBuy.class);
|
// List<String> list = jinBiExchangeInfo.getImgList();
|
// if (lList2.size() > 0)
|
// lList2.clear();
|
// for (int i = 0; i < list.size(); i++) {
|
// if (i > 1)
|
// list.remove(i);
|
// }
|
// list.clear();
|
// lList2.addAll(list);
|
// jinbiExchangeAdapter.mInfo = jinBiExchangeInfo;
|
// jinbiExchangeAdapter.notifyDataSetChanged();
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// ll_jinbi_exchange_buy.setVisibility(View.GONE);
|
// }
|
|
|
} else {
|
// if (mTypeList.size() == 0)
|
// requestState(2);
|
// SingleToast.showToast(iv_slid_top.getContext(), jsonObject.optString("msg"));
|
Toast.makeText(vp_banner.getContext(), jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) {
|
super.onFailure(statusCode, headers, jsonObject, e);
|
|
}
|
});
|
}
|
|
private void getSpikeGoods() {
|
ShoppingApi.getSpikeGoods(rv_recommend_goods.getContext(), new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code") == 0) {
|
JSONObject data = jsonObject.optJSONObject("data");
|
if (data != null) {
|
ll_limit_time_buy.setVisibility(View.VISIBLE);
|
recLen = data.optLong("endTime") / 1000;
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
limitTimeBuyInfo = gson.fromJson(data.toString(), LimitTimeBuy.class);
|
List<String> list = limitTimeBuyInfo.getImgList();
|
if (list != null && list.size() > 2)
|
list = list.subList(0, 2);
|
if (lList.size() > 0)
|
lList.clear();
|
Collections.max(list);
|
lList.addAll(list);
|
limitTimeBuyAdapter.notifyDataSetChanged();
|
initTimeHandle();
|
|
// if (isFirstRun) {
|
Message message = handler.obtainMessage(1); // Message
|
handler.sendMessageDelayed(message, 1000);
|
isFirstRun = false;
|
// }
|
}
|
} else {
|
ll_limit_time_buy.setVisibility(View.GONE);
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
ll_limit_time_buy.setVisibility(View.GONE);
|
}
|
});
|
}
|
|
/*
|
*推荐商品
|
*/
|
int page = 1;
|
int count = 1;
|
|
/**
|
* 猜你喜欢推荐商品
|
*/
|
private void guessLikeByDevice() {
|
ShoppingApi.guessLikeByDevice(rv_recommend_goods.getContext(), page + "", goodsType + "", new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onStart() {
|
super.onStart();
|
if (page > 1) {
|
bottom.setVisibility(View.VISIBLE);
|
} else {
|
bottom.setVisibility(View.INVISIBLE);
|
}
|
}
|
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
bottom.setVisibility(View.INVISIBLE);
|
if (jsonObject.optInt("code") == 0) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<TaoBaoGoodsBrief> list = gson.fromJson(jsonObject.optJSONObject("data").
|
optJSONArray("list").toString(), new TypeToken<List<TaoBaoGoodsBrief>>() {
|
}.getType());
|
if (list.size() < 1 || (list.size() > 0 && list.get(0).getGoodsType() != goodsType)) {
|
return;
|
}
|
if (page == 1) {
|
mList.clear();
|
}
|
|
mList.addAll(list);
|
goodsAdapter.setGoodsType(goodsType);
|
goodsAdapter.notifyDataSetChanged();
|
if (isTop) {
|
rv_recommend_goods.getLayoutManager().scrollToPosition(1);
|
isTop = false;
|
}
|
|
// goodsAdapter.notifyItemRangeChanged(goodsAdapter.getItemCount(), list.size());//倒序批量刷新列表
|
count = jsonObject.optJSONObject("data").optInt("count");
|
// tv_recommend_goods_hint.setVisibility(mList.size() > 0 ? View.VISIBLE : View.GONE);
|
v_divider.setVisibility(mList.size() > 0 ? View.VISIBLE : View.GONE);
|
|
if (mList.size() == count) {
|
bottom.setVisibility(View.VISIBLE);
|
iv_loading.setVisibility(View.GONE);
|
tv_loading.setText(getResources().getString(R.string.list_no_more));
|
}
|
requestState(mList.size() == 0 ? 1 : 0);
|
|
// Subscriber<String> subscriber = new Subscriber<String>() {
|
// @Override
|
// public void onCompleted() {
|
// Log.e("mResult", "完成");
|
// }
|
//
|
// @Override
|
// public void onError(Throwable e) {
|
// Log.e("mResult", e.toString());
|
// }
|
//
|
// @Override
|
// public void onNext(String s) {
|
// Log.e("mResult", s);
|
// }
|
// };
|
//
|
// Observable.from(mList).flatMap(new Func1<TaoBaoGoodsBrief, Observable<String>>() {
|
// @Override
|
// public Observable<String> call(TaoBaoGoodsBrief taoBaoGoodsBrief) {
|
// return Observable.from(taoBaoGoodsBrief.getImgList());
|
// }
|
// }).subscribe(subscriber);
|
} else {
|
if (mList.size() == 0)
|
requestState(1);
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
isLoad = true;
|
rl_first_page.setRefreshing(false);
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
bottom.setVisibility(View.INVISIBLE);
|
if ((!isHaveCache) && mList.size() == 0) {
|
if (NetUtils.getNetworkState(rv_recommend_goods.getContext()).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
requestState(3);
|
} else {
|
requestState(2);
|
}
|
} else {
|
if (NetUtils.getNetworkState(rv_recommend_goods.getContext()).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
// SingleToast.showToast(CategoryActivity.this, "网络未连接,请检测网络设置");
|
Toast.makeText(rv_recommend_goods.getContext(), "网络未连接,请检测网络设置", Toast.LENGTH_SHORT).show();
|
} else {
|
// SingleToast.showToast(CategoryActivity.this, "网络连接异常,请检测网络设置");
|
Toast.makeText(rv_recommend_goods.getContext(), "网络连接异常,请检测网络设置", Toast.LENGTH_SHORT).show();
|
}
|
}
|
}
|
});
|
}
|
|
/*
|
活动专题3
|
*/
|
private void showActivity1(final List<SpecialOffer2> mList, String bottomPic) {
|
if (mList.size() > 0) {
|
float screenWidth = SystemCommon.getScreenWidth(vp_banner.getContext());
|
float actTotalHeight = (screenWidth - DimenUtils.dip2px(getContext(), 20)) * 7 / 20;
|
for (int i = 0; i < mList.size(); i++) {
|
if (i > 0 && i % 2 == 0) {
|
actTotalHeight += ((screenWidth / 2 - DimenUtils.dip2px(getContext(), 15))
|
* 16 / 35 + DimenUtils.dip2px(getContext(), 10));
|
}
|
}
|
FrameLayout.LayoutParams params0 = new FrameLayout.LayoutParams((int) (screenWidth -
|
DimenUtils.dip2px(getContext(), 20)), (int) actTotalHeight);
|
params0.leftMargin = DimenUtils.dip2px(getContext(), 10);
|
params0.rightMargin = DimenUtils.dip2px(getContext(), 10);
|
params0.topMargin = DimenUtils.dip2px(getContext(), 15);
|
params0.bottomMargin = DimenUtils.dip2px(getContext(), 10);
|
ll_fragment_activity.setLayoutParams(params0);
|
if (ll_fragment_activity.getChildCount() > 0) {
|
ll_fragment_activity.removeAllViews();
|
}
|
|
iv_activity_bg.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams
|
.MATCH_PARENT, (int) actTotalHeight + DimenUtils.dip2px(getContext(), 25)));
|
Glide.with(getContext()).load(bottomPic).into(iv_activity_bg);
|
|
for (int i = 0; i < mList.size(); i++) {
|
if (i == 0) {
|
final SpecialOffer2 info = mList.get(i);
|
ImageView iv = new ImageView(getContext());
|
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
(int) (screenWidth - DimenUtils.dip2px(getContext(), 20)),
|
(int) (screenWidth - DimenUtils.dip2px(getContext(), 20)) * 7 / 20);
|
params.gravity = Gravity.TOP;
|
iv.setLayoutParams(params);
|
iv.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
|
Glide.with(getContext()).load(info.getPicture()).into(iv);
|
iv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
MainCustomEvent.rmdSpecial(getContext(), info.getName());
|
itemClick(mList.get(0));
|
}
|
});
|
ll_fragment_activity.addView(iv);
|
} else {
|
if (i % 2 == 1) {
|
LinearLayout ll_img = new LinearLayout(getContext());
|
ll_img.setOrientation(LinearLayout.HORIZONTAL);
|
for (int j = i; j < (i + 2); j++) {
|
if (j >= mList.size()) {
|
continue;
|
}
|
|
ImageView iv = new ImageView(getContext());
|
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams((int) screenWidth / 2 -
|
(DimenUtils.dip2px(getContext(), 15)), (int) ((screenWidth / 2 -
|
(DimenUtils.dip2px(getContext(), 15))) * 16 / 35));
|
params.topMargin = DimenUtils.dip2px(getContext(), 10);
|
if (j % 2 == 1) {
|
params.rightMargin = DimenUtils.dip2px(getContext(), 3);
|
} else {
|
params.leftMargin = DimenUtils.dip2px(getContext(), 3);
|
}
|
iv.setLayoutParams(params);
|
Glide.with(getContext()).load(mList.get(j).getPicture()).into(iv);
|
final int k = j;
|
iv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
MainCustomEvent.rmdSpecial(getContext(), mList.get(k).getName());
|
itemClick(mList.get(k));
|
}
|
});
|
ll_img.addView(iv);
|
}
|
ll_fragment_activity.addView(ll_img);
|
}
|
}
|
}
|
}
|
}
|
|
/*
|
活动专题5
|
*/
|
private void showActivity2(List<SpecialOffer2> mList) {
|
if (mList.size() > 0) {
|
float screenWidth = SystemCommon.getScreenWidth(vp_banner.getContext());
|
float actHeight = screenWidth / 2 * 8 / 15 + (screenWidth / 3);
|
ll_special_offer.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) actHeight));
|
|
if (ll_special_offer.getChildCount() > 0) {
|
// ll_special_offer.removeAllViews();
|
}
|
|
for (int i = 0; i < mList.size(); i++) {
|
if (i == 0) {
|
addView(mList, i, 2);
|
i++;
|
} else {
|
if (i == 2) {
|
addView(mList, i, 3);
|
}
|
}
|
}
|
}
|
}
|
|
private void addView(final List<SpecialOffer2> mList, int start, int count) {
|
float screenWidth = SystemCommon.getScreenWidth(vp_banner.getContext());
|
LinearLayout ll_img = new LinearLayout(getContext());
|
ll_img.setOrientation(LinearLayout.HORIZONTAL);
|
// ll_img.setBackgroundColor(getResources().getColor(R.color.red));
|
for (int j = start; j < (start + count); j++) {
|
ImageView iv = new ImageView(getContext());
|
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams((int) screenWidth / count, ViewGroup.LayoutParams.WRAP_CONTENT);
|
iv.setLayoutParams(params);
|
//判断数组越界
|
if (j < mList.size()) {
|
Glide.with(getContext()).load(mList.get(j).getPicture()).into(iv);
|
final int k = j;
|
iv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
MainCustomEvent.rmdSpecial(getContext(), mList.get(k).getName());
|
itemClick(mList.get(k));
|
}
|
});
|
}
|
ll_img.addView(iv);
|
if (start == 0) {
|
View view = new View(getContext());
|
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(1, (int) screenWidth / 2 * 8 / 15);
|
view.setLayoutParams(params1);
|
view.setBackgroundColor(getResources().getColor(R.color.register_gray));
|
ll_img.addView(view);
|
} else {
|
if (j != mList.size() - 1) {
|
View view = new View(getContext());
|
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(1, (int) screenWidth / 3);
|
view.setLayoutParams(params1);
|
view.setBackgroundColor(getResources().getColor(R.color.register_gray));
|
ll_img.addView(view);
|
}
|
}
|
|
}
|
ll_special_offer.addView(ll_img);
|
if (start == 0) {
|
View view = new View(getContext());
|
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 1);
|
view.setLayoutParams(params1);
|
view.setBackgroundColor(getResources().getColor(R.color.register_gray));
|
ll_special_offer.addView(view);
|
}
|
}
|
|
private void itemClick(SpecialOffer2 info) {
|
clickTime4 = System.currentTimeMillis();
|
clickId4 = info.getId();
|
if (info.getJumpDetail() == null)
|
return;
|
JumpActivityUtil.jumpPage(getActivity(), info.getJumpDetail(), info.getParams());
|
}
|
|
boolean isTop = false;//滚动到商品最顶部
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.iv_slid_top:
|
rv_recommend_goods.getLayoutManager().scrollToPosition(0);
|
break;
|
case R.id.tv_net_setting:
|
case R.id.tv_refresh:
|
vp_banner.getContext().startActivity(new Intent(Settings.ACTION_SETTINGS));
|
break;
|
case R.id.ll_limit_time_buy://限时秒杀
|
// if (limitTimeBuyInfo != null)
|
// onLimitTimeItemClick(limitTimeBuyInfo.getJumpDetail(), limitTimeBuyInfo.getParams());
|
startActivity(new Intent(getContext(), TimeLimitedSpikeActivity.class));
|
break;
|
case R.id.ll_jinbi_exchange_buy://金币兑换
|
if (jinBiExchangeInfo != null && jinBiExchangeInfo.getJumpDetail().isNeedLogin()) {
|
boolean isLogin = getContext().getSharedPreferences("user", MODE_PRIVATE)
|
.getBoolean("isLogin", false);
|
if (isLogin) {
|
onLimitTimeItemClick(jinBiExchangeInfo.getJumpDetail(), jinBiExchangeInfo.getParams());
|
} else {
|
UserUtil.jumpLogin(getContext());
|
}
|
} else {
|
if (jinBiExchangeInfo != null)
|
onLimitTimeItemClick(jinBiExchangeInfo.getJumpDetail(), jinBiExchangeInfo.getParams());
|
}
|
|
break;
|
}
|
}
|
|
/**
|
* 限时秒杀点击事件
|
*/
|
private void onLimitTimeItemClick(JumpDetail jumpDetail, com.alibaba.fastjson.JSONObject params) {
|
Intent intent = null;
|
if (jumpDetail.getType().equalsIgnoreCase("baichuan") && params != null) {
|
AlibcShowParams alibcShowParams = new AlibcShowParams();
|
alibcShowParams.setOpenType(OpenType.Auto);
|
String url = params.getString("url");
|
JumpActivityUtil.jumpBaiChuan(getActivity(), null, url, "", alibcShowParams);
|
} else if (jumpDetail != null &&
|
(!StringUtils.isEmpty(jumpDetail.getActivity()))
|
&& params != null) {//有 跳转页面 有参数
|
try {
|
intent = new Intent(getContext(), Class.forName(JumpActivityUtil.filterActivityName(jumpDetail.getActivity())));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
if (params != null) {
|
@SuppressWarnings("unchecked")
|
Iterator<String> its = params.keySet().iterator();
|
while (its.hasNext()) {
|
String key = its.next();
|
String value = params.getString(key);
|
intent.putExtra(key, value);
|
}
|
}
|
startActivity(intent);
|
}
|
//无 跳转页面 有无参数
|
else if (jumpDetail == null || (StringUtils.isEmpty(jumpDetail.getActivity())) && params != null) {
|
intent = new Intent(getContext(), ShareBrowserActivity.class);
|
|
if (params != null) {
|
@SuppressWarnings("unchecked")
|
Iterator<String> its = params.keySet().iterator();
|
while (its.hasNext()) {
|
String key = its.next();
|
String value = params.getString(key);
|
intent.putExtra(key, value);
|
}
|
}
|
|
startActivity(intent);
|
}
|
////有 跳转页面 有无参数
|
else if (jumpDetail != null && (!StringUtils.isEmpty(jumpDetail.getActivity())) && params == null) {
|
try {
|
intent = new Intent(getContext(), Class.forName(JumpActivityUtil.filterActivityName(jumpDetail.getActivity())));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
startActivity(intent);
|
}
|
}
|
|
/**
|
* 请求状态 0 数据正常展示;1 返回数据为空;2 网络请求失败;3 没有连接网络
|
*
|
* @param state
|
*/
|
private void requestState(int state) {
|
if (isCache)
|
return;
|
rl_first_page.setVisibility(state == 0 ? View.VISIBLE : View.GONE);
|
// rv_first_page.setVisibility(state == 0 ? 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);
|
}
|
}
|