package com.jaf.biubiu;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.baidu.location.BDLocation;
import com.jaf.bean.BeanUnionItem;
import com.jaf.bean.ResponseTopic;
import com.jaf.jcore.AbsWorker;
import com.jaf.jcore.Application;
import com.jaf.jcore.BindView;
import com.jaf.jcore.BindableFragment;
import com.jaf.jcore.JacksonWrapper;
import com.jaf.jcore.NetworkListView;
import org.json.JSONObject;
import java.util.ArrayList;
/**
* Created by jarrah on 2015/4/14.
*/
public class FragmentUnion extends BindableFragment implements Constant.CMD{
@BindView(id = R.id.topicList)
private NetworkListView<ViewUnionItemView, BeanUnionItem> mNetworkListView;
private com.jaf.jcore.AbsWorker.AbsLoader<ViewUnionItemView, BeanUnionItem> loader;
public FragmentUnion() {}
@Override
protected int onLoadViewResource() {
return R.layout.fragment_union;
}
@Override
protected void onViewDidLoad(Bundle savedInstanceState) {
super.onViewDidLoad(savedInstanceState);
loader = new AbsWorker.AbsLoader<ViewUnionItemView, BeanUnionItem>() {
@Override
public String parseNextUrl(JSONObject response) {
return Constant.API;
}
@Override
public JSONObject parseNextJSON(JSONObject response) {
ResponseTopic responseTopic = JacksonWrapper.json2Bean(response, ResponseTopic.class);
ArrayList<BeanUnionItem> data = responseTopic.getReturnData().getContData();
if(data.size() > 0 ) {
int lastId = data.get(data.size() - 1).getSortId();
return U.buildTopic(false, lastId, 1);
}
return null;
}
@Override
public ArrayList<BeanUnionItem> parseJSON2ArrayList(JSONObject response) {
ResponseTopic responseTopic = JacksonWrapper.json2Bean(response, ResponseTopic.class);
L.dbg("TOPIC : " + response);
if (responseTopic != null && responseTopic.getReturnData() != null) {
return responseTopic.getReturnData().getContData();
}else {
return null;
}
}
@Override
public void updateItemUI(int position, final BeanUnionItem data, ViewUnionItemView itemView) {
itemView.setData(data);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityUnionTopic.Extra extra = new ActivityUnionTopic.Extra();
extra.fromTopic = U.buildTopicQuestionListArg(data.getUnionId());
extra.topicTitle = data.getUnionName();
ActivityUnionTopic.start(getActivity(), extra);
}
});
}
@Override
public ViewUnionItemView makeItem(LayoutInflater inflater, int position, View convertView, ViewGroup parent) {
return new ViewUnionItemView(getActivity());
}
};
LocationManager.getInstance().requestLocation(new LocationManager.JLsn() {
@Override
public void onResult(double latitude, double longitude, BDLocation location) {
super.onResult(latitude, longitude, location);
Application.getInstance().getAppExtraInfo().lat = latitude;
Application.getInstance().getAppExtraInfo().lon = longitude;
mNetworkListView.request(Constant.API, loader, U.buildTopic(true, 0, 1));
}
});
mNetworkListView.setEmptyView(EmptyHelper.getEmptyView(getActivity(), R.drawable.bg_nearby_empty, R.string.unionEmpty));
}
public static Fragment newInstance(Bundle arg) {
return new FragmentUnion();
}
}