package org.smartpaws.fragments; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import org.smartpaws.MainActivity; import org.smartpaws.R; import org.smartpaws.net.DataMan; import org.smartpaws.net.ResponseHandler; import org.smartpaws.net.TwitterData; import org.smartpaws.objects.Convention; import org.smartpaws.objects.transform.Sort; import org.smartpaws.objects.twitter.Tweet; import org.smartpaws.recycler.TwitterRecyclerView; import org.smartpaws.util.DividerItemDecoration; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class TwitterFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final int containerId = getArguments().getInt("container_id"); final View loading = inflater.inflate(R.layout.frag_loading, null); DataMan.getConvention("confuzzled", new ResponseHandler<Convention>() { @Override public void result(Convention result) { if (result == null) { MainActivity.INSTANCE.getSupportFragmentManager() .beginTransaction() .replace(containerId, new ErrorOfflineFragment()) .commit(); return; } final Fragment fragment = new TwitterContentFragment(); final Bundle bundle = new Bundle(); fragment.setArguments(bundle); TwitterData.getTweets(result.getTwitterAuthEncoded(), result.getTwitterAccounts(), new ResponseHandler<Tweet[]>() { @Override public void result(Tweet[] tweets) { if (tweets == null) { MainActivity.INSTANCE.getSupportFragmentManager() .beginTransaction() .replace(containerId, new ErrorOfflineFragment()) .commit(); return; } bundle.putSerializable("tweets", tweets); MainActivity.INSTANCE.getSupportFragmentManager() .beginTransaction() .replace(containerId, fragment) .commit(); } }); } }); return loading; } public static class TwitterContentFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Tweet[] tweets = (Tweet[]) getArguments().getSerializable("tweets"); final View root = inflater.inflate(R.layout.frag_twitter, null); final RecyclerView recycler = (RecyclerView) root.findViewById(R.id.twitterList); recycler.setAdapter(new TwitterRecyclerView(root.getContext(), tweets)); recycler.invalidate(); recycler.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST)); recycler.setHasFixedSize(true); LinearLayoutManager llm = new LinearLayoutManager(root.getContext()); llm.setOrientation(LinearLayoutManager.VERTICAL); recycler.setLayoutManager(llm); return root; } } }