package com.stanleycen.facebookanalytics; import android.app.Fragment; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; import com.haarman.listviewanimations.swinginadapters.prepared.SwingBottomInAnimationAdapter; import java.util.ArrayList; import java.util.List; /** * Created by scen on 8/30/13. */ public class ConversationsFragment extends Fragment { public static Fragment newInstance(Context context) { ConversationsFragment f = new ConversationsFragment(); return f; } @Override public void onResume() { super.onResume(); getActivity().getActionBar().setTitle("Conversations"); getActivity().getActionBar().setSubtitle(null); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceBundle) { FBData fbData = GlobalApp.get().fb.fbData; if (fbData == null || fbData.lastUpdate == null) { return (ViewGroup) inflater.inflate(R.layout.fragment_error_data, null); } //TODO // IF FBDATA is BAD/NULL, inflate a different layout with "please collect data" ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragment_conversations, null); ListView list = (ListView) root.findViewById(R.id.listView); Util.addSeparatingHeaderView(getActivity(), inflater, list); List<CardItem> items = new ArrayList<CardItem>(); for (FBThread fbThread : fbData.threads) { if (!fbThread.isGroupConversation) { items.add(new CardConversation(0, fbThread)); } } final CardAdapter ca = new CardAdapter(getActivity(), items, 1); SwingBottomInAnimationAdapter swingBottomInAnimationAdapter = new SwingBottomInAnimationAdapter(ca); swingBottomInAnimationAdapter.setAbsListView(list); list.setAdapter(swingBottomInAnimationAdapter); list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { if (i == 0) return; // this is the header item ((MainActivity) getActivity()).openConversationView(((CardConversation) ca.getItem(i - 1)).fbThread); } }); setRetainInstance(true); return root; } }