package com.appassit.fragments;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.appassit.R;
import com.appassit.adapter.BeautyAdapter;
import com.appassit.data.GsonBeautyRequest;
import com.appassit.data.RequestManager;
import com.appassit.http.SLApis;
import com.appassit.listener.OnFilterDoubleClickListener;
import com.appassit.model.Beauty;
import com.appassit.tools.NetUtil;
import com.appassit.widget.googleprogress.GoogleProgressBar;
import com.appassit.widget.xlistview.XListView;
import com.appassit.widget.xlistview.XListView.IXListViewListener;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
public class BeautyFragment extends Fragment implements IXListViewListener {
@ViewInject(R.id.listview)
private XListView mListView;
@ViewInject(R.id.ll_loading)
private GoogleProgressBar progressBar;
@ViewInject(R.id.img_nodata)
ImageView img_nodata;
private BeautyAdapter mAdapter;
private int mPageNo = 1;
private Map<String, String> mMaps;
private boolean hasMore = false;
private boolean beginLoading = true;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("YM", "Beauty-onCreate");
mMaps = new HashMap<String, String>();
mAdapter = new BeautyAdapter(new OnFilterDoubleClickListener() {
@Override
public void onClicked(View v) {
// TODO Auto-generated method stub
}
});
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_app_beauty, container, false);
ViewUtils.inject(this, view);
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Log.e("YM", "Beauty-onViewCreated");
getBeautyData();
mListView.setXListViewListener(this);
mListView.setAdapter(mAdapter);
mListView.setPullLoadEnable(true);
mListView.setPullRefreshEnable(true);
mListView.setDividerHeight((int) getResources().getDimension(R.dimen.album_past_space));
int padding = (int) getResources().getDimension(R.dimen.album_margin);
mListView.setPadding(padding, 0, padding, 0);
}
public void onResume() {
super.onResume();
Log.e("YM", "Beauty-onResume");
}
/*private void requestData() {
// TODO Auto-generated method stub
// SLApis.getRecommend(mPageNo, mApiListener);
getBeautyData();
}*/
@Override
public void onRefresh() {
// TODO Auto-generated method stub
mPageNo = 1;
getBeautyData();
}
@Override
public void onLoadMore() {
// TODO Auto-generated method stub
Log.e("YM", "onLoadMore()");
// /if(hasMore)
getBeautyData();
}
@OnClick(R.id.img_nodata)
void retry(View view) {
if (NetUtil.isNetworkConnected()) {
getBeautyData();
}
}
private void getBeautyData() {
if (beginLoading)
progressBar.setVisibility(View.VISIBLE);
img_nodata.setVisibility(View.GONE);
mMaps.put("page", String.valueOf(mPageNo));
executeRequest(new GsonBeautyRequest<Beauty>(SLApis.GET_RECOMMEND_LIST, Beauty.class, mMaps, responseListener(), errorListener()));
}
protected void executeRequest(Request<?> request) {
RequestManager.addRequest(request, this);
}
private Response.Listener<Beauty> responseListener() {
return new Response.Listener<Beauty>() {
@Override
public void onResponse(Beauty beauty) {
if (beauty != null) {
if (beginLoading)
progressBar.setVisibility(View.GONE);
beginLoading = false;
/**/
img_nodata.setVisibility(View.GONE);
mListView.setVisibility(View.VISIBLE);
if (beauty.response != null && !TextUtils.isEmpty(beauty.response.message)) {
// ToastUtils.showShortToast(rcm.response.message);
}
if (mPageNo == 1) {
mAdapter.set(beauty.list);
mListView.stopRefresh();
mListView.setRefreshTime(new Date().toLocaleString());
} else {
mAdapter.add(beauty.list);
mListView.stopLoadMore();
}
if (beauty.pageinfo != null && beauty.pageinfo.hasNext()) {
hasMore = true;
} else {
hasMore = false;
}
// Log.e("YM", "hasMore:"+hasMore);
if (hasMore) {
mPageNo++;
}
mListView.setHasMoreData(hasMore);
return;
}
/*if (mPageNo == 1) {
mListView.stopRefresh();
mListView.setRefreshTime(new Date().toLocaleString());
} else {
mListView.stopLoadMore();
}*/
}
};
}
/**
* 获取数据错误回调
*
* @return
*/
protected Response.ErrorListener errorListener() {
return new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
volleyError.printStackTrace();
Log.e("YM", "onErrorResponse");
progressBar.setVisibility(View.GONE);
mListView.setVisibility(View.GONE);
img_nodata.setVisibility(View.VISIBLE);
}
};
}
@Override
public void onDestroyView() {
super.onDestroyView();
Log.e("YM", "Beauty-onDestroyView()");
mListView.setAdapter(null);
RequestManager.cancelAll(this);
}
}