package com.weikou.beibeivideo.ui.recommend;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.os.Bundle;
|
import android.provider.Settings;
|
import android.support.v4.app.Fragment;
|
import android.support.v4.view.PagerAdapter;
|
import android.support.v4.widget.SwipeRefreshLayout;
|
import android.util.Log;
|
import android.view.LayoutInflater;
|
import android.view.MotionEvent;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.WindowManager;
|
import android.widget.AbsListView;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
import android.widget.ListView;
|
import android.widget.TextView;
|
|
import com.bumptech.glide.Glide;
|
import com.google.gson.FieldNamingPolicy;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.lcjian.library.RetainViewFragment;
|
import com.lcjian.library.content.ConnectivityChangeHelper;
|
import com.lcjian.library.content.ConnectivityChangeHelper.OnConnectivityChangeListener;
|
import com.lcjian.library.util.SingleToast;
|
import com.lcjian.library.util.SystemCommon;
|
import com.lcjian.library.util.cache.DiskLruCache;
|
import com.lcjian.library.util.common.StorageUtils;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.lcjian.library.widget.RatioLayout;
|
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
|
import com.qq.e.ads.cfg.DownAPPConfirmPolicy;
|
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.viewpagerindicator.LinePageIndicator;
|
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
|
import com.weikou.beibeivideo.BeibeiVideoAPI;
|
import com.weikou.beibeivideo.entity.HomeAd;
|
import com.weikou.beibeivideo.entity.HomeType;
|
import com.weikou.beibeivideo.entity.HomeTypeItem;
|
import com.weikou.beibeivideo.entity.HomeVideo;
|
import com.weikou.beibeivideo.entity.VideoInfo;
|
import com.weikou.beibeivideo.entity.VideoType;
|
import com.weikou.beibeivideo.test.MyViewPager;
|
import com.weikou.beibeivideo.ui.category.bean.HotStar;
|
import com.weikou.beibeivideo.ui.mine.BrowserActivity;
|
import com.weikou.beibeivideo.util.BeibeiConstant;
|
import com.weikou.wpc.superad.banner.Superbanner;
|
import com.yeshi.buwanshequ.R;
|
import com.ysh.wpc.appupdate.GoReview;
|
import com.ysh.wpc.appupdate.service.DownLoadFileService;
|
|
import org.apache.http.Header;
|
import org.json.JSONArray;
|
import org.json.JSONException;
|
import org.json.JSONObject;
|
|
import java.io.File;
|
import java.io.IOException;
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import de.greenrobot.event.EventBus;
|
|
public class RecommendFragment extends RetainViewFragment implements
|
OnClickListener {
|
|
// private TextView tv_go_search;
|
|
private View recommend_top;
|
|
private MyViewPager vp_recommend;
|
|
// private VerticalViewPager vp_ad;
|
|
private LinePageIndicator indicator_recommend;
|
|
private SwipeRefreshLayout rl_recommend;
|
|
private ListView lv_recommend;
|
|
private RecommendAdapter mRecommendAdapter;
|
|
private List<HomeType> mHomeTypes;
|
|
private DiskLruCache cache;
|
|
private ConnectivityChangeHelper mChangeHelper;
|
|
private TextView tv_no_network;
|
|
private TextView tv_notice;
|
|
private VideoType type;
|
|
private int position;
|
|
private ImageView iv_right_ad;
|
|
private RatioLayout rl_recommend_top;
|
|
private boolean isBottom = false;
|
|
boolean isReview;
|
|
public static Fragment newInstance(VideoType type, String position) {
|
if (Integer.parseInt(position) < 2) {
|
RecommendFragment fragment = new RecommendFragment();
|
Bundle bundle = new Bundle();
|
bundle.putSerializable("videotype", type);
|
bundle.putInt("position", Integer.parseInt(position));
|
fragment.setArguments(bundle);
|
return fragment;
|
} else {
|
CategoryRecommendFragment fragment = new CategoryRecommendFragment();
|
Bundle bundle = new Bundle();
|
bundle.putSerializable("videotype", type);
|
bundle.putString("id", type.getId());
|
fragment.setArguments(bundle);
|
return fragment;
|
}
|
|
}
|
|
private Runnable mAutoScroller = new Runnable() {
|
|
@Override
|
public void run() {
|
PagerAdapter adapter = vp_recommend.getAdapter();
|
if (adapter != null && adapter.getCount() != 0) {
|
vp_recommend.setCurrentItem((vp_recommend.getCurrentItem() + 1)
|
% adapter.getCount(), true);
|
}
|
vp_recommend.postDelayed(this, 5000);
|
}
|
};
|
|
@Override
|
public void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
try {
|
cache = DiskLruCache.open(
|
new File(StorageUtils.getCacheDirectory(getContext())
|
.toString(), "http"), getVersionNum(getContext()),
|
1, 1024 * 1024);
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void onSaveInstanceState(Bundle outState) {
|
outState.putString("flash back", "show");
|
super.onSaveInstanceState(outState);
|
|
}
|
|
public static int getVersionNum(Context context) {
|
try {
|
PackageInfo pi = context.getPackageManager().getPackageInfo(
|
context.getPackageName(), 0);
|
return pi.versionCode;
|
} catch (NameNotFoundException e) {
|
e.printStackTrace();
|
return 1;
|
}
|
}
|
|
@Override
|
public int getContentResource() {
|
return R.layout.recommend_fragment;
|
}
|
|
private String getDay(long time) {
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
String date = format.format(new Date(time));
|
return date;
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
tv_no_network = (TextView) contentView.findViewById(R.id.tv_no_network);
|
tv_no_network.setOnClickListener(this);
|
// 公告
|
tv_notice = (TextView) contentView.findViewById(R.id.include_notice);
|
mChangeHelper = new ConnectivityChangeHelper(tv_no_network.getContext(),
|
new OnConnectivityChangeListener() {
|
@Override
|
public void onNetworkUnAvailable() {
|
if (!StringUtils.isBlank(content)) {
|
tv_notice.setVisibility(View.VISIBLE);
|
} else {
|
tv_notice.setVisibility(View.GONE);
|
}
|
tv_no_network.setVisibility(View.VISIBLE);
|
}
|
|
@Override
|
public void onWiFiAvailable() {
|
if (!StringUtils.isBlank(content)) {
|
tv_notice.setVisibility(View.VISIBLE);
|
} else {
|
tv_notice.setVisibility(View.GONE);
|
}
|
tv_no_network.setVisibility(View.GONE);
|
}
|
|
@Override
|
public void onMobileAvailable() {
|
if (!StringUtils.isBlank(content)) {
|
tv_notice.setVisibility(View.VISIBLE);
|
} else {
|
tv_notice.setVisibility(View.GONE);
|
}
|
tv_no_network.setVisibility(View.GONE);
|
}
|
});
|
|
int width = (int) SystemCommon.getScreenWidth(tv_no_network.getContext());
|
|
rl_recommend = (SwipeRefreshLayout) contentView.findViewById(R.id.rl_recommend);
|
lv_recommend = (ListView) contentView
|
.findViewById(R.id.lv_recommend);
|
rl_recommend.setClickable(false);
|
|
iv_right_ad = (ImageView) contentView.findViewById(R.id.iv_right_ad);
|
recommend_top = LayoutInflater.from(tv_no_network.getContext()).inflate(
|
R.layout.recommend_top, null);
|
rl_recommend_top = (RatioLayout) recommend_top.findViewById(R.id.rl_recommend_top);
|
|
FrameLayout fl_ad = (FrameLayout) recommend_top.findViewById(R.id.fl_ad);
|
// banner广告
|
WindowManager wm = (WindowManager) tv_no_network.getContext().getSystemService(
|
Context.WINDOW_SERVICE);
|
Superbanner.initBanner(getActivity(), "100011", fl_ad, (int) (wm
|
.getDefaultDisplay().getWidth() * (98 / 600f)));
|
|
vp_recommend = (MyViewPager) recommend_top
|
.findViewById(R.id.vp_recommend);
|
|
type = (VideoType) getArguments().getSerializable("videotype");
|
position = (Integer) getArguments().get("position");
|
|
vp_recommend.setOnTouchListener(new View.OnTouchListener() {
|
@Override
|
public boolean onTouch(View v, MotionEvent event) {
|
switch (event.getAction()) {
|
case MotionEvent.ACTION_MOVE:
|
rl_recommend.setEnabled(false);
|
break;
|
case MotionEvent.ACTION_UP:
|
case MotionEvent.ACTION_CANCEL:
|
rl_recommend.setEnabled(true);
|
break;
|
}
|
return false;
|
}
|
});
|
indicator_recommend = (LinePageIndicator) recommend_top
|
.findViewById(R.id.indicator_recommend);
|
isReview = GoReview.getGoReview(indicator_recommend.getContext(), BeibeiConstant.GO_REVIEW_KEY);
|
if (position == 0) {
|
vp_recommend.setAdapter(new RecommendTopAdapter(null, getActivity(), isReview));
|
} else {
|
vp_recommend.setAdapter(new RecommendTopAdapter(null, getActivity(), false));
|
}
|
indicator_recommend.setScreenWidth(width);
|
indicator_recommend.setSelectedColor(vp_recommend.getContext().getResources()
|
.getColor(R.color.yellow));
|
indicator_recommend.setUnselectedColor(0xbbADA9A7);
|
|
mHomeTypes = new ArrayList<HomeType>();
|
mRecommendAdapter = new RecommendAdapter(mHomeTypes, getActivity());
|
lv_recommend.addHeaderView(recommend_top);
|
lv_recommend.setAdapter(mRecommendAdapter);
|
rl_recommend.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
if (position == 0) {
|
getHotStars();
|
}
|
EventBus.getDefault().post(type);
|
rl_recommend.setRefreshing(false);
|
// vp_recommend.setCurrentItem(0, true);
|
getHomeAd();
|
getHomeType();
|
Log.i("mResult", "onCreate---setOnRefreshListener---loadAD1");
|
}
|
});
|
|
if (cache != null && position == 0) {
|
{
|
DiskLruCache.Snapshot snapshot = null;
|
try {
|
snapshot = cache.get(getKey("getHomeAd") + type.getId());
|
if (snapshot != null) {
|
List<HomeAd> adList = new ArrayList<HomeAd>();
|
String str = snapshot.getString(0);
|
try {
|
JSONArray array = new JSONArray(str);
|
HomeAd ad;
|
for (int i = 0; i < array.length(); i++) {
|
ad = new HomeAd();
|
ad.setId(array.optJSONObject(i).optString("Id"));
|
ad.setPicture(array.optJSONObject(i).optString(
|
"Picture"));
|
ad.setTitle(array.optJSONObject(i).optString(
|
"Title"));
|
ad.setClazz(array.optJSONObject(i).optString(
|
"Clazz"));
|
ad.setParams(array.optJSONObject(i).optString(
|
"Params"));
|
ad.setLinkType(Integer
|
.parseInt(array.optJSONObject(i)
|
.optString("LinkType")));
|
VideoInfo videoInfo = new VideoInfo();
|
videoInfo
|
.setId(array.optJSONObject(i)
|
.optJSONObject("Video")
|
.optString("Id"));
|
videoInfo.setShare(array.optJSONObject(i)
|
.optJSONObject("Video")
|
.optString("Share"));
|
videoInfo.setThirdType(array.optJSONObject(i)
|
.optJSONObject("Video")
|
.optString("ThirdType"));
|
ad.setVideo(videoInfo);
|
adList.add(ad);
|
|
}
|
if (adList != null && adList.size() > 0) {
|
vp_recommend
|
.setAdapter(new RecommendTopAdapter(
|
adList, getActivity(), isReview));
|
}
|
} catch (JSONException e) {
|
e.printStackTrace();
|
}
|
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
if (snapshot != null) {
|
snapshot.close();
|
}
|
}
|
}
|
{
|
DiskLruCache.Snapshot snapshot = null;
|
try {
|
snapshot = cache.get(getKey("getHomeType") + type.getId());
|
if (snapshot != null) {
|
Gson gson = new GsonBuilder().setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE).create();
|
List<HomeType> homeTypes = gson.fromJson(
|
snapshot.getString(0),
|
new TypeToken<List<HomeType>>() {
|
}.getType());
|
mHomeTypes.clear();
|
if (homeTypes != null) {
|
mHomeTypes.addAll(homeTypes);
|
mRecommendAdapter.notifyDataSetChanged();
|
}
|
}
|
} catch (IOException e) {
|
e.printStackTrace();
|
} finally {
|
if (snapshot != null) {
|
snapshot.close();
|
}
|
}
|
}
|
}
|
lv_recommend.postDelayed(new Runnable() {
|
|
@Override
|
public void run() {
|
if (getActivity() != null) {
|
vp_recommend.setCurrentItem(0, true);
|
rl_recommend.setRefreshing(true);
|
getHomeAd();
|
getHomeType();
|
Log.i("mResult", "onCreate---postDelayed---loadAD1");
|
if (position == 0)
|
getHotStars();
|
}
|
}
|
}, 500);
|
getNotice();
|
|
lv_recommend.setOnScrollListener(new AbsListView.OnScrollListener() {
|
@Override
|
public void onScrollStateChanged(AbsListView view, int scrollState) {
|
|
}
|
|
@Override
|
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
|
if (mHomeTypes.size() > 0 && (firstVisibleItem + visibleItemCount) < totalItemCount) {
|
isBottom = false;
|
}
|
if (mHomeTypes.size() > 0 && !isBottom && (firstVisibleItem + visibleItemCount) >= totalItemCount) {
|
SingleToast.showToast(indicator_recommend.getContext(), "没有更多了");
|
isBottom = true;
|
}
|
}
|
});
|
|
if (position == 0) {
|
getAdRecommendRight();
|
}
|
}
|
|
|
private void getAdRecommendRight() {
|
BeibeiVideoAPI.getAdRecommendRight(indicator_recommend.getContext(), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
if (position == 0) {
|
String img = jsonObject.optJSONObject("Data").optString("img");
|
String mstatus = jsonObject.optJSONObject("Data").optString("mstatus");
|
final String linkType = jsonObject.optJSONObject("Data").optString("linkType");
|
final String webLink = jsonObject.optJSONObject("Data").optString("webLink");
|
final String downloadLink = jsonObject.optJSONObject("Data").optString("downloadLink");
|
Glide.with(indicator_recommend.getContext()).load("https://r1.ykimg.com/050E00005CE60A62859B5EC26201389E?x-oss-process=image/resize,w_290/interlace,1/quality,Q_80/sharpen,100").into(iv_right_ad);
|
if (mstatus.equalsIgnoreCase("0")) {
|
iv_right_ad.setVisibility(View.GONE);
|
} else {
|
iv_right_ad.setVisibility(View.VISIBLE);
|
}
|
|
iv_right_ad.setOnClickListener(new OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (linkType.equalsIgnoreCase("0")) {
|
Intent intent = new Intent(indicator_recommend.getContext(), BrowserActivity.class);
|
intent.putExtra("url", webLink);
|
startActivity(intent);
|
} else {
|
try {
|
Intent intent = new Intent(indicator_recommend.getContext(),
|
DownLoadFileService.class);
|
getContext().stopService(intent);
|
} catch (Exception e) {
|
}
|
try {
|
Bundle bundle = new Bundle();
|
bundle.putString("downloadurl",
|
downloadLink);
|
Intent intent = new Intent(indicator_recommend.getContext(),
|
DownLoadFileService.class);
|
intent.putExtras(bundle);
|
getContext().startService(intent);
|
} catch (Exception e) {
|
}
|
}
|
}
|
});
|
} else {
|
iv_right_ad.setVisibility(View.GONE);
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable
|
throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
}
|
});
|
}
|
|
private String getKey(String method) {
|
return new Md5FileNameGenerator().generate(method);
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
indicator_recommend.setViewPager(vp_recommend);
|
vp_recommend.postDelayed(mAutoScroller, 2000);
|
mChangeHelper.registerReceiver();
|
MobclickAgent.onPageStart("主页面—推荐");
|
// EventBus.getDefault().register(this);
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
vp_recommend.removeCallbacks(mAutoScroller);
|
// vp_ad.removeCallbacks(mAdAutoScroller);
|
mChangeHelper.unregisterReceiver();
|
MobclickAgent.onPageEnd("主页面—推荐");
|
// EventBus.getDefault().unregister(this);
|
}
|
|
private String content;
|
|
private void getNotice() {
|
SharedPreferences preferences = tv_no_network.getContext().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
BeibeiVideoAPI.getNotice(tv_no_network.getContext(), uid,
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
JSONObject obj = jsonObject.optJSONObject("Data");
|
content = obj.optString("Content");
|
// 0-不显示
|
// 1-显示
|
final String url = obj.optString("Url");
|
if (!StringUtils.isBlank(content)) {
|
tv_notice.setVisibility(View.VISIBLE);
|
tv_notice.setText(content);
|
if (!StringUtils.isBlank(url)) {
|
tv_notice
|
.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View v) {
|
startActivity(new Intent(
|
v.getContext(),
|
BrowserActivity.class)
|
.putExtra("url", url));
|
|
}
|
});
|
}
|
} else {
|
tv_notice.setVisibility(View.GONE);
|
}
|
|
}
|
}
|
});
|
}
|
|
private void getHomeAd() {
|
SharedPreferences preferences = tv_no_network.getContext().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
BeibeiVideoAPI.getHomeAd(tv_no_network.getContext(), uid, type.getId(),
|
new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
Gson gson = new GsonBuilder()
|
.setPrettyPrinting()
|
.setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
List<HomeAd> homeAds = gson.fromJson(jsonObject
|
.getJSONObject("Data").getJSONArray("data")
|
.toString(), new TypeToken<List<HomeAd>>() {
|
}.getType());
|
if (position == 1) {
|
rl_recommend_top.setRatio(0.56f);
|
vp_recommend.setAdapter(new RecommendTopAdapter(
|
homeAds, getActivity(), false));
|
} else {
|
vp_recommend.setAdapter(new RecommendTopAdapter(
|
homeAds, getActivity(), isReview));
|
}
|
|
if (position == 0) {
|
DiskLruCache.Editor editor = cache
|
.edit(getKey("getHomeAd") + type.getId());
|
editor.set(0, jsonObject.getJSONObject("Data")
|
.getJSONArray("data").toString());
|
editor.commit();
|
}
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
rl_recommend.setRefreshing(false);
|
}
|
});
|
}
|
|
/**
|
* 获取影片整体信息
|
*/
|
|
private void getHomeType() {
|
SharedPreferences preferences = tv_no_network.getContext().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
BeibeiVideoAPI.getHomeType(tv_no_network.getContext(), uid, type.getId(),
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
rl_recommend.setRefreshing(false);
|
if (jsonObject.getBoolean("IsPost")) {
|
if (mHomeTypes != null || mHomeTypes.size() > 0) {
|
mHomeTypes.clear();
|
}
|
Gson gson = new GsonBuilder().setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
List<HomeType> homeTypes = new ArrayList<HomeType>();
|
JSONArray array = jsonObject.getJSONObject("Data")
|
.getJSONArray("data");
|
for (int i = 0; i < array.length(); i++) {
|
HomeType type = new HomeType();
|
JSONObject obj = array.optJSONObject(i);
|
type.setColumns(obj.optInt("Columns"));
|
type.setId(obj.optString("Id"));
|
type.setName(obj.optString("Name"));
|
type.setHasMore(obj.optString("HasMore"));
|
type.setActivity(obj.optString("Activity"));
|
type.setParams(obj.optString("Params"));
|
type.setIcon(obj.optString("Icon"));
|
|
JSONArray homeArray = obj
|
.optJSONArray("HomeVideoList");
|
List<HomeVideo> homeList = new ArrayList<HomeVideo>();
|
if (homeArray != null && homeArray.length() > 0) {
|
for (int j = 0; j < homeArray.length(); j++) {
|
homeList.add(gson.fromJson(homeArray
|
.optJSONObject(j).toString(),
|
HomeVideo.class));
|
}
|
}
|
type.setHomeVideoList(homeList);
|
JSONArray itemArray = obj
|
.optJSONArray("ItemTypeList");
|
List<HomeTypeItem> itemList = new ArrayList<HomeTypeItem>();
|
if (itemArray != null && itemArray.length() > 0) {
|
for (int k = 0; k < itemArray.length(); k++) {
|
if (itemArray.optJSONObject(k) != null) {
|
itemList.add(gson.fromJson(
|
itemArray.optJSONObject(k)
|
.toString(),
|
HomeTypeItem.class));
|
}
|
}
|
}
|
type.setItemTypeList(itemList);
|
// if (type.getId().equalsIgnoreCase("1111")) {
|
// type.getHomeVideoList().clear();
|
// type.getHomeVideoList().addAll(liveList);
|
// }
|
homeTypes.add(type);
|
}
|
mHomeTypes.addAll(homeTypes);
|
|
mRecommendAdapter.notifyDataSetChanged();
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
try {
|
loadAD1();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers,
|
byte[] responseBytes, Throwable throwable) {
|
// TODO Auto-generated method stub
|
super.onFailure(statusCode, headers, responseBytes,
|
throwable);
|
}
|
});
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_no_network: {
|
Intent intent = new Intent(Settings.ACTION_SETTINGS);
|
startActivity(intent);
|
}
|
break;
|
default:
|
break;
|
}
|
}
|
|
/**
|
* 获取直播列表信息
|
*
|
* @param homeType
|
*/
|
private List<HomeVideo> liveList;
|
|
private void getLiveInfo() {
|
SharedPreferences preferences = tv_no_network.getContext().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
BeibeiVideoAPI.getLiveList(tv_no_network.getContext(), uid, "meinv_mm",
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.optBoolean("IsPost")) {
|
Gson gson = new GsonBuilder().setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
JSONArray homeArray = jsonObject.optJSONObject(
|
"Data").optJSONArray("data");
|
liveList = new ArrayList<>();
|
for (int j = 0; j < homeArray.length(); j++) {
|
liveList.add(gson.fromJson(homeArray
|
.optJSONObject(j).toString(),
|
HomeVideo.class));
|
}
|
for (int i = 0; i < mHomeTypes.size(); i++) {
|
if (mHomeTypes.get(i).getId().equalsIgnoreCase("1111")) {
|
mHomeTypes.get(i).getHomeVideoList().clear();
|
mHomeTypes.get(i).getHomeVideoList().addAll(liveList);
|
}
|
}
|
if (position <= 1) {
|
DiskLruCache.Editor editor = cache
|
.edit(getKey("getHomeType") + type.getId());
|
editor.set(0, gson.toJson(mHomeTypes));
|
editor.commit();
|
|
//插入明星列表
|
if (hotStars != null && hotStars.size() > 0) {
|
HomeType homeType = new HomeType();
|
homeType.setName("明星合辑");
|
homeType.setColumns(4);
|
homeType.setHotStars(hotStars);
|
homeType.setActivity("");
|
homeType.setBeizhu("");
|
homeType.setParams("");
|
homeType.setHasMore("true");
|
homeType.setId("9998");
|
mHomeTypes.add(homeType);
|
}
|
if (BeibeiConstant.AD_SETTING_RECOMMEND_FIRST)
|
if (adInfo != null && mHomeTypes != null && mHomeTypes.size() > 0) {
|
mHomeTypes.get(0).getHomeVideoList().get(0).setVideo(adInfo);
|
Log.i("mResult", "替换广告数据");
|
}
|
}
|
//插入大屏广告
|
if (adList != null && adList.size() > 0) {
|
HomeType homeType = new HomeType();
|
homeType.setName("推广");
|
homeType.setColumns(1);
|
homeType.setHomeVideoList(adList);
|
homeType.setActivity("");
|
homeType.setBeizhu("");
|
homeType.setParams("");
|
homeType.setHasMore("false");
|
homeType.setId("9999");
|
mHomeTypes.add(1, homeType);
|
}
|
if (adList1 != null && adList1.size() > 0) {
|
HomeType homeType = new HomeType();
|
homeType.setName("推广");
|
homeType.setColumns(1);
|
homeType.setHomeVideoList(adList1);
|
homeType.setActivity("");
|
homeType.setBeizhu("");
|
homeType.setParams("");
|
homeType.setHasMore("false");
|
homeType.setId("8888");
|
mHomeTypes.add(homeType);
|
}
|
mRecommendAdapter.notifyDataSetChanged();
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
rl_recommend.setRefreshing(false);
|
// getHomeType();
|
Log.i("mResult", "getLiveInfo---onFinish---getHomeType");
|
}
|
});
|
}
|
|
@Override
|
public void onDestroy() {
|
super.onDestroy();
|
}
|
|
private List<HomeVideo> adList = new ArrayList<>();
|
private List<HomeVideo> adList1 = new ArrayList<>();
|
|
/**
|
* 中屏
|
*/
|
// 1.加载广告,先设置加载上下文环境和条件
|
private void loadAD1() {
|
NativeExpressAD nativeExpressAD = new NativeExpressAD(indicator_recommend.getContext(), new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT),
|
BeibeiConstant.GDT_ID, BeibeiConstant.GDT_RECOMMAND_NATIVE, new NativeExpressAD.NativeExpressADListener() {
|
@Override
|
public void onADLoaded(final List<NativeExpressADView> list) {
|
tv_notice.post(new Runnable() {
|
@Override
|
public void run() {
|
if (list != null && list.size() > 0) {
|
HomeVideo homeVideo = new HomeVideo();
|
VideoInfo info = new VideoInfo();
|
info.setAdView(list.get(0));
|
homeVideo.setVideo(info);
|
adList.add(homeVideo);
|
}
|
try {
|
loadAD3();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
});
|
|
}
|
|
@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) {
|
tv_notice.post(new Runnable() {
|
@Override
|
public void run() {
|
try {
|
loadAD3();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
});
|
}
|
}); // 传入Activity
|
// 注意:如果您在联盟平台上新建原生模板广告位时,选择了支持视频,那么可以进行个性化设置(可选)
|
nativeExpressAD.setVideoOption(new VideoOption.Builder()
|
.setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI) // WIFI 环境下可以自动播放视频
|
.setAutoPlayMuted(true) // 自动播放时为静音
|
.build()); //
|
nativeExpressAD.setDownAPPConfirmPolicy(DownAPPConfirmPolicy.Default);
|
nativeExpressAD.loadAD(2);
|
}
|
|
/**
|
* 首页底屏
|
*/
|
// 1.加载广告,先设置加载上下文环境和条件
|
private void loadAD2() throws Exception {
|
String positionAdID;
|
if (position == 0) {
|
positionAdID = BeibeiConstant.GDT_RECOMMAND_MIN_NATIVE;
|
} else {
|
positionAdID = BeibeiConstant.GDT_RECOMMEND_CATEGORY_MIN_NATIVE;
|
}
|
NativeExpressAD nativeExpressAD = new NativeExpressAD(indicator_recommend.getContext(), new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT),
|
BeibeiConstant.GDT_ID, positionAdID, new NativeExpressAD.NativeExpressADListener() {
|
@Override
|
public void onADLoaded(List<NativeExpressADView> list) {
|
if (list != null && list.size() > 0) {
|
HomeVideo homeVideo = new HomeVideo();
|
VideoInfo info = new VideoInfo();
|
info.setAdView(list.get(0));
|
homeVideo.setVideo(info);
|
adList1.add(homeVideo);
|
}
|
tv_no_network.post(new Runnable() {
|
@Override
|
public void run() {
|
getLiveInfo();
|
}
|
});
|
}
|
|
@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) {
|
tv_no_network.post(new Runnable() {
|
@Override
|
public void run() {
|
getLiveInfo();
|
}
|
});
|
}
|
}); // 传入Activity
|
// 注意:如果您在联盟平台上新建原生模板广告位时,选择了支持视频,那么可以进行个性化设置(可选)
|
nativeExpressAD.setVideoOption(new VideoOption.Builder()
|
.setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI) // WIFI 环境下可以自动播放视频
|
.setAutoPlayMuted(true) // 自动播放时为静音
|
.build()); //
|
nativeExpressAD.loadAD(2);
|
}
|
|
/**
|
* 分类首屏
|
*/
|
VideoInfo adInfo;
|
|
// 1.加载广告,先设置加载上下文环境和条件
|
private void loadAD3() throws Exception {
|
String positionAdID;
|
if (position == 0) {
|
positionAdID = BeibeiConstant.GDT_RECOMMAND_MIN_NATIVE;
|
} else {
|
positionAdID = BeibeiConstant.GDT_RECOMMEND_CATEGORY_MIN_NATIVE;
|
}
|
NativeExpressAD nativeExpressAD = new NativeExpressAD(indicator_recommend.getContext(), new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT),
|
BeibeiConstant.GDT_ID, positionAdID, new NativeExpressAD.NativeExpressADListener() {
|
@Override
|
public void onADLoaded(final List<NativeExpressADView> list) {
|
tv_notice.post(new Runnable() {
|
@Override
|
public void run() {
|
if (null != list && list.size() > 0) {
|
adInfo = new VideoInfo();
|
adInfo.setAdView(list.get(0));
|
}
|
try {
|
loadAD2();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
});
|
}
|
|
@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) {
|
tv_notice.post(new Runnable() {
|
@Override
|
public void run() {
|
try {
|
loadAD2();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
});
|
|
}
|
}); // 传入Activity
|
// 注意:如果您在联盟平台上新建原生模板广告位时,选择了支持视频,那么可以进行个性化设置(可选)
|
nativeExpressAD.setVideoOption(new VideoOption.Builder()
|
.setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI) // WIFI 环境下可以自动播放视频
|
.setAutoPlayMuted(true) // 自动播放时为静音
|
.build()); //
|
nativeExpressAD.loadAD(2);
|
}
|
|
List<HotStar> hotStars = new ArrayList<>();
|
|
private void getHotStars() {
|
SharedPreferences preferences = tv_no_network.getContext().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
BeibeiVideoAPI.getRecommendStars(tv_no_network.getContext(), uid,
|
new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
hotStars.clear();
|
Gson gson = new GsonBuilder().setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
List<HotStar> hotStarList = gson.fromJson(
|
jsonObject.getJSONObject("Data")
|
.getJSONArray("data").toString(),
|
new TypeToken<List<HotStar>>() {
|
}.getType());
|
hotStars.addAll(hotStarList);
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers,
|
byte[] responseBytes, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseBytes, throwable);
|
}
|
|
@Override
|
public void onFinish() {
|
}
|
});
|
}
|
|
}
|