package com.mugua.mgvideo.ui.category;
|
|
import android.content.Context;
|
import android.content.SharedPreferences;
|
import android.os.Bundle;
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.widget.ImageView;
|
import android.widget.ListView;
|
import android.widget.ProgressBar;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
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.util.RefreshLayout;
|
import com.mugua.mgvideo.R;
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
import com.umeng.analytics.MobclickAgent;
|
import com.yeshi.base.utils.http.BasicTextHttpResponseHandler;
|
import com.mugua.mgvideo.MGVideoAPI;
|
import com.yeshi.base.entity.video.VideoInfo;
|
import com.mugua.mgvideo.ui.discover.StarWorksAdapter;
|
import com.mugua.mgvideo.util.GlideCircleTransform;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
|
|
public class StarDetailFragment extends RetainViewFragment {
|
private View star_Detail_min_Top;
|
RefreshLayout rl_detail;
|
private ListView lv_Star_Detail;
|
private ImageView star_detail_portrait;
|
private TextView star_detail_name, star_detail_job, star_detail_country,
|
star_detail_works;
|
private List<VideoInfo> mVideoInfos;
|
private StarWorksAdapter mAdapter;
|
private DisplayImageOptions options;
|
|
private int mCurrentPage = 1;
|
private boolean loadOver = false;
|
|
private String star_id;
|
|
@Override
|
public int getContentResource() {
|
return R.layout.star_detail_fragment;
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
Bundle bundle = getArguments();
|
star_id = bundle.getString("star_id");
|
rl_detail = (RefreshLayout) contentView.findViewById(R.id.rl_detail);
|
lv_Star_Detail = (ListView) contentView
|
.findViewById(R.id.lv_star_detail);
|
star_Detail_min_Top = LayoutInflater.from(getContext()).inflate(
|
R.layout.star_detail_top, null);
|
lv_Star_Detail.addHeaderView(star_Detail_min_Top);
|
star_detail_portrait = (ImageView) contentView
|
.findViewById(R.id.star_detail_portrait);
|
star_detail_name = (TextView) contentView
|
.findViewById(R.id.star_detail_name);
|
star_detail_job = (TextView) contentView
|
.findViewById(R.id.star_detail_job);
|
star_detail_country = (TextView) contentView
|
.findViewById(R.id.star_detail_country);
|
star_detail_works = (TextView) contentView
|
.findViewById(R.id.star_detail_works);
|
|
mVideoInfos = new ArrayList<VideoInfo>();
|
mAdapter = new StarWorksAdapter(mVideoInfos, getActivity().getApplicationContext());
|
lv_Star_Detail.setAdapter(mAdapter);
|
ProgressBar pb = new ProgressBar(getContext());
|
rl_detail.setFooter(pb);
|
rl_detail.setRefreshing(true);
|
rl_detail.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
mCurrentPage = 1;
|
getHotStarDetail();
|
getHotStarsVideo();
|
}
|
});
|
|
rl_detail.setOnLoadListener(new RefreshLayout.OnLoadListener() {
|
@Override
|
public void onLoad() {
|
mCurrentPage++;
|
getHotStarsVideo();
|
}
|
});
|
lv_Star_Detail.postDelayed(new Runnable() {
|
|
@Override
|
public void run() {
|
getHotStarDetail();
|
getHotStarsVideo();
|
}
|
}, 200);
|
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
MobclickAgent.onPageStart("明星详情页");
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
MobclickAgent.onPageEnd("明星详情页");
|
}
|
|
private void getHotStarDetail() {
|
SharedPreferences preferences = star_detail_country.getContext().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
|
MGVideoAPI.getHotStarDetail(star_detail_country.getContext(), uid, star_id,
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
star_detail_name.setText(jsonObject.getJSONObject(
|
"Data").optString("Name"));
|
star_detail_job.setText("职业:"
|
+ jsonObject.getJSONObject("Data")
|
.optString("Job"));
|
star_detail_country.setText("国籍:"
|
+ jsonObject.getJSONObject("Data")
|
.optString("Country"));
|
star_detail_works.setText("代表作:"
|
+ jsonObject.getJSONObject("Data")
|
.optString("Works"));
|
// imageLoader.displayImage(
|
// jsonObject.getJSONObject("Data").optString(
|
// "Portrait"), star_detail_portrait,
|
// options);
|
try {
|
Glide.with(getActivity().getApplicationContext())
|
.load(jsonObject.getJSONObject("Data")
|
.optString("Portrait"))
|
.placeholder(R.drawable.img_head_portrait)
|
.error(R.drawable.img_head_portrait)
|
.transform(
|
new GlideCircleTransform(
|
star_Detail_min_Top.getContext())).transition(withCrossFade())
|
.into(star_detail_portrait);
|
} catch (IllegalArgumentException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
if (loadOver) {
|
rl_detail.setRefreshing(false);
|
rl_detail.setLoading(false);
|
} else {
|
loadOver = true;
|
}
|
}
|
});
|
}
|
|
private void getHotStarsVideo() {
|
SharedPreferences preferences = lv_Star_Detail.getContext().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
|
MGVideoAPI.getHotStarsVideo(lv_Star_Detail.getContext(), uid, star_id,
|
String.valueOf(mCurrentPage),
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
System.out.println("hhhhh===="
|
+ jsonObject.getJSONObject("Data")
|
.toString());
|
Gson gson = new GsonBuilder().setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
List<VideoInfo> videoInfos = gson.fromJson(
|
jsonObject.getJSONObject("Data")
|
.getJSONArray("data").toString(),
|
new TypeToken<List<VideoInfo>>() {
|
}.getType());
|
if (mCurrentPage == 1) {
|
mVideoInfos.clear();
|
}
|
|
if ((videoInfos == null || videoInfos.size() == 0)
|
&& mCurrentPage > 1) {
|
Toast.makeText(getContext(), "没有更多了",
|
Toast.LENGTH_SHORT).show();
|
mCurrentPage--;
|
} else {
|
mVideoInfos.addAll(videoInfos);
|
if (mVideoInfos.size() > 0)
|
mAdapter.notifyDataSetChanged();
|
}
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
if (loadOver) {
|
rl_detail.setLoading(false);
|
rl_detail.setRefreshing(false);
|
} else {
|
loadOver = true;
|
}
|
}
|
});
|
}
|
|
}
|