package com.weikou.beibeivideo.ui.dialog;
|
|
import android.app.Activity;
|
import android.app.Dialog;
|
import android.content.Context;
|
import android.graphics.Color;
|
import android.graphics.drawable.GradientDrawable;
|
import android.text.SpannableString;
|
import android.text.Spanned;
|
import android.text.style.AbsoluteSizeSpan;
|
import android.view.Gravity;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.WindowManager;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.androidquery.AQuery;
|
import com.weikou.beibeivideo.R;
|
import com.weikou.beibeivideo.entity.vo.PPTVWatchVIPVideoActivityWay;
|
import com.weikou.beibeivideo.util.DimenUtils;
|
import com.weikou.beibeivideo.util.JumpActivityUtil;
|
import com.weikou.beibeivideo.util.downutil.StringUtils;
|
|
import java.util.List;
|
|
/**
|
* vip弹框
|
*/
|
public class VIPNewDialog extends Dialog {
|
|
private static String TAG = VIPNewDialog.class.getName();
|
|
public VIPNewDialog(Context context) {
|
super(context);
|
this.setCancelable(false);
|
}
|
|
public VIPNewDialog(Context context, int theme) {
|
super(context, theme);
|
this.setCancelable(false);
|
}
|
|
|
public static class Builder {
|
|
|
private Activity context;
|
|
public Builder(Activity context) {
|
this.context = context;
|
}
|
|
private View.OnClickListener closeListener;
|
|
private ItemClickListener itemClickListener;
|
|
private List<PPTVWatchVIPVideoActivityWay> activityList;
|
|
private String videoName;
|
|
|
public Builder setCloseListener(View.OnClickListener listener) {
|
this.closeListener = listener;
|
return this;
|
}
|
|
|
public Builder setItemClickListener(ItemClickListener listener) {
|
this.itemClickListener = listener;
|
return this;
|
}
|
|
public Builder setActivityData(List<PPTVWatchVIPVideoActivityWay> activityList, String videoName) {
|
this.activityList = activityList;
|
this.videoName = videoName;
|
return this;
|
}
|
|
|
public VIPNewDialog create() {
|
|
LayoutInflater inflater = (LayoutInflater) context
|
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
final VIPNewDialog dialog = new VIPNewDialog(context, R.style.Dialog);
|
dialog.setCanceledOnTouchOutside(true);
|
final View layout = inflater.inflate(R.layout.dialog_vip_new, null);
|
ImageView iv_close = layout.findViewById(R.id.iv_close);
|
TextView tv_name = layout.findViewById(R.id.tv_name);
|
SpannableString spannableString = new SpannableString("片名" + videoName);
|
spannableString.setSpan(new AbsoluteSizeSpan(com.lcjian.library.util.common.DimenUtils.spToPixels(12, context)), 0, 2, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
tv_name.setText(spannableString);
|
LinearLayout ll_container = layout.findViewById(R.id.ll_container);
|
|
for (PPTVWatchVIPVideoActivityWay vo : activityList) {
|
addItem(ll_container, vo, inflater, context);
|
}
|
|
iv_close.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (closeListener != null)
|
closeListener.onClick(v);
|
}
|
});
|
|
|
dialog.setContentView(layout);
|
|
WindowManager.LayoutParams params = dialog.getWindow()
|
.getAttributes();
|
params.width = WindowManager.LayoutParams.MATCH_PARENT;
|
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
|
dialog.getWindow().setAttributes(params);
|
dialog.getWindow().setGravity(Gravity.BOTTOM);
|
return dialog;
|
}
|
|
private void addItem(LinearLayout ll_container, PPTVWatchVIPVideoActivityWay vo, LayoutInflater inflater, Activity context) {
|
View view = inflater.inflate(R.layout.dialog_vip_new_item, null);
|
AQuery mAquery = new AQuery(view);
|
mAquery.id(R.id.tv_title).text(vo.getTitle());
|
mAquery.id(R.id.tv_subtitle).text(vo.getSubTitle());
|
String price = "";
|
if (!StringUtils.isNullOrEmpty(vo.getStartPrice())) {
|
price += "¥" + vo.getStartPrice();
|
}
|
if (!StringUtils.isNullOrEmpty(vo.getEndPrice())) {
|
price += "~¥" + vo.getEndPrice();
|
}
|
|
if (price.length() > 0) {
|
SpannableString priceString = new SpannableString(price);
|
for (int i = 0; i < price.length(); i++) {
|
if ((price.charAt(i) + "").equals("¥")) {
|
priceString.setSpan(new AbsoluteSizeSpan(com.lcjian.library.util.common.DimenUtils.spToPixels(10, context)), i, i + 1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
}
|
}
|
mAquery.id(R.id.tv_price).text(priceString);
|
}
|
|
mAquery.id(R.id.tv_title).textColor(Color.parseColor(vo.getTextColor()));
|
mAquery.id(R.id.tv_subtitle).textColor(Color.parseColor(vo.getTextColor()));
|
mAquery.id(R.id.tv_price).textColor(Color.parseColor(vo.getTextColor()));
|
mAquery.id(R.id.iv_icon).image(vo.getIcon());
|
|
|
GradientDrawable gd = new GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT,
|
new int[]{Color.parseColor(vo.getStartBgColor()), Color.parseColor(vo.getEndBgColor())});
|
gd.setCornerRadius(DimenUtils.dip2px(context, 6));
|
view.setBackground(gd);
|
|
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, DimenUtils.dip2px(context, 60));
|
lp.setMargins(0, 0, 0, DimenUtils.dip2px(context, 10));
|
view.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (itemClickListener != null)
|
itemClickListener.onClick(vo);
|
}
|
});
|
ll_container.addView(view, lp);
|
}
|
|
|
}
|
|
public interface MeasureCallBack {
|
public void onMeasure(int height);
|
}
|
|
|
public interface ItemClickListener {
|
public void onClick(PPTVWatchVIPVideoActivityWay way);
|
}
|
}
|