Android Open Source - octodroid Hottest Repository Adapter






From Project

Back to project page octodroid.

License

The source code is released under:

MIT License

If you think the Android project octodroid listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.example.octodroid.adapters;
//from   ww w  .  j a v  a 2  s  .c  o m
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;

import com.example.octodroid.views.holders.RepositoryItemViewHolder;
import com.rejasupotaro.octodroid.GitHub;
import com.rejasupotaro.octodroid.http.Response;
import com.rejasupotaro.octodroid.models.Repository;

import java.util.ArrayList;
import java.util.List;

import rx.android.view.ViewObservable;

public class HottestRepositoryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private List<Repository> repositories = new ArrayList<>();

    public HottestRepositoryAdapter(RecyclerView recyclerView) {
        LinearLayoutManager layoutManager = new LinearLayoutManager(recyclerView.getContext());
        recyclerView.setHasFixedSize(false);
        recyclerView.setLayoutManager(layoutManager);

        ViewObservable.bindView(recyclerView, GitHub.client().hottestRepositories())
                .map(Response::entity)
                .subscribe(searchResult -> {
                    if (searchResult.getItems() == null || searchResult.getItems().isEmpty()) {
                        return;
                    }

                    List<Repository> repositories = searchResult.getItems();
                    addRepositories(repositories);
                });
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return RepositoryItemViewHolder.create(parent);
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
        Repository repository = repositories.get(position);
        ((RepositoryItemViewHolder) viewHolder).bind(repository);
    }

    @Override
    public int getItemCount() {
        return repositories.size();
    }

    private void addRepositories(List<Repository> repositories) {
        this.repositories.addAll(repositories);
        notifyDataSetChanged();
    }
}




Java Source Code List

com.example.octodroid.ApplicationTest.java
com.example.octodroid.MyApplication.java
com.example.octodroid.SessionPrefsSchema.java
com.example.octodroid.activities.LoginActivity.java
com.example.octodroid.activities.MainActivity.java
com.example.octodroid.activities.SearchResultActivity.java
com.example.octodroid.adapters.HottestRepositoryAdapter.java
com.example.octodroid.adapters.SearchResultAdapter.java
com.example.octodroid.views.DividerItemDecoration.java
com.example.octodroid.views.MoreLoadScrollListener.java
com.example.octodroid.views.ProfileView.java
com.example.octodroid.views.helpers.ProgressDialogHelper.java
com.example.octodroid.views.helpers.ToastHelper.java
com.example.octodroid.views.holders.ProgressViewHolder.java
com.example.octodroid.views.holders.RepositoryItemViewHolder.java
com.rejasupotaro.octodroid.ApplicationTest.java
com.rejasupotaro.octodroid.AuthenticationRequired.java
com.rejasupotaro.octodroid.ConnectivityObserver.java
com.rejasupotaro.octodroid.GitHubClient.java
com.rejasupotaro.octodroid.GitHub.java
com.rejasupotaro.octodroid.GsonProvider.java
com.rejasupotaro.octodroid.http.AbstractClient.java
com.rejasupotaro.octodroid.http.ApiClient.java
com.rejasupotaro.octodroid.http.CacheControl.java
com.rejasupotaro.octodroid.http.Header.java
com.rejasupotaro.octodroid.http.Link.java
com.rejasupotaro.octodroid.http.Method.java
com.rejasupotaro.octodroid.http.PaginationHeaderParserTest.java
com.rejasupotaro.octodroid.http.PaginationHeaderParser.java
com.rejasupotaro.octodroid.http.Pagination.java
com.rejasupotaro.octodroid.http.RequestCreator.java
com.rejasupotaro.octodroid.http.Response.java
com.rejasupotaro.octodroid.http.params.All.java
com.rejasupotaro.octodroid.http.params.Order.java
com.rejasupotaro.octodroid.http.params.Participating.java
com.rejasupotaro.octodroid.http.params.Sort.java
com.rejasupotaro.octodroid.http.params.Type.java
com.rejasupotaro.octodroid.models.Notification.java
com.rejasupotaro.octodroid.models.Plan.java
com.rejasupotaro.octodroid.models.Repository.java
com.rejasupotaro.octodroid.models.Resource.java
com.rejasupotaro.octodroid.models.SearchResult.java
com.rejasupotaro.octodroid.models.Subject.java
com.rejasupotaro.octodroid.models.User.java