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;
}
}
}