package com.vt.vthacks; import java.text.DateFormat; import java.util.Date; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.vt.vthacks.model.IScheduleList; import com.vt.vthacks.model.impl.ScheduleList; import com.vt.vthacks.view.PullToRefreshListView; import com.vt.vthacks.view.PullToRefreshListView.OnRefreshListener; import com.vt.vthacks.view.ScheduleAdapter; // ------------------------------------------------------------------------- /** * This class handles the interaction/data for the Schedule page * * @author Brandon Potts * @version Mar 10, 2014 */ public class ScheduleFragment extends Fragment { private ScheduleAdapter adapter; private PullToRefreshListView listView; // ---------------------------------------------------------- @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.schedule, container, false); listView = (PullToRefreshListView) view.findViewById(R.id.schedule_list_view); listView.setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh() { new ScheduleTask().execute(); } }); adapter = new ScheduleAdapter(getActivity(), new ScheduleList(null)); listView.setAdapter(adapter); listView.onRefresh(); return view; } private class ScheduleTask extends AsyncTask<Void, Void, IScheduleList> { @Override protected IScheduleList doInBackground(Void... arg0) { return ScheduleList.fromServer(); } @Override protected void onPostExecute(IScheduleList result) { super.onPostExecute(result); if (result != null) { adapter.clear(); adapter.addAll(result); adapter.notifyDataSetChanged(); } Date date = new Date(System.currentTimeMillis()); listView.onRefreshComplete("Last updated at " + DateFormat.getDateTimeInstance().format(date)); } } }