package com.mugua.mgvideo.ui.main;
|
|
import android.content.Context;
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.graphics.Bitmap;
|
import android.graphics.Color;
|
import android.graphics.drawable.Drawable;
|
import android.os.Bundle;
|
import android.provider.Settings;
|
import android.support.annotation.NonNull;
|
import android.support.annotation.Nullable;
|
import android.support.v4.view.PagerAdapter;
|
import android.support.v4.widget.SwipeRefreshLayout;
|
import android.view.LayoutInflater;
|
import android.view.MotionEvent;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.View.OnTouchListener;
|
import android.view.ViewGroup;
|
import android.widget.ImageView;
|
import android.widget.ListView;
|
import android.widget.TextView;
|
|
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.request.target.SimpleTarget;
|
import com.bumptech.glide.request.transition.Transition;
|
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.SystemCommon;
|
import com.lcjian.library.util.cache.DiskLruCache;
|
import com.lcjian.library.util.common.StorageUtils;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.mugua.mgvideo.R;
|
import com.mugua.mgvideo.util.DimenUtils;
|
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.nostra13.universalimageloader.core.assist.FailReason;
|
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
|
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.mugua.mgvideo.BasicTextHttpResponseHandler;
|
import com.mugua.mgvideo.MGVideoAPI;
|
import com.mugua.mgvideo.entity.HomeAd;
|
import com.mugua.mgvideo.entity.HomeType;
|
import com.mugua.mgvideo.entity.HomeTypeItem;
|
import com.mugua.mgvideo.entity.HomeVideo;
|
import com.mugua.mgvideo.entity.VideoInfo;
|
import com.mugua.mgvideo.test.MyViewPager;
|
import com.mugua.mgvideo.ui.category.bean.HotStar;
|
import com.mugua.mgvideo.ui.dialog.UserProtocolDialog;
|
import com.mugua.mgvideo.ui.mine.BrowserActivity;
|
import com.mugua.mgvideo.ui.recommend.RecommendAdapter;
|
import com.mugua.mgvideo.ui.recommend.RecommendTopAdapter;
|
import com.mugua.mgvideo.ui.recommend.SearchActivity;
|
import com.mugua.mgvideo.ui.recommend.SearchResultActivity;
|
import com.mugua.mgvideo.util.BeibeiConstant;
|
import com.mugua.mgvideo.util.UserUtil;
|
|
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;
|
|
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 ImageView iv_taobao;
|
|
private ImageView iv_red_dot;
|
|
public static RecommendFragment newInstance() {
|
RecommendFragment fragment = new RecommendFragment();
|
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(getActivity())
|
.toString(), "http"), getVersionNum(getActivity()),
|
1, 1024 * 1024);
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
|
|
}
|
|
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);
|
}
|
});
|
|
tv_go_search = (TextView) contentView.findViewById(R.id.tv_go_search);
|
tv_go_search.setOnClickListener(this);
|
tv_go_search.setOnTouchListener(new OnTouchListener() {
|
|
@Override
|
public boolean onTouch(View v, MotionEvent event) {
|
// getCompoundDrawables() 可以获取一个长度为4的数组,
|
// 存放drawableLeft,Right,Top,Bottom四个图片资源对象
|
// index=2 表示的是 drawableRight 图片资源对象
|
Drawable drawable = tv_go_search.getCompoundDrawables()[2];
|
if (drawable == null)
|
return false;
|
|
if (event.getAction() != MotionEvent.ACTION_UP)
|
return false;
|
|
// drawable.getIntrinsicWidth() 获取drawable资源图片呈现的宽度
|
if (event.getX() > tv_go_search.getWidth()
|
- tv_go_search.getPaddingRight()
|
- drawable.getIntrinsicWidth()) {
|
if (!StringUtils.isEmpty(tv_go_search.getText().toString())) {
|
Intent intent = new Intent(getActivity(),
|
SearchResultActivity.class);
|
intent.putExtra("key", tv_go_search.getText()
|
.toString());
|
startActivity(intent);
|
} else {
|
Intent intent = new Intent(getActivity(),
|
SearchActivity.class);
|
intent.putExtra("value", tv_go_search.getText()
|
.toString());
|
startActivity(intent);
|
|
}
|
|
} else {
|
Intent intent = new Intent(getActivity(),
|
SearchActivity.class);
|
intent.putExtra("value", tv_go_search.getText().toString());
|
startActivity(intent);
|
}
|
return true;
|
}
|
|
});
|
|
// 淘宝联盟
|
iv_taobao = (ImageView) contentView.findViewById(R.id.nat);
|
iv_taobao.setOnClickListener(this);
|
iv_red_dot = (ImageView) contentView.findViewById(R.id.iv_red_dot);
|
|
|
rl_recommend = (SwipeRefreshLayout) contentView
|
.findViewById(R.id.rl_recommend);
|
lv_recommend = (ListView) contentView.findViewById(R.id.lv_recommend);
|
rl_recommend.setClickable(false);
|
recommend_top = LayoutInflater.from(tv_no_network.getContext())
|
.inflate(R.layout.recommend_top, null);
|
// 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);
|
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);
|
vp_recommend.setAdapter(new RecommendTopAdapter(null, getActivity()
|
.getApplicationContext()));
|
|
// indicator_recommend.post(new Runnable() {
|
// @Override
|
// public void run() {
|
indicator_recommend.setScreenWidth(DimenUtils.dip2px(getContext(), 200) - indicator_recommend.getPaddingLeft() - indicator_recommend.getPaddingRight());
|
indicator_recommend.setSelectedColor(Color.parseColor("#2880BF"));
|
indicator_recommend.setGapWidth(DimenUtils.dip2px(getContext(), 10));
|
indicator_recommend.setUnselectedColor(Color.WHITE);
|
|
// }
|
// });
|
|
|
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() {
|
vp_recommend.setCurrentItem(0, true);
|
getHotStars();
|
getHomeAd();
|
getHomeType();
|
if (BeibeiConstant.ADSHOW) {
|
// loadAD1();
|
} else {
|
getLiveInfo();
|
}
|
|
}
|
});
|
|
if (cache != null) {
|
{
|
DiskLruCache.Snapshot snapshot = null;
|
try {
|
snapshot = cache.get(getKey("getHomeAd"));
|
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()
|
.getApplicationContext()));
|
}
|
} 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"));
|
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();
|
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);
|
getHomeAd();
|
getHotStars();
|
getHomeType();
|
if (BeibeiConstant.ADSHOW) {
|
// loadAD1();
|
} else {
|
getLiveInfo();
|
}
|
}
|
}
|
}, 300);
|
getHotSearch();
|
getNotice();
|
getShop();
|
// showProtocol();
|
}
|
|
/**
|
* 广告商城展示
|
*/
|
SharedPreferences preferences;// 广告商城,获取图标状态信息
|
|
private void getShop() {
|
preferences = getActivity().getSharedPreferences("user",
|
Context.MODE_PRIVATE);
|
Glide.with(getActivity()).load(preferences.getString("top_icon", ""))
|
.into(target);
|
ImageLoader.getInstance().displayImage(
|
preferences.getString("top_icon", ""), iv_taobao,
|
new ImageLoadingListener() {
|
|
@Override
|
public void onLoadingStarted(String imageUri, View view) {
|
|
}
|
|
@Override
|
public void onLoadingFailed(String imageUri, View view,
|
FailReason failReason) {
|
|
}
|
|
@Override
|
public void onLoadingComplete(String imageUri, View view,
|
Bitmap loadedImage) {
|
long time = preferences.getLong("latestAdtime", 0);
|
if (!getDay(time).equalsIgnoreCase(
|
getDay(System.currentTimeMillis()))) {
|
iv_red_dot.setVisibility(View.VISIBLE);
|
} else {
|
iv_red_dot.setVisibility(View.GONE);
|
}
|
}
|
|
@Override
|
public void onLoadingCancelled(String imageUri, View view) {
|
|
}
|
|
});
|
}
|
|
private SimpleTarget<Drawable> target = new SimpleTarget<Drawable>() {
|
|
@Override
|
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
|
iv_taobao.setImageDrawable(resource);
|
long time = preferences.getLong("latestAdtime_c", 0);
|
if (!getDay(time).equalsIgnoreCase(
|
getDay(System.currentTimeMillis()))) {
|
iv_red_dot.setVisibility(View.VISIBLE);
|
} else {
|
iv_red_dot.setVisibility(View.GONE);
|
}
|
}
|
|
};
|
List<String> hotSearchs = null;// 热门搜索
|
|
/**
|
* 获取热门搜索
|
*/
|
private void getHotSearch() {
|
SharedPreferences preferences = getActivity().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
MGVideoAPI.getHotSearch(getActivity(), uid,
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
Gson gson = new GsonBuilder().setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
hotSearchs = gson.fromJson(jsonObject
|
.getJSONObject("Data").getJSONArray("data")
|
.toString(), new TypeToken<List<String>>() {
|
}.getType());
|
initHotSearch();
|
}
|
}
|
});
|
}
|
|
private void initHotSearch() {
|
if (hotSearchs != null && hotSearchs.size() > 0) {
|
int count = (int) (hotSearchs.size() * Math.random());
|
if (count > hotSearchs.size() - 1) {
|
count = hotSearchs.size() - 1;
|
}
|
tv_go_search.setText(hotSearchs.get(count));
|
}
|
}
|
|
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("主页面—推荐");
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
vp_recommend.removeCallbacks(mAutoScroller);
|
// vp_ad.removeCallbacks(mAdAutoScroller);
|
mChangeHelper.unregisterReceiver();
|
MobclickAgent.onPageEnd("主页面—推荐");
|
}
|
|
private String content;
|
|
private void getNotice() {
|
SharedPreferences preferences = tv_no_network.getContext()
|
.getSharedPreferences("user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
MGVideoAPI.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", "");
|
MGVideoAPI.getHomeAd(tv_no_network.getContext(), uid,
|
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());
|
vp_recommend.setAdapter(new RecommendTopAdapter(
|
homeAds, getActivity()
|
.getApplicationContext()));
|
indicator_recommend.invalidate();
|
|
DiskLruCache.Editor editor = cache
|
.edit(getKey("getHomeAd"));
|
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", "");
|
MGVideoAPI.getHomeType(tv_no_network.getContext(), uid,
|
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++) {
|
try {
|
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);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
mHomeTypes.addAll(homeTypes);
|
|
DiskLruCache.Editor editor = cache
|
.edit(getKey("getHomeType"));
|
editor.set(0, gson.toJson(mHomeTypes).toString());
|
editor.commit();
|
mRecommendAdapter.notifyDataSetChanged();
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
try {
|
loadAD1();
|
} catch (Exception e) {
|
}
|
}
|
|
@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;
|
case R.id.nat: {
|
|
SharedPreferences preferences = getActivity().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
SharedPreferences.Editor editor = preferences.edit();
|
editor.putLong("latestAdtime", System.currentTimeMillis());
|
editor.commit();
|
Intent intent = new Intent(getActivity(), BrowserActivity.class);
|
intent.putExtra("url", preferences.getString("tuiguang_add", ""));
|
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", "");
|
MGVideoAPI.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<HomeVideo>();
|
for (int j = 0; j < homeArray.length(); j++) {
|
liveList.add(gson.fromJson(homeArray
|
.optJSONObject(j).toString(),
|
HomeVideo.class));
|
}
|
}
|
|
// 插入大屏广告
|
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);
|
}
|
// 插入明星列表
|
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 (adInfo != null && mHomeTypes != null
|
&& mHomeTypes.size() > 0) {
|
mHomeTypes.get(0).getHomeVideoList().get(0)
|
.setVideo(adInfo);
|
}
|
|
mRecommendAdapter.notifyDataSetChanged();
|
}
|
|
@Override
|
public void onFinish() {
|
rl_recommend.setRefreshing(false);
|
super.onFinish();
|
}
|
});
|
}
|
|
@Override
|
public void onDestroy() {
|
super.onDestroy();
|
}
|
|
private List<HomeVideo> adList = new ArrayList<HomeVideo>();
|
private List<HomeVideo> adList1 = new ArrayList<HomeVideo>();
|
|
|
/**
|
* 中屏
|
*/
|
// 1.加载广告,先设置加载上下文环境和条件
|
private void loadAD1() {
|
NativeExpressAD nativeExpressAD = new NativeExpressAD(indicator_recommend.getContext(), new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT),
|
BeibeiConstant.GDT_APP_ID, BeibeiConstant.GDT_HOME_AND_PLAY_BIG_PICTURE, 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 = BeibeiConstant.GDT_HOME_AND_PLAY_BIG_PICTURE;
|
|
NativeExpressAD nativeExpressAD = new NativeExpressAD(indicator_recommend.getContext(), new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT),
|
BeibeiConstant.GDT_APP_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 = BeibeiConstant.GDT_RECOMMEND_CONTENT;
|
NativeExpressAD nativeExpressAD = new NativeExpressAD(indicator_recommend.getContext(), new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT),
|
BeibeiConstant.GDT_APP_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", "");
|
MGVideoAPI.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() {
|
}
|
});
|
}
|
|
|
}
|