package com.quinn.githubknife.ui.fragments;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.quinn.githubknife.presenter.TrendingRepoPresenterImpl;
import com.quinn.githubknife.ui.activity.RepoActivity;
import com.quinn.githubknife.ui.adapter.TrendingRepoAdapter;
import com.quinn.githubknife.ui.widget.RecycleItemClickListener;
import com.quinn.httpknife.github.Repository;
import com.quinn.httpknife.github.TrendingRepo;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Quinn on 9/10/16.
*/
public class TrendingReposFragment extends BaseFragment implements RecycleItemClickListener {
private String url;
private TrendingRepoAdapter adapter;
public static TrendingReposFragment getInstance(String url){
TrendingReposFragment trendingReposFragment = new TrendingReposFragment();
Bundle bundle = new Bundle();
bundle.putString("url", url);
trendingReposFragment.setArguments(bundle);
return trendingReposFragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dataItems = new ArrayList<Repository>();
presenter = new TrendingRepoPresenterImpl(this.getActivity(),this);
adapter = new TrendingRepoAdapter(dataItems);
}
public void setSinceType(TrendingRepo.SINCE_TYPE sinceType) {
((TrendingRepoPresenterImpl)presenter).setSinceType(sinceType);
}
public void reload(String url) {
this.trendingUrl = url;
dataItems.clear();
adapter.notifyDataSetChanged();
currPage = 1;
presenter.onPageLoad(url);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater,container,savedInstanceState);
recyclerView.setAdapter(adapter);
adapter.setOnItemClickListener(this);
return view;
}
@Override
public void setItems(List<?> items) {
super.setItems(items);
for(Object repo:items){
dataItems.add((TrendingRepo) repo);
}
loading = false;
haveMore = false;
adapter.notifyDataSetChanged();
}
@Override
public void intoItem(int position) {
super.intoItem(position);
RepoActivity.launch(this.getContext(), (Repository) dataItems.get(position));
}
@Override
public void onItemClick(View view, int position) {
intoItem(position);
}
}