package in.vesely.eclub.yodaqa.view; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.ViewGroup; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.ViewById; import java.util.ArrayList; import in.vesely.eclub.yodaqa.R; import in.vesely.eclub.yodaqa.adapters.ListRecyclerViewAdapter; import in.vesely.eclub.yodaqa.restclient.YodaAnswersResponse; import in.vesely.eclub.yodaqa.restclient.YodaSource; import in.vesely.eclub.yodaqa.view.utils.SimpleDividerItemDecoration; /** * A placeholder fragment containing a simple view. */ @EFragment(R.layout.fragment_sources) public class SourcesFragment extends ResponseFragment { @ViewById(R.id.recyclerView) protected RecyclerView recyclerView; private ListRecyclerViewAdapter<YodaSource, SourceItem> adapter = new ListRecyclerViewAdapter<YodaSource, SourceItem>() { @Override protected SourceItem onCreateItemView(ViewGroup parent, int viewType) { return SourceItem_.build(parent.getContext()); } }; public SourcesFragment() { } @Override protected void responseChanged(YodaAnswersResponse response) { adapter.clear(); if(response!=null) { ArrayList<YodaSource> yodaSources= new ArrayList<>(response.getSources().values()); ArrayList<YodaSource> arrayListSources=new ArrayList<>(); for(int i=0;i<yodaSources.size();i++){ boolean founded=false; YodaSource yodaSource=yodaSources.get(i); if (!yodaSource.getOrigin().equals("title-in-clue")){ String title=yodaSource.getTitle(); String type=yodaSource.getType(); String origin=yodaSource.getOrigin(); for (int j=0;j<arrayListSources.size();j++){ YodaSource s=arrayListSources.get(j); if(s.getTitle().equals(title) && s.getType().equals(type)){ s.setOrigin(s.getOrigin() + ", " + origin); founded=true; break; } } if(!founded){ arrayListSources.add(yodaSource); } } } adapter.addAll(arrayListSources); } } @AfterViews protected void afterViews() { recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false)); recyclerView.setAdapter(adapter); recyclerView.addItemDecoration(new SimpleDividerItemDecoration(getActivity())); } }