package com.dreamspace.uucampus.ui.fragment.FreeGoods;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.View;
import com.dreamspace.uucampus.R;
import com.dreamspace.uucampus.api.ApiManager;
import com.dreamspace.uucampus.common.utils.NetUtils;
import com.dreamspace.uucampus.common.utils.PreferenceUtils;
import com.dreamspace.uucampus.common.utils.TLog;
import com.dreamspace.uucampus.model.IdleItem;
import com.dreamspace.uucampus.model.api.SearchIdleRes;
import com.dreamspace.uucampus.ui.activity.FreeGoods.FreeGoodsActivity;
import java.util.List;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
/**
* A simple {@link Fragment} subclass.
*/
public class FreeGoodsLazyDataFragment extends FreeGoodsLazyListFragment<IdleItem> {
private String category;
private int page = 1;
private boolean isFragDestroy = false;
private String location = null;
private boolean isDetailBack= false;
private boolean bIdleAct = false;
public FreeGoodsLazyDataFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
category = getArguments().getString(FreeGoodsActivity.CATEGORY);
bIdleAct = getArguments().getBoolean(FreeGoodsActivity.EXTRA_IDLE_ACT);
}
@Override
public void onPullUp() { //上拉刷新,加载更多
loadingDataByPage(++page, new OnRefreshListener<IdleItem>() {
@Override
public void onFinish(List mEntities) {
refreshDate(mEntities, FreeGoodsLazyListFragment.ADD);
onPullUpFinished();
}
@Override
public void onError() {
onPullUpFinished();
}
});
}
@Override
public void onPullDown() { //下拉刷新,加载最新的
page = 1;
loadingDataByPage(page, new OnRefreshListener<IdleItem>() {
@Override
public void onFinish(List<IdleItem> mEntities) {
refreshDate(mEntities, FreeGoodsLazyListFragment.LOAD);
onPullDownFinished();
}
@Override
public void onError() {
onPullDownFinished();
}
});
}
@Override
public String onItemPicked(IdleItem mEntity, int position) {
Log.i("INFO", mEntity.getIdle_id().toString());
return mEntity.getIdle_id().toString();
}
@Override
public void getInitData() {
location = PreferenceUtils.getString(getActivity().getApplicationContext(), PreferenceUtils.Key.LOCATION);
Log.i("INFO", "TAG IS :" + category + " Location:" + location);
loadingInitData();
}
public void loadingInitData() {
toggleShowLoading(true, getString(R.string.common_loading_message));
page = 1;
loadingDataByPage(page, new OnRefreshListener<IdleItem>() {
@Override
public void onFinish(List<IdleItem> mEntities) {
if (!isFragDestroy) {
if (mEntities != null && mEntities.size() == 0) {
toggleShowEmpty(true, getString(R.string.common_empty_msg), getGoodsClickListener);
} else {
toggleShowLoading(false, null);
refreshDate(mEntities, FreeGoodsLazyListFragment.LOAD);
TLog.i("获取的闲置列表:", mEntities.get(0).getIdle_id() + " useName:" + mEntities.get(0).getUser_name());
}
}
}
@Override
public void onError() {
toggleShowError(true, getString(R.string.common_error_msg), new View.OnClickListener() {
@Override
public void onClick(View v) {
loadingInitData();
}
});
}
});
}
public void loadingDataByPage(int page, final OnRefreshListener onRefreshListener) {
if (NetUtils.isNetworkConnected(getActivity().getApplicationContext())) {
ApiManager.getService(getActivity().getApplicationContext()).searchIdle(null, order, category, page, location, new Callback<SearchIdleRes>() {
@Override
public void success(SearchIdleRes searchIdleRes, Response response) {
if (searchIdleRes != null) {
onRefreshListener.onFinish(searchIdleRes.getResult());
alreadyGetData=true;
} else {
showToast(response.getReason());
onRefreshListener.onError();
}
}
@Override
public void failure(RetrofitError error) {
onRefreshListener.onError();
showInnerError(error);
alreadyGetData=false;
}
});
} else {
onRefreshListener.onError();
showNetWorkError();
}
}
//当更换排序方式时,activity对调用此方法
public void orderChange(String order) {
this.order = order;
TLog.i("排序方式:", order);
//更新当前页面数据
loadingInitData();
}
@Override
public void onDestroy() {
super.onDestroy();
isFragDestroy = true;
}
@Override
public void onResume() {
super.onResume();
TLog.i("闲置:",bIdleAct+" "+isDetailBack);
if(!bIdleAct && !isDetailBack){ //当从其他页面回来时(不是直接从detail界面回来或主页进来时)重新加载
location = PreferenceUtils.getString(getActivity().getApplicationContext(), PreferenceUtils.Key.LOCATION);
loadingInitData();
}
bIdleAct=false; //第一次从主页加载后变为false
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i("Result:", "onActivityResult"+"requestCode"+requestCode+"\n resultCode="+resultCode);
if(requestCode==REQUEST_CODE) {
if(resultCode==RESULT_CODE) {
//直接进入detail界面,不需要刷新
isDetailBack =true;
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}