package com.hanju.video.app.ui.main;
|
|
import android.os.Bundle;
|
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
|
import android.view.View;
|
import android.widget.ListView;
|
import android.widget.ProgressBar;
|
|
import com.androidquery.AQuery;
|
import com.google.gson.FieldNamingPolicy;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.hanju.video.app.entity.video.VideoInfo;
|
import com.hanju.video.app.ui.recommend.DiscoverVideosAdapter;
|
import com.hanju.video.app.util.JsonUtil;
|
import com.hanju.video.app.util.common.AppConfigUtil;
|
import com.hanju.video.app.util.downutils.StringUtils;
|
import com.hanju.lib.library.util.RefreshLayout;
|
import com.hanju.lib.library.util.SingleToast;
|
import com.hanju.video.app.util.ui.StatusBarUtil;
|
import com.qq.e.ads.cfg.VideoOption;
|
import com.qq.e.ads.nativ.ADSize;
|
import com.qq.e.ads.nativ.NativeExpressAD;
|
import com.qq.e.ads.nativ.NativeExpressADView;
|
import com.qq.e.comm.util.AdError;
|
import com.umeng.analytics.MobclickAgent;
|
import com.hanju.video.app.util.http.BasicTextHttpResponseHandler;
|
import com.hanju.video.app.util.http.HttpApiUtil;
|
import com.hanju.video.app.ui.MyRetainViewFragment;
|
import com.hanju.video.app.ui.category.bean.UniqueBean;
|
import com.hanju.video.app.util.HanJuConstant;
|
import com.hanju.video.app.R;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 专题碎片
|
*/
|
public class DiscoverNowFragment extends MyRetainViewFragment {
|
private List<VideoInfo> uniques = new ArrayList<>();
|
private int mCurrentPage = 1;
|
private ListView uniqueView;
|
private RefreshLayout rl_unique;
|
private DiscoverVideosAdapter uniqueAdapter;
|
private AQuery mAQuery;
|
|
|
public DiscoverNowFragment() {
|
super(DiscoverNowFragment.class.getName());
|
}
|
|
@Override
|
public int getContentResource() {
|
return R.layout.category_unique;
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
mAQuery = new AQuery(contentView);
|
mAQuery.id(R.id.v_status_bar).height(StatusBarUtil.getStatusBarHeight(getActivity()),false);
|
rl_unique = contentView.findViewById(R.id.rl_unique_ptrlv);
|
uniqueView = contentView.findViewById(R.id.unique_ptrlv);
|
uniqueView.addHeaderView(new View(uniqueView.getContext()));
|
uniqueAdapter = new DiscoverVideosAdapter(uniques, getContext());
|
uniqueView.setAdapter(uniqueAdapter);
|
ProgressBar pb = new ProgressBar(uniqueView.getContext());
|
rl_unique.setFooter(pb);
|
rl_unique.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
mCurrentPage = 1;
|
getUniques();
|
|
}
|
});
|
rl_unique.setOnLoadListener(new RefreshLayout.OnLoadListener() {
|
@Override
|
public void onLoad() {
|
mCurrentPage++;
|
getUniques();
|
}
|
});
|
getUniques();
|
rl_unique.setRefreshing(true);
|
}
|
|
/**
|
* 获取专题页数据
|
*/
|
private void getUniques() {
|
HttpApiUtil.getSearchSpecialVideos(uniqueView.getContext(), "2#hanju-found",
|
mCurrentPage,
|
new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
|
|
JSONObject data = jsonObject.getJSONObject("Data");
|
List<VideoInfo> videoInfos = JsonUtil.videoGson.fromJson(
|
data.getJSONArray("list").toString(),
|
new TypeToken<List<VideoInfo>>() {
|
}.getType());
|
if (mCurrentPage == 1) {
|
uniques.clear();
|
}
|
if (videoInfos.size() > 0) {
|
uniques.addAll(videoInfos);
|
uniqueAdapter.notifyDataSetChanged();
|
} else {
|
mCurrentPage--;
|
SingleToast.showToast(uniqueView.getContext(), "没有更多了");
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers,
|
byte[] responseBytes, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseBytes, throwable);
|
}
|
|
@Override
|
public void onFinish() {
|
rl_unique.setRefreshing(false);
|
rl_unique.setLoading(false);
|
}
|
});
|
}
|
|
List<UniqueBean> adList = new ArrayList<>();//广告列表
|
|
// 1.加载广告,先设置加载上下文环境和条件
|
private void refreshAd() {
|
String appId = AppConfigUtil.getGDTAppId(getContext());
|
if (StringUtils.isNullOrEmpty(appId)) {
|
return;
|
}
|
NativeExpressAD nativeExpressAD = new NativeExpressAD(uniqueView.getContext(), new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT),
|
appId, HanJuConstant.GDT_DISCOVER_NATIVE, new NativeExpressAD.NativeExpressADListener() {
|
@Override
|
public void onADLoaded(List<NativeExpressADView> list) {
|
adList.clear();
|
for (int i = 0; i < list.size(); i++) {
|
UniqueBean info = new UniqueBean();
|
info.setAdView(list.get(i));
|
adList.add(info);
|
}
|
|
uniqueView.post(new Runnable() {
|
@Override
|
public void run() {
|
getUniques();
|
}
|
});
|
// rl_guess_like.setRefreshing(false);
|
}
|
|
@Override
|
public void onRenderFail(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onRenderSuccess(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onADExposure(NativeExpressADView nativeExpressADView) {
|
}
|
|
@Override
|
public void onADClicked(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onADClosed(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onADLeftApplication(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onADOpenOverlay(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onADCloseOverlay(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onNoAD(AdError adError) {
|
// getUniques();
|
rl_unique.post(new Runnable() {
|
@Override
|
public void run() {
|
getUniques();
|
}
|
});
|
}
|
}); // 传入Activity
|
// 注意:如果您在联盟平台上新建原生模板广告位时,选择了支持视频,那么可以进行个性化设置(可选)
|
nativeExpressAD.setVideoOption(new VideoOption.Builder()
|
.setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI) // WIFI 环境下可以自动播放视频
|
.setAutoPlayMuted(true) // 自动播放时为静音
|
.build()); //
|
nativeExpressAD.loadAD(5);
|
}
|
|
|
}
|