package com.haicaojie.android.ui.recommend;
|
|
import android.app.ProgressDialog;
|
import android.content.Context;
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.graphics.Paint;
|
import android.graphics.Typeface;
|
import android.os.Build;
|
import android.os.Bundle;
|
import android.provider.Settings;
|
import android.support.v4.view.PagerAdapter;
|
import android.support.v4.view.ViewPager;
|
import android.text.Html;
|
import android.text.Spannable;
|
import android.text.SpannableString;
|
import android.text.TextUtils;
|
import android.util.Log;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.view.Window;
|
import android.view.WindowManager;
|
import android.widget.AdapterView;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.alibaba.baichuan.android.trade.AlibcTrade;
|
import com.alibaba.baichuan.android.trade.model.AlibcShowParams;
|
import com.alibaba.baichuan.android.trade.model.OpenType;
|
import com.alibaba.baichuan.android.trade.page.AlibcDetailPage;
|
import com.alibaba.baichuan.android.trade.page.AlibcPage;
|
import com.alibaba.baichuan.trade.biz.AlibcConstants;
|
import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams;
|
import com.alibaba.baichuan.trade.biz.login.AlibcLogin;
|
import com.alibaba.baichuan.trade.biz.login.AlibcLoginCallback;
|
import com.bumptech.glide.Glide;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.haicaojie.android.BasicTextHttpResponseHandler;
|
import com.haicaojie.android.BuXinConstant;
|
import com.haicaojie.android.R;
|
import com.haicaojie.android.ShoppingApi;
|
import com.haicaojie.android.callBack.MiDuoTradeCallback;
|
import com.haicaojie.android.entity.GoodsDetailTransition;
|
import com.haicaojie.android.entity.TaoBaoGoodsBrief;
|
import com.haicaojie.android.entity.TbPidInfo;
|
import com.haicaojie.android.ui.BaseActivity;
|
import com.haicaojie.android.ui.invite.ShareBrowserActivity;
|
import com.haicaojie.android.ui.mine.LoginSelectActivity;
|
import com.haicaojie.android.util.ApkUtil;
|
import com.haicaojie.android.util.InitAlibcSdk;
|
import com.haicaojie.android.util.JumpTaoBaoDialog;
|
import com.haicaojie.android.util.TaobaoLoginHintDialog;
|
import com.haicaojie.android.util.VerticalImageSpan;
|
import com.lcjian.library.content.ConnectivityChangeHelper;
|
import com.lcjian.library.util.NetUtils;
|
import com.lcjian.library.util.SingleToast;
|
import com.lcjian.library.util.common.DimenUtils;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.lcjian.library.widget.MyGridView;
|
import com.lcjian.library.widget.MyScrollView;
|
import com.lcjian.library.widget.ResizableImageView;
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
|
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
|
import com.umeng.analytics.MobclickAgent;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* Created by weikou2015 on 2018/5/11.
|
* 商品详情过渡页--可跳转手淘原生,自我网页
|
*/
|
|
public class GoodsBrowserActivity extends BaseActivity implements View.OnClickListener {
|
private ImageView iv_shop_img, iv_shop_from;
|
private TextView tv_top_title1, tv_top_title2, tv_top_title3, tv_like_state, tv_shop_name;
|
private FrameLayout fl_buy, fl_back, fl_back2, fl_back_face, fl_content;
|
private LinearLayout ll_share_gain, ll_imgs, ll_goods_detail_transition_top;
|
private View v_1, v_2, v_3;
|
private MyGridView gv_relative;
|
|
private TextView tv_goods_des;
|
private TextView tv_currunt_page;
|
private int picNum = 1;
|
private TextView tv_goods_price_before;
|
private TextView tv_sales_num;
|
private ImageView iv_coupon_show;
|
private TextView tv_goods_price_coupon;
|
private TextView tv_rebate_num;
|
private TextView tv_coupon_num;
|
private TextView tv_coupon_date;
|
private TextView tv_share_money_num, tv_buy;
|
private FrameLayout fl_receive_coupon;
|
private LinearLayout ll_coupon, ll_top_title;
|
private MyScrollView lv_goods_pic;
|
private ViewPager vp_goods_detail;
|
// private CirclePageIndicator indicator_goods_detail;
|
private ImageAdapter bannerAdapter;
|
// private GoodsImageAdapter imgAdapter;
|
private List<String> mBanners = new ArrayList<>();
|
// private SwipeRefreshLayout srl_goods_detail;
|
private ConnectivityChangeHelper mChangeHelper;
|
private LinearLayout ll_no_net, ll_no_data, ll_request_failture;
|
String goodsId;
|
String goodsTaoBaoId;
|
private DisplayImageOptions options = new DisplayImageOptions.Builder()
|
.showImageForEmptyUri(R.drawable.ic_goods_default)
|
.showImageOnFail(R.drawable.ic_goods_default)
|
.showImageOnLoading(R.drawable.ic_goods_default)
|
.resetViewBeforeLoading(true).cacheInMemory(true)
|
.cacheOnDisk(true).imageScaleType(ImageScaleType.EXACTLY)
|
.considerExifParams(true)
|
.displayer(new FadeInBitmapDisplayer(300)).build();
|
|
private Map<String, String> exParams;//yhhpass参数
|
AlibcShowParams alibcShowParams;
|
AlibcTaokeParams alibcTaokeParams;
|
|
@Override
|
protected void onCreate(Bundle arg0) {
|
super.onCreate(arg0);
|
setContentView(R.layout.activity_goods_detail_transition);
|
/*
|
* 计算状态栏高度并设置
|
*/
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
Window window = getWindow();
|
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
|
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
int result = 0;
|
int resourceId = getResources().getIdentifier("status_bar_height",
|
"dimen", "android");
|
if (resourceId > 0) {
|
result = getResources().getDimensionPixelSize(resourceId);
|
}
|
//设置状态栏文字颜色及图标为深色
|
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
|
result);
|
findViewById(R.id.v_status_bar).setLayoutParams(params);
|
} else {
|
findViewById(R.id.v_status_bar).setVisibility(View.GONE);
|
}
|
|
lv_goods_pic = (MyScrollView) findViewById(R.id.lv_goods_pic);
|
tv_top_title1 = (TextView) findViewById(R.id.tv_top_title1);
|
tv_top_title2 = (TextView) findViewById(R.id.tv_top_title2);
|
tv_top_title3 = (TextView) findViewById(R.id.tv_top_title3);
|
tv_like_state = (TextView) findViewById(R.id.tv_like_state);
|
tv_share_money_num = (TextView) findViewById(R.id.tv_share_money_num);
|
tv_buy = (TextView) findViewById(R.id.tv_buy);
|
fl_back_face = (FrameLayout) findViewById(R.id.fl_back_face);
|
fl_content = (FrameLayout) findViewById(R.id.fl_content);
|
ll_top_title = (LinearLayout) findViewById(R.id.ll_top_title);
|
iv_shop_img = (ImageView) findViewById(R.id.iv_shop_img);
|
iv_shop_from = (ImageView) findViewById(R.id.iv_shop_from);
|
tv_shop_name = (TextView) findViewById(R.id.tv_shop_name);
|
ll_goods_detail_transition_top = (LinearLayout) findViewById(R.id.ll_goods_detail_transition_top);
|
v_1 = findViewById(R.id.v_1);
|
v_2 = findViewById(R.id.v_2);
|
v_3 = findViewById(R.id.v_3);
|
|
ll_share_gain = (LinearLayout) findViewById(R.id.ll_share_gain);
|
ll_imgs = (LinearLayout) findViewById(R.id.ll_imgs);
|
fl_buy = (FrameLayout) findViewById(R.id.fl_buy);
|
|
vp_goods_detail = (ViewPager) findViewById(R.id.vp_goods_img);
|
tv_currunt_page = (TextView) findViewById(R.id.tv_page_num);
|
tv_goods_price_before = (TextView) findViewById(R.id.tv_goods_price_before);
|
tv_sales_num = (TextView) findViewById(R.id.tv_sales_num);
|
iv_coupon_show = (ImageView) findViewById(R.id.iv_coupon_show);
|
tv_goods_price_coupon = (TextView) findViewById(R.id.tv_goods_price_coupon);
|
tv_rebate_num = (TextView) findViewById(R.id.tv_rebate_num);
|
tv_coupon_num = (TextView) findViewById(R.id.tv_coupon_num);
|
tv_coupon_date = (TextView) findViewById(R.id.tv_coupon_date);
|
tv_currunt_page = (TextView) findViewById(R.id.tv_page_num);
|
tv_currunt_page = (TextView) findViewById(R.id.tv_page_num);
|
tv_currunt_page = (TextView) findViewById(R.id.tv_page_num);
|
fl_receive_coupon = (FrameLayout) findViewById(R.id.fl_receive_coupon);
|
ll_coupon = (LinearLayout) findViewById(R.id.ll_coupon);
|
gv_relative = (MyGridView) findViewById(R.id.gv_relative);
|
findViewById(R.id.fl_face).setVisibility(View.VISIBLE);
|
|
bannerAdapter = new ImageAdapter(mBanners, this);
|
vp_goods_detail.setAdapter(bannerAdapter);
|
vp_goods_detail.setCurrentItem(0, true);
|
|
ll_no_net = (LinearLayout) findViewById(R.id.ll_no_net);
|
ll_no_data = (LinearLayout) findViewById(R.id.ll_no_data);
|
ll_request_failture = (LinearLayout) findViewById(R.id.ll_request_failture);
|
findViewById(R.id.iv_net_setting).setOnClickListener(this);
|
findViewById(R.id.tv_refresh).setOnClickListener(this);
|
|
fl_back = (FrameLayout) findViewById(R.id.fl_back);
|
fl_back2 = (FrameLayout) findViewById(R.id.fl_back2);
|
tv_goods_des = (TextView) findViewById(R.id.tv_goods_des);
|
// goodsId = "568145444566";
|
goodsId = getIntent().getExtras().getString("id");
|
gAdapter = new RelativeGoodsAdapter(this, gList);
|
gv_relative.setAdapter(gAdapter);
|
|
mChangeHelper = new ConnectivityChangeHelper(this,
|
new ConnectivityChangeHelper.OnConnectivityChangeListener() {
|
|
@Override
|
public void onNetworkUnAvailable() {
|
}
|
|
@Override
|
public void onNetworkAvailable() {
|
requestState(0);
|
if (mInfo == null && (pd != null && !pd.isShowing())) {
|
getGoodsDetail();
|
getGoodsRecommend();
|
}
|
}
|
});
|
|
fl_back.setOnClickListener(this);
|
fl_back2.setOnClickListener(this);
|
fl_back_face.setOnClickListener(this);
|
tv_top_title1.setOnClickListener(this);
|
tv_top_title2.setOnClickListener(this);
|
tv_top_title3.setOnClickListener(this);
|
tv_like_state.setOnClickListener(this);
|
ll_share_gain.setOnClickListener(this);
|
fl_receive_coupon.setOnClickListener(this);
|
fl_buy.setOnClickListener(this);
|
ll_top_title.setVisibility(View.GONE);
|
alibcShowParams = new AlibcShowParams(OpenType.Auto, false);
|
|
if (getSharedPreferences("user", MODE_PRIVATE).getString("is_goods_web_detail", "0").equalsIgnoreCase("1")) {
|
Intent intent = new Intent(GoodsBrowserActivity.this, GoodsDetailBrowerActivity.class);
|
intent.putExtra("id", goodsId);
|
startActivity(intent);
|
finish();
|
}
|
|
vp_goods_detail.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
@Override
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
|
}
|
|
@Override
|
public void onPageSelected(int position) {
|
tv_currunt_page.setText((position + 1) + "/" + picNum);
|
}
|
|
@Override
|
public void onPageScrollStateChanged(int state) {
|
|
}
|
});
|
|
lv_goods_pic.setOnScrollListener(new MyScrollView.OnScrollListener() {
|
@Override
|
public void onScroll(int scrollY) {
|
if (scrollY < ll_goods_detail_transition_top.getHeight()) {
|
tv_top_title1.setTextColor(getResources().getColor(R.color.main_text_color));
|
tv_top_title1.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
v_1.setVisibility(View.VISIBLE);
|
tv_top_title2.setTextColor(getResources().getColor(R.color.gray2));
|
tv_top_title2.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
v_2.setVisibility(View.GONE);
|
tv_top_title3.setTextColor(getResources().getColor(R.color.gray2));
|
tv_top_title3.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
v_3.setVisibility(View.GONE);
|
} else if (scrollY >= ll_goods_detail_transition_top.getHeight() && scrollY < (ll_goods_detail_transition_top.getHeight() + ll_imgs.getHeight())) {
|
tv_top_title1.setTextColor(getResources().getColor(R.color.gray2));
|
tv_top_title1.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
v_1.setVisibility(View.GONE);
|
tv_top_title2.setTextColor(getResources().getColor(R.color.main_text_color));
|
tv_top_title2.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
v_2.setVisibility(View.VISIBLE);
|
tv_top_title3.setTextColor(getResources().getColor(R.color.gray2));
|
tv_top_title3.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
v_3.setVisibility(View.GONE);
|
} else if (scrollY >= (ll_goods_detail_transition_top.getHeight() + ll_imgs.getHeight())) {
|
tv_top_title1.setTextColor(getResources().getColor(R.color.gray2));
|
tv_top_title1.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
v_1.setVisibility(View.GONE);
|
tv_top_title2.setTextColor(getResources().getColor(R.color.gray2));
|
tv_top_title2.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
v_2.setVisibility(View.GONE);
|
tv_top_title3.setTextColor(getResources().getColor(R.color.main_text_color));
|
tv_top_title3.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
v_3.setVisibility(View.VISIBLE);
|
}
|
float baseHeight = ll_goods_detail_transition_top.getHeight() / 4;
|
if (scrollY >= 1
|
&& scrollY < baseHeight) {
|
if (scrollY / baseHeight < 0.1) {
|
ll_top_title.setVisibility(View.GONE);
|
fl_back.setVisibility(View.VISIBLE);
|
} else if (baseHeight / scrollY < 0.1) {
|
ll_top_title.setVisibility(View.VISIBLE);
|
fl_back.setVisibility(View.GONE);
|
} else {
|
ll_top_title.setVisibility(View.VISIBLE);
|
fl_back.setVisibility(View.VISIBLE);
|
}
|
ll_top_title.setAlpha(scrollY / baseHeight);
|
fl_back.setAlpha(baseHeight / scrollY);
|
|
Log.i("mResult", "沿Y轴滑动的距离" + scrollY);
|
} else if (scrollY > baseHeight) {
|
ll_top_title.setVisibility(View.VISIBLE);
|
fl_back.setVisibility(View.GONE);
|
ll_top_title.setAlpha(1.0f);
|
} else if (scrollY < 1) {
|
ll_top_title.setVisibility(View.GONE);
|
fl_back.setVisibility(View.VISIBLE);
|
fl_back.setAlpha(1.0f);
|
}
|
}
|
});
|
|
gv_relative.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
@Override
|
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
|
TaoBaoGoodsBrief info = (TaoBaoGoodsBrief) adapterView.getAdapter().getItem(position);
|
goodsId = info.getAuctionId();
|
getGoodsDetail();
|
getGoodsRecommend();
|
}
|
});
|
|
getGoodsDetail();
|
getGoodsRecommend();
|
}
|
|
GoodsDetailTransition mInfo;
|
boolean isNative = true, invalid = false;
|
TbPidInfo tInfo;
|
ProgressDialog pd;
|
|
private void getGoodsDetail() {
|
if (pd == null)
|
pd = new ProgressDialog(this);
|
pd.setMessage("网络请求中...");
|
pd.show();
|
ShoppingApi.getGoodsDetailInfo(this, goodsId, getSharedPreferences("user", MODE_PRIVATE).getString("uid", "0"), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
findViewById(R.id.fl_face).setVisibility(View.GONE);
|
tv_currunt_page.setVisibility(View.VISIBLE);
|
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
params.bottomMargin = DimenUtils.dip2px(GoodsBrowserActivity.this, 54);
|
lv_goods_pic.setLayoutParams(params);
|
findViewById(R.id.fl_goods_detail).setVisibility(View.VISIBLE);
|
findViewById(R.id.ll_bottom).setVisibility(View.VISIBLE);
|
findViewById(R.id.ll_coupon).setVisibility(View.VISIBLE);
|
findViewById(R.id.ll_shop).setVisibility(View.VISIBLE);
|
findViewById(R.id.ll_sale_num_and_price_before).setVisibility(View.VISIBLE);
|
findViewById(R.id.ll_price_and_rebate).setVisibility(View.VISIBLE);
|
tv_goods_des.setVisibility(View.VISIBLE);
|
findViewById(R.id.ll_goods_nothing).setVisibility(View.GONE);
|
vp_goods_detail.setVisibility(View.VISIBLE);
|
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
mInfo = gson.fromJson(jsonObject.optJSONObject("data").optJSONObject("goods").toString(), GoodsDetailTransition.class);
|
goodsTaoBaoId = mInfo.getAuctionId();
|
isCollect = Boolean.parseBoolean(jsonObject.optJSONObject("data").optString("collected"));
|
|
JSONObject object = jsonObject.optJSONObject("data").optJSONObject("ticket");
|
if (object != null) {
|
clickUrl = object.optString("clickUrl");
|
couponUrl = object.optString("couponUrl");
|
}
|
invalid = Boolean.parseBoolean(jsonObject.optJSONObject("data").optString("invalid"));
|
|
showImageFace(mInfo.getTitle(), mInfo.getUserType(), tv_goods_des);
|
tv_goods_price_before.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
|
tv_goods_price_before.setText("原价:" + mInfo.getPrice());
|
tv_sales_num.setText("销量 " + mInfo.getSaleCount());
|
tv_rebate_num.setText(mInfo.getHongBao());
|
tv_share_money_num.setText(jsonObject.optJSONObject("data").optString("shareMoney"));
|
Glide.with(GoodsBrowserActivity.this).load(mInfo.getShopInfo().getPictureUrl()).placeholder(R.drawable.ic_goods_default).error(R.drawable.ic_default_shop).into(iv_shop_img);
|
Glide.with(GoodsBrowserActivity.this).load(mInfo.getShopInfo().getShopType()).into(iv_shop_from);
|
tv_shop_name.setText(mInfo.getShopInfo().getShopTitle());
|
if (Boolean.parseBoolean(mInfo.getCoupon())) {
|
tv_buy.setText("领券购买");
|
ll_coupon.setVisibility(View.VISIBLE);
|
iv_coupon_show.setVisibility(View.VISIBLE);
|
tv_coupon_num.setText(mInfo.getCouponInfo().getCouponAmount());
|
tv_coupon_date.setText(mInfo.getCouponInfo().getCouponTime());
|
tv_goods_price_coupon.setText(mInfo.getCouponInfo().getCouponPrice());
|
} else {
|
tv_buy.setText("立即购买");
|
iv_coupon_show.setVisibility(View.GONE);
|
ll_coupon.setVisibility(View.GONE);
|
tv_goods_price_coupon.setText(mInfo.getZkPrice());
|
}
|
if (Boolean.parseBoolean(jsonObject.optJSONObject("data").optString("collected"))) {
|
tv_like_state.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_like_goods_detail_light, 0, 0);
|
} else {
|
tv_like_state.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_like_goods_detail, 0, 0);
|
}
|
|
Log.i("mResult", "isLike的值为" + mInfo.getAuctionId());
|
// mList.addAll(mInfo.getDetailImgs());
|
// imgAdapter.notifyDataSetChanged();
|
ll_imgs.removeAllViews();
|
for (int j = 0; j < mInfo.getDetailImgs().size(); j++) {
|
ResizableImageView iv = new ResizableImageView(GoodsBrowserActivity.this);
|
iv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
|
ViewGroup.LayoutParams.WRAP_CONTENT));
|
ImageLoader.getInstance().displayImage(mInfo.getDetailImgs().get(j), iv, options);
|
// Glide.with(GoodsBrowserActivity.this).load(mInfo.getDetailImgs().get(j)).placeholder(R.drawable.ic_goods_default).into(iv);
|
ll_imgs.addView(iv);
|
}
|
picNum = mInfo.getImgList().size();
|
tv_currunt_page.setText("1/" + picNum);
|
mBanners.clear();
|
mBanners.addAll(mInfo.getImgList());
|
bannerAdapter.notifyDataSetChanged();
|
vp_goods_detail.setCurrentItem(0);
|
|
isNative = Boolean.parseBoolean(jsonObject.optJSONObject("data").optString("native"));
|
tInfo = gson.fromJson(jsonObject.optJSONObject("data").optJSONObject("tbPidInfo").toString(), TbPidInfo.class);
|
alibcTaokeParams = new AlibcTaokeParams();
|
alibcTaokeParams.setPid(tInfo.getPid());
|
alibcTaokeParams.setAdzoneid(tInfo.getAdZoneId());
|
alibcTaokeParams.pid = tInfo.getPid();
|
alibcTaokeParams.adzoneid = tInfo.getAdZoneId();
|
alibcTaokeParams.extraParams = new HashMap<>();
|
alibcTaokeParams.extraParams.put("taokeAppkey", tInfo.getAppKey());
|
exParams = new HashMap<>();
|
exParams.put(AlibcConstants.ISV_CODE, "appisvcode");
|
exParams.put("alibaba", "阿里巴巴");//自定义参数部分,可任意增删改
|
requestState(0);
|
} else if (jsonObject.optString("code").equalsIgnoreCase("2")) {
|
mBanners.add("https://www.baidu.com");
|
bannerAdapter.notifyDataSetChanged();
|
vp_goods_detail.setCurrentItem(0);
|
tv_currunt_page.setVisibility(View.GONE);
|
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
params.bottomMargin = 0;
|
lv_goods_pic.setLayoutParams(params);
|
findViewById(R.id.fl_goods_detail).setVisibility(View.GONE);
|
findViewById(R.id.ll_bottom).setVisibility(View.GONE);
|
findViewById(R.id.ll_coupon).setVisibility(View.GONE);
|
findViewById(R.id.ll_shop).setVisibility(View.GONE);
|
findViewById(R.id.ll_sale_num_and_price_before).setVisibility(View.GONE);
|
findViewById(R.id.ll_price_and_rebate).setVisibility(View.GONE);
|
tv_goods_des.setVisibility(View.GONE);
|
findViewById(R.id.ll_goods_nothing).setVisibility(View.VISIBLE);
|
vp_goods_detail.setVisibility(View.GONE);
|
requestState(2);
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
if (NetUtils.getNetworkState(GoodsBrowserActivity.this).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
requestState(3);
|
} else {
|
requestState(2);
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
lv_goods_pic.scrollTo(0, 0);
|
if (pd.isShowing())
|
pd.dismiss();
|
}
|
});
|
}
|
|
private void getGoodsRecommend() {
|
ShoppingApi.getGoodsRecommend(this, goodsId, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
gList.clear();
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<TaoBaoGoodsBrief> list = gson.fromJson(
|
jsonObject.optJSONArray("data").toString(),
|
new TypeToken<List<TaoBaoGoodsBrief>>() {
|
}.getType());
|
gList.addAll(list);
|
gAdapter.notifyDataSetChanged();
|
}
|
}
|
|
});
|
}
|
|
private void showImageFace(String s, String shop, TextView tv) {
|
// 创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像
|
SpannableString spannableString = null;
|
VerticalImageSpan imageSpan = null;
|
if (Integer.parseInt(shop) == 1) {//淘宝
|
imageSpan = new VerticalImageSpan(this, R.drawable.icon);
|
spannableString = new SpannableString(Html.fromHtml("# " + s));
|
} else if (Integer.parseInt(shop) == 2) {//天猫
|
imageSpan = new VerticalImageSpan(this, R.drawable.ic_tmall);
|
spannableString = new SpannableString(Html.fromHtml("# " + s));
|
} else {
|
spannableString = new SpannableString(Html.fromHtml(s));
|
}
|
// 用ImageSpan对象替换字符
|
spannableString.setSpan(imageSpan, 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
tv.setText(spannableString);
|
}
|
|
JumpTaoBaoDialog dialog;
|
|
@Override
|
protected void onResume() {
|
super.onResume();
|
mChangeHelper.registerReceiver();
|
MobclickAgent.onPageStart("商品过渡页");
|
SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE);
|
if (isClick == 1) {
|
if (sp.getBoolean("isLogin", false) && !AlibcLogin.getInstance().isLogin()) {
|
tbLogin();
|
} else if (sp.getBoolean("isLogin", false) && AlibcLogin.getInstance().isLogin()) {
|
getTBLinkInfo(sp.getString("uid", ""));
|
}
|
} else if (isClick == 2 && sp.getBoolean("isLogin", false)) {
|
if (mInfo != null) {
|
Intent intent = new Intent(GoodsBrowserActivity.this, ShareBrowserActivity.class);
|
intent.putExtra("goodsId", mInfo.getAuctionId());
|
startActivity(intent);
|
} else {
|
Toast.makeText(GoodsBrowserActivity.this, "暂未获取到分享奖金,请稍等!", Toast.LENGTH_LONG).show();
|
}
|
isClick = 0;
|
} else if (isClick == 3) {
|
if (isCollect) {
|
tv_like_state.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_like_goods_detail_light, 0, 0);
|
tv_like_state.setText("已收藏");
|
} else {
|
collection();
|
}
|
isClick = 0;
|
}
|
|
if (dialog != null && dialog.isShowing())
|
dialog.dismiss();
|
|
if (sp.getBoolean("isLogin", false)) {
|
String uid = sp.getString("uid", "0");
|
getTBLinkInfo(uid);
|
}
|
|
// indicator_goods_detail.setViewPager(vp_goods_detail);
|
}
|
|
@Override
|
protected void onPause() {
|
super.onPause();
|
mChangeHelper.unregisterReceiver();
|
MobclickAgent.onPageEnd("商品过渡页");
|
}
|
|
|
String clickUrl = "";
|
String couponUrl = "";
|
|
/**
|
* 获取PID 信息
|
*/
|
private void getTBLinkInfo(String uid) {
|
ShoppingApi.getTBLinkInfo(this, uid, goodsId, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
tInfo = gson.fromJson(jsonObject.optJSONObject("data").optJSONObject("pidInfo").toString(), TbPidInfo.class);
|
JSONObject object = jsonObject.optJSONObject("data").optJSONObject("ticket");
|
if (object != null) {
|
clickUrl = object.optString("clickUrl");
|
couponUrl = object.optString("couponUrl");
|
}
|
if (isClick == 1 && AlibcLogin.getInstance().isLogin()) {
|
// showGoods();
|
goBuy();
|
}
|
}
|
}
|
});
|
}
|
|
/**
|
* @param view 显示商品详情页
|
*/
|
private boolean isCollect = false;
|
private int isClick = 0;
|
|
List<TaoBaoGoodsBrief> gList = new ArrayList<>();
|
RelativeGoodsAdapter gAdapter;
|
|
@Override
|
public void onClick(View v) {
|
String pUrl = "www.baidu.com";
|
boolean isLogin = getSharedPreferences("user", MODE_PRIVATE).getBoolean("isLogin", false);
|
switch (v.getId()) {
|
case R.id.fl_back:
|
finish();
|
break;
|
case R.id.fl_back2:
|
finish();
|
break;
|
case R.id.tv_top_title1:
|
// lv_goods_pic.setSelection(0);
|
lv_goods_pic.scrollTo(0, 0);
|
tv_top_title1.setTextColor(getResources().getColor(R.color.main_text_color));
|
tv_top_title1.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
v_1.setVisibility(View.VISIBLE);
|
tv_top_title2.setTextColor(getResources().getColor(R.color.gray2));
|
tv_top_title2.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
v_2.setVisibility(View.GONE);
|
tv_top_title3.setTextColor(getResources().getColor(R.color.gray2));
|
tv_top_title3.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
v_3.setVisibility(View.GONE);
|
break;
|
case R.id.tv_top_title2:
|
lv_goods_pic.scrollTo(0, ll_goods_detail_transition_top.getHeight());
|
tv_top_title1.setTextColor(getResources().getColor(R.color.gray2));
|
tv_top_title1.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
v_1.setVisibility(View.GONE);
|
tv_top_title2.setTextColor(getResources().getColor(R.color.main_text_color));
|
tv_top_title2.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
v_2.setVisibility(View.VISIBLE);
|
tv_top_title3.setTextColor(getResources().getColor(R.color.gray2));
|
tv_top_title3.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
v_3.setVisibility(View.GONE);
|
break;
|
case R.id.tv_top_title3:
|
lv_goods_pic.scrollTo(0, ll_goods_detail_transition_top.getHeight() + ll_imgs.getHeight());
|
tv_top_title1.setTextColor(getResources().getColor(R.color.gray2));
|
tv_top_title1.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
v_1.setVisibility(View.GONE);
|
tv_top_title2.setTextColor(getResources().getColor(R.color.gray2));
|
tv_top_title2.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
v_2.setVisibility(View.GONE);
|
tv_top_title3.setTextColor(getResources().getColor(R.color.main_text_color));
|
tv_top_title3.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
v_3.setVisibility(View.VISIBLE);
|
break;
|
case R.id.tv_like_state:
|
tv_like_state.setEnabled(false);
|
if (NetUtils.getNetworkState(GoodsBrowserActivity.this).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
SingleToast.showToast(GoodsBrowserActivity.this, "网络未连接,请检测网络设置");
|
tv_like_state.setEnabled(true);
|
} else {
|
if (NetUtils.ping(pUrl)) {
|
if (mInfo == null) {
|
tv_like_state.setEnabled(true);
|
SingleToast.showToast(GoodsBrowserActivity.this, "没有获取到商品收藏状态,请稍等!");
|
break;
|
}
|
if (isLogin) {
|
collection();
|
} else {
|
tv_like_state.setEnabled(true);
|
isClick = 3;
|
startActivity(new Intent(GoodsBrowserActivity.this, LoginSelectActivity.class));
|
SingleToast.showToast(GoodsBrowserActivity.this, "登录后才能收藏哦");
|
}
|
} else {
|
tv_like_state.setEnabled(true);
|
SingleToast.showToast(GoodsBrowserActivity.this, "网络连接异常,请检测网络设置");
|
}
|
}
|
break;
|
case R.id.ll_share_gain:
|
if (isLogin) {
|
if (mInfo != null) {
|
Intent intent = new Intent(GoodsBrowserActivity.this, ShareBrowserActivity.class);
|
intent.putExtra("goodsId", mInfo.getAuctionId());
|
startActivity(intent);
|
} else {
|
Toast.makeText(GoodsBrowserActivity.this, "暂未获取到分享奖金,请稍等!", Toast.LENGTH_LONG).show();
|
}
|
} else {
|
isClick = 2;
|
Toast.makeText(GoodsBrowserActivity.this, "请先登录海草街账号", Toast.LENGTH_LONG).show();
|
startActivity(new Intent(GoodsBrowserActivity.this, LoginSelectActivity.class));
|
}
|
|
break;
|
case R.id.fl_receive_coupon:
|
if (invalid)
|
break;
|
if (NetUtils.getNetworkState(GoodsBrowserActivity.this).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
SingleToast.showToast(GoodsBrowserActivity.this, "网络未连接,请检测网络设置");
|
} else {
|
if (NetUtils.ping(pUrl)) {
|
buyOrGainCoupon(isLogin);
|
} else {
|
SingleToast.showToast(GoodsBrowserActivity.this, "网络连接异常,请检测网络设置");
|
}
|
}
|
break;
|
case R.id.fl_buy:
|
if (invalid)
|
break;
|
if (NetUtils.getNetworkState(GoodsBrowserActivity.this).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
SingleToast.showToast(GoodsBrowserActivity.this, "网络未连接,请检测网络设置");
|
} else {
|
if (NetUtils.ping(pUrl)) {
|
buyOrGainCoupon(isLogin);
|
} else {
|
SingleToast.showToast(GoodsBrowserActivity.this, "网络连接异常,请检测网络设置");
|
}
|
}
|
break;
|
case R.id.fl_back_face:
|
finish();
|
break;
|
case R.id.iv_net_setting:
|
startActivity(new Intent(Settings.ACTION_SETTINGS));
|
break;
|
case R.id.tv_refresh:
|
startActivity(new Intent(Settings.ACTION_SETTINGS));
|
// requestState(0);
|
// getGoodsDetail();
|
// getGoodsRecommend();
|
break;
|
}
|
}
|
|
private void buyOrGainCoupon(boolean isLogin) {
|
isClick = 1;
|
if (!isLogin) {
|
startActivity(new Intent(GoodsBrowserActivity.this, LoginSelectActivity.class));
|
return;
|
}
|
if (!AlibcLogin.getInstance().isLogin()) {
|
tbLogin();
|
return;
|
}
|
goBuy();
|
}
|
|
private void goBuy() {
|
if (mInfo != null) {
|
if (isNative) {
|
if (ApkUtil.checkAPP(GoodsBrowserActivity.this, "com.taobao.taobao")) {
|
showGoods();
|
} else if (tInfo != null) {
|
Intent intent = new Intent(GoodsBrowserActivity.this, GoodsDetailBrowerActivity.class);
|
intent.putExtra("id", mInfo.getAuctionId());
|
intent.putExtra("tInfo", tInfo);
|
intent.putExtra("cInfo", mInfo.getCouponInfo());
|
startActivity(intent);
|
isClick = 0;
|
}
|
} else {
|
isClick = 0;
|
if (tInfo != null) {
|
Intent intent = new Intent(GoodsBrowserActivity.this, GoodsDetailBrowerActivity.class);
|
intent.putExtra("id", mInfo.getAuctionId());
|
intent.putExtra("tInfo", tInfo);
|
intent.putExtra("cInfo", mInfo.getCouponInfo());
|
startActivity(intent);
|
} else {
|
Intent intent = new Intent(GoodsBrowserActivity.this, GoodsDetailBrowerActivity.class);
|
intent.putExtra("id", mInfo.getAuctionId());
|
startActivity(intent);
|
}
|
}
|
}
|
}
|
|
/**
|
* 打开指定链接
|
*/
|
public void showGoods() {
|
if (TextUtils.isEmpty(goodsId)) {
|
Toast.makeText(GoodsBrowserActivity.this, "暂未获取到商品信息",
|
Toast.LENGTH_SHORT).show();
|
return;
|
}
|
alibcTaokeParams = new AlibcTaokeParams();
|
Log.e("mResult", "pid---" + tInfo.getPid() + "\nADZONE_ID---" + tInfo.getAdZoneId() + "\ntaokeKey---" + tInfo.getAppKey());
|
// alibcTaokeParams.setPid(BuXinConstant.BAICHUAN_PID);
|
// alibcTaokeParams.setAdzoneid(BuXinConstant.BAICHUAN_ADZONE_ID);
|
// alibcTaokeParams.pid = BuXinConstant.BAICHUAN_PID;
|
// alibcTaokeParams.adzoneid = BuXinConstant.BAICHUAN_ADZONE_ID;
|
alibcTaokeParams.setPid(tInfo.getPid());
|
alibcTaokeParams.setAdzoneid(tInfo.getAdZoneId());
|
alibcTaokeParams.pid = tInfo.getPid();
|
alibcTaokeParams.adzoneid = tInfo.getAdZoneId();
|
alibcTaokeParams.extraParams = new HashMap<>();
|
// alibcTaokeParams.extraParams.put("taokeAppkey", tInfo.getAppKey());
|
alibcTaokeParams.extraParams.put("taokeAppkey", tInfo.getAppKey());
|
exParams = new HashMap<>();
|
exParams.put(AlibcConstants.ISV_CODE, "appisvcode");
|
exParams.put("alibaba", "阿里巴巴");//自定义参数部分,可任意增删改
|
if (!StringUtils.isEmpty(clickUrl) || !StringUtils.isEmpty(couponUrl)) {
|
AlibcPage basePage = new AlibcPage((!StringUtils.isEmpty(couponUrl)) ? couponUrl : clickUrl);
|
// AlibcDetailPage basePage = new AlibcDetailPage(couponUrl);
|
AlibcTrade.show(GoodsBrowserActivity.this, basePage, alibcShowParams, alibcTaokeParams, exParams, new MiDuoTradeCallback(""));
|
} else {
|
AlibcDetailPage basePage = new AlibcDetailPage(goodsId);
|
AlibcTrade.show(GoodsBrowserActivity.this, basePage, alibcShowParams, alibcTaokeParams, exParams, new MiDuoTradeCallback(""));
|
}
|
|
JumpTaoBaoDialog.Builder builder = new JumpTaoBaoDialog.Builder(GoodsBrowserActivity.this);
|
dialog = builder.create();
|
dialog.show();
|
isClick = 0;
|
}
|
|
private void collection() {
|
String uid = getSharedPreferences("user", MODE_PRIVATE).getString("uid", "0");
|
ShoppingApi.collectionGoods(GoodsBrowserActivity.this, goodsId, uid, isCollect ? "2" : "1", new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
isCollect = !isCollect;
|
if (isCollect) {
|
tv_like_state.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_like_goods_detail_light, 0, 0);
|
tv_like_state.setText("已收藏");
|
} else {
|
tv_like_state.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_like_goods_detail, 0, 0);
|
tv_like_state.setText("收藏");
|
}
|
SingleToast.showToast(GoodsBrowserActivity.this, jsonObject.optString("data"));
|
} else {
|
if (!StringUtils.isEmpty(jsonObject.optString("msg")))
|
SingleToast.showToast(GoodsBrowserActivity.this, jsonObject.optString("msg"));
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
tv_like_state.setEnabled(true);
|
}
|
});
|
}
|
|
private boolean isFirstLogin = true;
|
|
private void tbLogin() {
|
final AlibcLogin alibcLogin = AlibcLogin.getInstance();
|
if (!alibcLogin.isLogin()) {
|
TaobaoLoginHintDialog.Builder builder = new TaobaoLoginHintDialog.Builder(GoodsBrowserActivity.this);
|
builder.setMessage("购买商品、领取优惠券、查看订单和购物车等,需授权登录淘宝号。").setPositiveButtonColor(2).setNegativeButtonColor(2).setNegativeButton("取消", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialogInterface, int i) {
|
dialogInterface.dismiss();
|
}
|
}).setPositiveButton("确认", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(final DialogInterface dialogInterface, int i) {
|
alibcLogin.showLogin(new AlibcLoginCallback() {
|
@Override
|
public void onSuccess(int i) {
|
Toast.makeText(GoodsBrowserActivity.this, "登录成功",
|
Toast.LENGTH_LONG).show();
|
SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE);
|
boolean isLogin = sp.getBoolean("isLogin", false);
|
String uid = sp.getString("uid", "");
|
if (isLogin) {
|
bindInfo(AlibcLogin.getInstance().getSession().openId, AlibcLogin.getInstance().getSession().nick, AlibcLogin.getInstance().getSession().avatarUrl, uid);
|
}
|
if (isClick == 1) {
|
getTBLinkInfo(getSharedPreferences("user", MODE_PRIVATE).getString("uid", ""));
|
}
|
dialogInterface.dismiss();
|
}
|
|
@Override
|
public void onFailure(int code, String msg) {
|
if (isFirstLogin) {
|
InitAlibcSdk.init();
|
isFirstLogin = false;
|
}
|
Toast.makeText(GoodsBrowserActivity.this, "登录失败,请稍候再试",
|
Toast.LENGTH_LONG).show();
|
isClick = 0;
|
dialogInterface.dismiss();
|
}
|
});
|
}
|
}).create().show();
|
}
|
}
|
|
private void bindInfo(String openId, String nickName, String portrait, String uid) {
|
ShoppingApi.bindTaoBao(GoodsBrowserActivity.this, uid, openId, nickName, portrait, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE);
|
SharedPreferences.Editor editor = sp.edit();
|
editor.putBoolean("isTBBind", true);
|
editor.commit();
|
SingleToast.showToast(GoodsBrowserActivity.this, "绑定成功!");
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
SingleToast.showToast(GoodsBrowserActivity.this, "请求失败");
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
}
|
});
|
}
|
|
class ImageAdapter extends PagerAdapter {
|
|
private List<String> cList;
|
|
private Context mContext;
|
|
public ImageAdapter(List<String> list, Context context) {
|
super();
|
this.cList = list;
|
this.mContext = context;
|
}
|
|
@Override
|
public int getCount() {
|
return cList == null ? 0 : cList.size();
|
}
|
|
@Override
|
public Object instantiateItem(ViewGroup container, final int position) {
|
View view = LayoutInflater.from(GoodsBrowserActivity.this)
|
.inflate(R.layout.item_goods_detail_top_img, null);
|
ImageView iv = (ImageView) view.findViewById(R.id.iv_goods_img);
|
Glide.with(mContext).load(cList.get(position)).error(R.drawable.ic_goods_default).placeholder(R.drawable.ic_goods_default).into(iv);
|
ImageLoader.getInstance().displayImage(cList.get(position), iv, options);
|
|
container.addView(view);
|
return view;
|
}
|
|
@Override
|
public void destroyItem(ViewGroup container, int position, Object object) {
|
container.removeView((View) object);
|
}
|
|
@Override
|
public boolean isViewFromObject(View view, Object object) {
|
return view == object;
|
}
|
|
@Override
|
public CharSequence getPageTitle(int position) {
|
return cList.get(position) + "";
|
}
|
}
|
|
/**
|
* 请求状态 0 数据正常展示;1 返回数据为空;2 网络请求失败;3 没有连接网络
|
*
|
* @param state
|
*/
|
private void requestState(int state) {
|
fl_content.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);
|
}
|
}
|