package com.vt.vthacks;
import java.text.DateFormat;
import java.util.Date;
import com.vt.vthacks.model.ICompanyContactsList;
import com.vt.vthacks.model.IContact;
import com.vt.vthacks.model.impl.CompanyContactsList;
import com.vt.vthacks.view.CompanyContactsAdapter;
import com.vt.vthacks.view.CompanyContactsAdapter.OnContactClickListener;
import com.vt.vthacks.view.PullToRefreshListView;
import com.vt.vthacks.view.PullToRefreshListView.OnRefreshListener;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
// -------------------------------------------------------------------------
/**
* This class handles the interaction/data for contacts page
*
* @author Brandon Potts
* @version Mar 10, 2014
*/
public class ContactsFragment extends Fragment {
private CompanyContactsAdapter adapter;
private PullToRefreshListView listView;
// ----------------------------------------------------------
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.contacts, container, false);
listView = (PullToRefreshListView) view.findViewById(R.id.contacts_list_view);
listView.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh() {
new ContactsTask().execute();
}
});
adapter = new CompanyContactsAdapter(getActivity(), new CompanyContactsList(null),
new OnContactClickListener() {
@Override
public void onContactClicked(IContact contact) {
DialogFragment dialog = ContactDialogFragment.newInstance(contact);
dialog.show(ContactsFragment.this.getFragmentManager(), "contactDialogFragment");
}
});
listView.setAdapter(adapter);
listView.onRefresh();
return view;
}
private class ContactsTask extends AsyncTask<Void, Void, ICompanyContactsList> {
@Override
protected ICompanyContactsList doInBackground(Void... arg0) {
return CompanyContactsList.fromServer();
}
@Override
protected void onPostExecute(ICompanyContactsList 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));
}
}
}