package com.yeshi.ec.library_baiducpu.entity;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.net.Uri;
|
import android.util.AttributeSet;
|
import android.util.Log;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.RelativeLayout;
|
import android.widget.TextView;
|
|
import com.androidquery.AQuery;
|
import com.baidu.mobads.nativecpu.IBasicCPUData;
|
import com.bumptech.glide.Glide;
|
import com.google.gson.Gson;
|
import com.lcjian.library.util.glide.GlideCircleTransform;
|
import com.yeshi.ec.library_baiducpu.R;
|
|
import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
|
|
public class NativeSmallVideoCPUView extends RelativeLayout {
|
|
private final String TAG="NativeSmallVideoCPUView";
|
|
private final static long TIME_SECOND_YEAR = 365 * 24 * 60 * 60;
|
private final static long TIME_SECOND_MONTH = 30 * 24 * 60 * 60;
|
private final static long TIME_SECOND_DAY = 24 * 60 * 60;
|
private final static long TIME_SECOND_HOUR = 60 * 60;
|
private final static long TIME_SECOND_MINUTE = 60;
|
|
private View mContainer;
|
private ImageView iv_video_pciture;
|
private LinearLayout ll_author_info, ll_ad_info;
|
private TextView tv_title;
|
private ImageView iv_portrait;
|
private TextView tv_play_count;
|
|
|
private String mType; // news,image,video,ad
|
private String mTitle;
|
|
public NativeSmallVideoCPUView(Context context) {
|
this(context, null);
|
}
|
|
public NativeSmallVideoCPUView(Context context, AttributeSet attrs) {
|
this(context, attrs, 0);
|
}
|
|
public NativeSmallVideoCPUView(Context context, AttributeSet attrs, int defStyleAttr) {
|
super(context, attrs, defStyleAttr);
|
initView(context, attrs);
|
}
|
|
private void initView(Context context, AttributeSet attrs) {
|
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
mContainer = inflater.inflate(R.layout.item_baidu_small_video, this, true);
|
iv_video_pciture = mContainer.findViewById(R.id.iv_video_pciture);
|
ll_author_info = mContainer.findViewById(R.id.ll_author_info);
|
ll_ad_info = mContainer.findViewById(R.id.ll_ad_info);
|
tv_title = mContainer.findViewById(R.id.tv_title);
|
iv_portrait = mContainer.findViewById(R.id.iv_portrait);
|
tv_play_count = mContainer.findViewById(R.id.tv_play_count);
|
}
|
|
public void setItemData(final IBasicCPUData data, AQuery aq) {
|
if (data != null) {
|
mType = data.getType(); // news,image,video,ad
|
mTitle = data.getTitle();
|
//展示广告图片
|
|
Log.i(TAG,"logo:"+data.getBaiduLogoUrl());
|
Log.i(TAG,"thumbUrl:"+data.getThumbUrl());
|
Log.i(TAG,"getImageUrls:"+new Gson().toJson(data.getImageUrls()));
|
Log.i(TAG,"getSmallImageUrls:"+new Gson().toJson(data.getSmallImageUrls()));
|
Log.i(TAG,"getExtra:"+new Gson().toJson(data.getExtra()));
|
|
tv_title.setText(data.getTitle());
|
if ("ad".equalsIgnoreCase(mType)) {
|
ll_ad_info.setVisibility(VISIBLE);
|
ll_author_info.setVisibility(GONE);
|
ll_ad_info.setOnClickListener(new OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
// show app privacy
|
startActivityForUrl(data.getAppPrivacyUrl());
|
}
|
});
|
ll_ad_info.setOnClickListener(new OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
// show app permission list
|
startActivityForUrl(data.getAppPermissionUrl());
|
}
|
});
|
Glide.with(getContext()).load(data.getImageUrls().get(0)).transition(withCrossFade()).into(iv_video_pciture);
|
} else {
|
|
ll_ad_info.setVisibility(GONE);
|
ll_author_info.setVisibility(VISIBLE);
|
if ("smallvideo".equalsIgnoreCase(mType)) {
|
Glide.with(getContext()).load(data.getVUrl()).transition(withCrossFade()).into(iv_video_pciture);
|
Glide.with(getContext()).load(data.getIconUrl()).transform(new GlideCircleTransform(getContext())).transition(withCrossFade()).into(iv_portrait);
|
tv_play_count.setText(getFormatPlayCounts(data.getPlayCounts()));
|
}
|
}
|
}
|
}
|
|
|
private String getFormatPlayCounts(int playCounts) {
|
StringBuilder sb = new StringBuilder("");
|
if (playCounts < 0) {
|
sb.append(0);
|
} else if (playCounts < 10000) {
|
sb.append(playCounts);
|
} else {
|
sb.append(playCounts / 10000);
|
int remain = playCounts % 10000;
|
if (remain > 0) {
|
sb.append(".").append(remain / 1000);
|
}
|
sb.append("万");
|
}
|
sb.append("次播放");
|
return sb.toString();
|
}
|
|
private void startActivityForUrl(String url) {
|
try {
|
Intent intent = new Intent();
|
intent.setData(Uri.parse(url));
|
intent.setAction(Intent.ACTION_VIEW);
|
getContext().startActivity(intent);
|
} catch (Throwable tr) {
|
Log.e("NativeCPUView", "Show url error: " + tr.getMessage());
|
}
|
}
|
}
|