package com.mugua.mgvideo.ui.category.fragment;
|
|
import android.content.Context;
|
import android.content.SharedPreferences;
|
import android.os.Bundle;
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
import android.view.View;
|
import android.widget.ListView;
|
import android.widget.ProgressBar;
|
|
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.umeng.analytics.MobclickAgent;
|
import com.yeshi.base.utils.http.BasicTextHttpResponseHandler;
|
import com.mugua.mgvideo.MGVideoAPI;
|
import com.mugua.mgvideo.ui.category.UniqueAdapter;
|
import com.mugua.mgvideo.ui.category.bean.UniqueBean;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 专题碎片
|
*/
|
public class UniqueFragment extends RetainViewFragment {
|
private List<UniqueBean> uniques = new ArrayList<UniqueBean>();
|
private int mCurrentPage = 1;
|
private ListView uniqueView;
|
private RefreshLayout rl_unique;
|
private UniqueAdapter uniqueAdapter;
|
|
/**
|
* 获取专题页数据
|
*/
|
private void getUniques() {
|
SharedPreferences preferences = uniqueView.getContext().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
MGVideoAPI.getSpecialList(uniqueView.getContext(), uid,
|
String.valueOf(mCurrentPage),
|
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();
|
List<UniqueBean> uniqueList = gson.fromJson(
|
jsonObject.getJSONObject("Data")
|
.getJSONArray("data").toString(),
|
new TypeToken<List<UniqueBean>>() {
|
}.getType());
|
if (mCurrentPage == 1) {
|
uniques.clear();
|
}
|
// 数量小于服务器数量时 才增加分页和添加数据
|
if (uniques.size() < jsonObject.getJSONObject(
|
"Data").getInt("count")) {
|
mCurrentPage++;
|
uniques.addAll(uniqueList);
|
if (uniques.size() > 0)
|
uniqueAdapter.notifyDataSetChanged();
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers,
|
byte[] responseBytes, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseBytes, throwable);
|
}
|
|
@Override
|
public void onFinish() {
|
rl_unique.setRefreshing(false);
|
rl_unique.setLoading(false);
|
}
|
});
|
}
|
|
@Override
|
public int getContentResource() {
|
return R.layout.category_unique;
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
rl_unique = (RefreshLayout) contentView.findViewById(R.id.rl_unique_ptrlv);
|
uniqueView = (ListView) contentView.findViewById(R.id.unique_ptrlv);
|
uniqueView.addHeaderView(new View(getContext()));
|
uniqueAdapter = new UniqueAdapter(uniques, getContext());
|
uniqueView.setAdapter(uniqueAdapter);
|
ProgressBar pb = new ProgressBar(getContext());
|
rl_unique.setFooter(pb);
|
rl_unique.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
mCurrentPage = 1;
|
getUniques();
|
}
|
});
|
rl_unique.setOnLoadListener(new RefreshLayout.OnLoadListener() {
|
@Override
|
public void onLoad() {
|
mCurrentPage++;
|
getUniques();
|
}
|
});
|
getUniques();
|
rl_unique.setRefreshing(true);
|
}
|
}
|