package com.tejia.lijin.app.ui.dialog;
|
|
import android.app.Activity;
|
import android.app.Dialog;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.graphics.Color;
|
import android.graphics.drawable.AnimationDrawable;
|
import android.graphics.drawable.GradientDrawable;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.widget.FrameLayout;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
|
import com.androidquery.AQuery;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.ui.invite.ShareBrowserActivity;
|
import com.tejia.lijin.app.util.Constant;
|
import com.tejia.lijin.app.util.ad.AdUtil;
|
import com.tejia.lijin.app.util.ad.ExpressAdContainer;
|
import com.tejia.lijin.app.util.ad.ExpressAdManager;
|
import com.wpc.library.util.SystemCommon;
|
import com.wpc.library.util.common.DimenUtils;
|
import com.wpc.library.widget.RatioLayout;
|
import com.wpc.library.widget.ResizableImageView;
|
|
import java.util.List;
|
|
/**
|
* Created by weikou2015 on 2017/2/28.
|
*/
|
|
public class GoodsDetailJumpLoaingDialog extends Dialog {
|
public GoodsDetailJumpLoaingDialog(Context context) {
|
super(context);
|
this.setCancelable(false);
|
}
|
|
|
public GoodsDetailJumpLoaingDialog(Context context, int theme) {
|
super(context, theme);
|
this.setCancelable(false);
|
}
|
|
|
public static class Builder {
|
private Activity context;
|
boolean hasAd;
|
String adPid;
|
String adType;
|
String notifyDesc;
|
String notifyUrl;
|
int platform;
|
int time = 3;
|
Runnable runnable = null;
|
IDialogClose dialogCloseListener;
|
|
public Builder(Activity context) {
|
this.context = context;
|
}
|
|
public Builder setNotify(String desc, String url) {
|
this.notifyDesc = desc;
|
this.notifyUrl = url;
|
return this;
|
}
|
|
public Builder setAdInfo(String type, String pid) {
|
this.adType = type;
|
this.adPid = pid;
|
return this;
|
}
|
|
public Builder setHasAd(boolean hasAd) {
|
this.hasAd = hasAd;
|
return this;
|
}
|
|
public Builder setPlatform(int platform) {
|
this.platform = platform;
|
return this;
|
}
|
|
public Builder setOnCloseListener(IDialogClose dialogCloseListener) {
|
this.dialogCloseListener = dialogCloseListener;
|
return this;
|
}
|
|
private void initView(AQuery mAuery) {
|
if (!hasAd) {
|
mAuery.id(R.id.ll_top).visibility(View.GONE);
|
mAuery.id(R.id.ll_notify).visibility(View.GONE);
|
mAuery.id(R.id.ll_loading).visibility(View.VISIBLE);
|
mAuery.id(R.id.fl_ad).visibility(View.GONE);
|
mAuery.id(R.id.tv_time).text("正在跳转至");
|
mAuery.id(R.id.ll_content).background(R.drawable.shape_dialog_goods_detail_jump_loading_top_common);
|
((RatioLayout) mAuery.id(R.id.rl_container).getView()).setRatio(0.6f);
|
} else {
|
mAuery.id(R.id.ll_top).visibility(View.VISIBLE);
|
mAuery.id(R.id.ll_notify).visibility(View.VISIBLE);
|
mAuery.id(R.id.ll_loading).visibility(View.GONE);
|
mAuery.id(R.id.fl_ad).visibility(View.VISIBLE);
|
mAuery.id(R.id.tv_time).text("");
|
}
|
}
|
|
public GoodsDetailJumpLoaingDialog create() {
|
LayoutInflater inflater = (LayoutInflater) context
|
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
final GoodsDetailJumpLoaingDialog dialog = new GoodsDetailJumpLoaingDialog(context, R.style.Dialog);
|
View layout = inflater.inflate(R.layout.dialog_goods_detail_jump_loading, null);
|
AQuery mAquery = new AQuery(layout);
|
initView(mAquery);
|
switch (platform) {
|
case Constant.GOODS_TYPE_TB:
|
mAquery.id(R.id.iv_source_type).image(R.drawable.icon_goods_detail_jump_loading_taobao);
|
break;
|
case Constant.GOODS_TYPE_JD:
|
mAquery.id(R.id.iv_source_type).image(R.drawable.icon_goods_detail_jump_loading_jd);
|
break;
|
case Constant.GOODS_TYPE_PDD:
|
mAquery.id(R.id.iv_source_type).image(R.drawable.icon_goods_detail_jump_loading_pdd);
|
break;
|
case Constant.GOODS_TYPE_VIP:
|
mAquery.id(R.id.iv_source_type).image(R.drawable.icon_goods_detail_jump_loading_vipshop);
|
break;
|
case Constant.GOODS_TYPE_SUNING:
|
mAquery.id(R.id.iv_source_type).image(R.drawable.icon_goods_detail_jump_loading_suning);
|
break;
|
}
|
|
//非VIP
|
if (hasAd) {
|
final TextView tv_time = mAquery.id(R.id.tv_time).getTextView();
|
//填充通知信息
|
mAquery.id(R.id.ll_notify).clicked(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
context.startActivity(new Intent(context, ShareBrowserActivity.class).putExtra("url", notifyUrl));
|
}
|
});
|
|
GradientDrawable drawable = new GradientDrawable();
|
drawable.setColor(Color.WHITE);
|
drawable.setCornerRadius(DimenUtils.dip2px(context, 30));
|
((LinearLayout) mAquery.id(R.id.ll_notify).getView()).setBackground(drawable);
|
|
|
runnable = new Runnable() {
|
@Override
|
public void run() {
|
if (time > 0) {
|
time--;
|
tv_time.setText(String.format("%s秒后自动跳转", time));
|
tv_time.postDelayed(runnable, 1000);
|
} else {
|
if (dialog.isShowing())
|
dialog.dismiss();
|
if (dialogCloseListener != null)
|
dialogCloseListener.onClose(true);
|
}
|
}
|
};
|
tv_time.setText(String.format("%s秒后自动跳转", time));
|
tv_time.postDelayed(runnable, 1000);
|
}
|
|
|
dialog.addContentView(layout, new FrameLayout.LayoutParams(
|
FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT));
|
dialog.setContentView(layout);
|
|
android.view.WindowManager.LayoutParams params = dialog.getWindow()
|
.getAttributes();
|
params.width = (int) ((SystemCommon.getScreenWidth(context) * 4) / 5);
|
params.height = android.view.WindowManager.LayoutParams.WRAP_CONTENT;
|
dialog.getWindow().setAttributes(params);
|
dialog.setCanceledOnTouchOutside(false);
|
return dialog;
|
}
|
|
|
public static interface IDialogClose {
|
public void onClose(boolean auto);
|
}
|
|
|
}
|
|
|
}
|