package com.weikou.beibeivideo.ui.category;
|
|
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.LayoutInflater;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.widget.ImageView;
|
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.umeng.analytics.MobclickAgent;
|
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
|
import com.weikou.beibeivideo.BeibeiVideoAPI;
|
import com.weikou.beibeivideo.entity.VideoInfo;
|
import com.weikou.beibeivideo.entity.video.VideoContent;
|
import com.weikou.beibeivideo.ui.video.VideoCloumn1Adapter;
|
import com.weikou.beibeivideo.util.DimenUtils;
|
import com.weikou.beibeivideo.util.JsonUtil;
|
import com.weikou.beibeivideo.util.ui.DividerItemDecoration;
|
import com.weikou.beibeivideo.R;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class SpecificDetailFragment extends RetainViewFragment implements
|
OnClickListener {
|
private View specifi_detail_top;
|
private SwipeRefreshLayout rl_specific_detail;
|
private RecyclerView rv_specific_detail;
|
private ImageView specific_detail_banner;
|
private TextView specific_detail_name, specific_detail_introduction;
|
|
private List<VideoContent> mVideoInfos;
|
private VideoCloumn1Adapter mSpecificMovieAdapter;
|
|
private String id;
|
|
@Override
|
public int getContentResource() {
|
return R.layout.specific_detail_fragment;
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
Bundle bundle = getArguments();
|
if (bundle != null)
|
id = bundle.getString("id");
|
rl_specific_detail = contentView.findViewById(R.id.rl_specific_detail);
|
rv_specific_detail = contentView
|
.findViewById(R.id.rv_specific_detail);
|
|
rv_specific_detail.setLayoutManager(new LinearLayoutManager(getContext()));
|
DividerItemDecoration decoration = new DividerItemDecoration();
|
decoration.setSize(DimenUtils.dip2px(rv_specific_detail.getContext(), 6));
|
rv_specific_detail.addItemDecoration(decoration);
|
|
specifi_detail_top = LayoutInflater.from(rv_specific_detail.getContext()).inflate(
|
R.layout.specific_detail_top, null);
|
|
specific_detail_banner = specifi_detail_top
|
.findViewById(R.id.specific_detail_banner);
|
specific_detail_name = specifi_detail_top
|
.findViewById(R.id.specific_detail_name);
|
specific_detail_introduction = specifi_detail_top
|
.findViewById(R.id.specific_detail_introduction);
|
|
mVideoInfos = new ArrayList<>();
|
mSpecificMovieAdapter = new VideoCloumn1Adapter(getActivity(), mVideoInfos, "special");
|
mSpecificMovieAdapter.setHeaderView(specifi_detail_top);
|
rl_specific_detail.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
getSpecialDetail();
|
}
|
});
|
rv_specific_detail.setAdapter(mSpecificMovieAdapter);
|
|
rv_specific_detail.postDelayed(new Runnable() {
|
|
@Override
|
public void run() {
|
rl_specific_detail.setRefreshing(true);
|
getSpecialDetail();
|
}
|
}, 200);
|
|
}
|
|
private void getSpecialDetail() {
|
SharedPreferences preferences = specifi_detail_top.getContext().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
|
BeibeiVideoAPI.getSpecialDetail(getContext(), uid, id,
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
mVideoInfos.clear();
|
specific_detail_name.setText(jsonObject
|
.getJSONObject("Data")
|
.getJSONObject("special").optString("Name")
|
.toString());
|
specific_detail_introduction.setText(jsonObject
|
.getJSONObject("Data")
|
.getJSONObject("special")
|
.optString("Introduction").toString());
|
try {
|
Glide.with(getActivity().getApplicationContext())
|
.load(jsonObject.getJSONObject("Data")
|
.getJSONObject("special")
|
.optString("Picture"))
|
.into(specific_detail_banner);
|
} catch (IllegalArgumentException e) {
|
e.printStackTrace();
|
}
|
|
|
List<VideoInfo> videoInfos = JsonUtil.videoGson.fromJson(
|
jsonObject.getJSONObject("Data")
|
.getJSONArray("data").toString(),
|
new TypeToken<List<VideoInfo>>() {
|
}.getType());
|
List<VideoContent> videoContentList = new ArrayList<>();
|
for (VideoInfo video : videoInfos) {
|
videoContentList.add(VideoContent.createVideoContent(video));
|
}
|
mVideoInfos.clear();
|
mVideoInfos.addAll(videoContentList);
|
mSpecificMovieAdapter.notifyDataSetChanged();
|
}
|
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers,
|
byte[] responseBytes, Throwable throwable) {
|
|
super.onFailure(statusCode, headers, responseBytes,
|
throwable);
|
}
|
|
@Override
|
public void onFinish() {
|
|
super.onFinish();
|
rl_specific_detail.setRefreshing(false);
|
}
|
});
|
}
|
|
@Override
|
public void onClick(View v) {
|
|
}
|
}
|