package com.weikou.beibeivideo.ui.recommend;
|
|
import android.content.Context;
|
import android.content.SharedPreferences;
|
import android.os.Bundle;
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.RecyclerView;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.AbsListView;
|
import android.widget.FrameLayout;
|
|
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.weikou.beibeivideo.BasicTextHttpResponseHandler;
|
import com.weikou.beibeivideo.BeibeiVideoAPI;
|
import com.weikou.beibeivideo.R;
|
import com.weikou.beibeivideo.entity.CategoryRecommendVideo;
|
import com.weikou.beibeivideo.entity.VideoInfo;
|
import com.weikou.beibeivideo.entity.VideoType;
|
import com.weikou.beibeivideo.ui.category.CategoryRecommendAdapter;
|
import com.weikou.beibeivideo.util.DimenUtils;
|
import com.weikou.beibeivideo.util.JsonUtil;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 推荐分类
|
* Created by weikou2015 on 2016/8/18.
|
*/
|
public class CategoryRecommendFragment extends RetainViewFragment {
|
|
private CategoryRecommendAdapter adapter;
|
|
private String mHomeType;
|
|
private VideoType type;
|
|
private String id;
|
|
private SwipeRefreshLayout rl_cate_recommed;
|
|
private List<VideoInfo> mVideoInfos = new ArrayList<>();
|
|
private RecyclerView rv_category;
|
|
|
FrameLayout fl_ad;
|
|
private Context mContext;
|
|
List<CategoryRecommendVideo> homeAds = new ArrayList<>();
|
|
public static CategoryRecommendFragment newInstance(VideoType type, String id) {
|
CategoryRecommendFragment fragment = new CategoryRecommendFragment();
|
Bundle bundle = new Bundle();
|
bundle.putSerializable("videotype", type);
|
bundle.putString("id", id);
|
fragment.setArguments(bundle);
|
return fragment;
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
mContext = getContext().getApplicationContext();
|
rv_category = contentView.findViewById(R.id.rv_category);
|
rl_cate_recommed = contentView.findViewById(R.id.rl_cate_recommed);
|
mHomeType = getActivity().getIntent().getStringExtra("home_type");
|
type = (VideoType) getArguments().getSerializable("videotype");
|
id = (String) getArguments().get("id");
|
mHomeType = (mHomeType == null ? "" : mHomeType);
|
|
rl_cate_recommed.setClickable(false);
|
|
rl_cate_recommed.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
rl_cate_recommed.setRefreshing(true);
|
getHomeAd();
|
}
|
});
|
|
fl_ad = new FrameLayout(rl_cate_recommed.getContext());
|
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup
|
.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
fl_ad.setPadding(0, DimenUtils.dip2px(rl_cate_recommed.getContext(), 10), 0, 0);
|
fl_ad.setLayoutParams(params);
|
|
|
rv_category.setLayoutManager(new LinearLayoutManager(getContext()));
|
mVideoInfos = new ArrayList<>();
|
|
adapter = new CategoryRecommendAdapter(homeAds, mVideoInfos, type, getActivity());
|
rv_category.setAdapter(adapter);
|
rl_cate_recommed.setRefreshing(true);
|
|
rv_category.post(new Runnable() {
|
@Override
|
public void run() {
|
getHomeAd();
|
}
|
});
|
|
|
}
|
|
@Override
|
public void onSaveInstanceState(Bundle outState) {
|
outState.putString("flash back", "show");
|
super.onSaveInstanceState(outState);
|
}
|
|
public void getHomeAd() {
|
SharedPreferences preferences = rv_category.getContext().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
BeibeiVideoAPI.getCategoryBanner(rv_category.getContext(), uid, id,
|
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<CategoryRecommendVideo> list = gson.fromJson(jsonObject
|
.getJSONObject("Data").getJSONArray("data")
|
.toString(), new TypeToken<List<CategoryRecommendVideo>>() {
|
}.getType());
|
if (homeAds.size() > 0)
|
homeAds.clear();
|
homeAds.addAll(list);
|
adapter.notifyDataSetChanged();
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
getVideoList();
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
}
|
});
|
}
|
|
|
public void getVideoList() {
|
SharedPreferences preferences = mContext.getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
BeibeiVideoAPI.getCategoryRecommend(mContext, uid, type.getId(),
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
|
List<VideoInfo> videoInfos = JsonUtil.videoGson.fromJson(
|
jsonObject.getJSONObject("Data")
|
.getJSONArray("data").toString(),
|
new TypeToken<List<VideoInfo>>() {
|
}.getType());
|
|
mVideoInfos.clear();
|
|
mVideoInfos.addAll(videoInfos);
|
|
adapter.notifyDataSetChanged();
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers,
|
String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString,
|
throwable);
|
}
|
|
@Override
|
public void onFinish() {
|
rl_cate_recommed.setRefreshing(false);
|
|
}
|
});
|
}
|
|
@Override
|
public int getContentResource() {
|
return R.layout.fragment_cate_recommend;
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
}
|
}
|