package com.mhacks.android.awards;
import android.app.Fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.RelativeLayout;
import com.mhacks.android.R;
import com.mhacks.android.pong.PongHeaderTransformer;import com.parse.FindCallback;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import java.util.ArrayList;
import java.util.List;
import uk.co.senab.actionbarpulltorefresh.library.ActionBarPullToRefresh;
import uk.co.senab.actionbarpulltorefresh.library.Options;import uk.co.senab.actionbarpulltorefresh.library.PullToRefreshLayout;
import uk.co.senab.actionbarpulltorefresh.library.listeners.OnRefreshListener;
public class AwardsFragment extends Fragment implements OnRefreshListener {
private AwardsAdapter mAdapter;
private ArrayList<ParseObject> mAwards;
private ListView mAwardsListView;
private PullToRefreshLayout mPullToRefreshLayout;
public AwardsFragment() {
mAwards = new ArrayList<ParseObject>();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.fragment_awards, container, false);
mAwardsListView = (ListView) layout.findViewById(R.id.awards_listview);
mAwardsListView.addHeaderView(new View(getActivity()));
mAwardsListView.addFooterView(new View(getActivity()));
mAdapter = new AwardsAdapter(this.getActivity(), mAwards);
mAwardsListView.setAdapter(mAdapter);
setRetainInstance(true);
return layout;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
ViewGroup container = (ViewGroup) view;
mPullToRefreshLayout = new PullToRefreshLayout(container.getContext());
ActionBarPullToRefresh.from(getActivity())
.options(Options.create()
.scrollDistance(0.5f)
.headerLayout(R.layout.pong_header)
.headerTransformer(new PongHeaderTransformer())
.build())
.insertLayoutInto(container)
.theseChildrenArePullable(R.id.awards_listview)
.listener(this)
.setup(mPullToRefreshLayout);
}
@Override
public void onResume() {
super.onResume();
if (mAdapter.getCount() == 0) {
refresh();
}
}
@Override
public void onRefreshStarted(View view) {
ParseQuery<ParseObject> query = ParseQuery.getQuery("Prize");
query.orderByDescending("importance");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> parseObjects, ParseException e) {
if (e == null) {
Log.d("Awards", "Got " + parseObjects.size() + " prizes.");
mAwards.clear();
mAwards.addAll(parseObjects);
mAdapter.notifyDataSetChanged();
}
mPullToRefreshLayout.setRefreshComplete();
}
});
}
private void refresh() {
mPullToRefreshLayout.setRefreshing(true);
onRefreshStarted(mAwardsListView);
}
}