Android Open Source - jive-android-core-sdk-example Repositories Model






From Project

Back to project page jive-android-core-sdk-example.

License

The source code is released under:

Apache License

If you think the Android project jive-android-core-sdk-example 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.jivesoftware.example.repositories;
/*from w  ww  .j a va2s.  c om*/
import com.jivesoftware.example.github.service.IGitHubRepoService;
import com.jivesoftware.example.github.dao.Organization;
import com.jivesoftware.example.github.dao.Repository;
import com.jivesoftware.example.listenable.TypeListenable;
import com.jivesoftware.example.utils.URLUtils;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;

import javax.inject.Inject;
import javax.inject.Singleton;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import static com.jivesoftware.example.repositories.RepositoriesModel.Type.ORGANIZATIONS_REFRESH_FAILURE;
import static com.jivesoftware.example.repositories.RepositoriesModel.Type.ORGANIZATIONS_REFRESH_SUCCESS;
import static com.jivesoftware.example.repositories.RepositoriesModel.Type.USER_REPOS_REFRESH_FAILURE;
import static com.jivesoftware.example.repositories.RepositoriesModel.Type.USER_REPOS_REFRESH_SUCCESS;

/**
 * Created by mark.schisler on 9/3/14.
 */
@Singleton
public class RepositoriesModel {
    public final TypeListenable listenable;
    private final IGitHubRepoService repoService;
    private Organization[] organizations;
    private List<Repository> repositories = new ArrayList<Repository>();

    public enum Type {
        USER_REPOS_REFRESH_SUCCESS,
        USER_REPOS_REFRESH_FAILURE,

        ORGANIZATIONS_REFRESH_SUCCESS,
        ORGANIZATIONS_REFRESH_FAILURE
    }

    @Inject
    public RepositoriesModel(IGitHubRepoService repoService, TypeListenable typeListenable) {
        this.repoService = repoService;
        this.listenable = typeListenable;
    }

    public void refreshUserRepositories() {
         repoService.getUserRepositories(new Callback<Repository[]>() {
             @Override
             public void success(Repository[] repositories, Response response) {
                 postRepositories(repositories);
             }

             @Override
             public void failure(RetrofitError error) {
                postRepositoriesFailure();
             }
         });
    }

    public void refreshOrganizations() {
        repoService.getOrganizations(new Callback<Organization[]>() {
            @Override
            public void success(Organization[] organizations, Response response) {
                RepositoriesModel.this.organizations = organizations;
                listenable.post(organizations, ORGANIZATIONS_REFRESH_SUCCESS);
                refreshOrganizationRepositories();
            }

            @Override
            public void failure(RetrofitError error) {
                listenable.post(ORGANIZATIONS_REFRESH_FAILURE);
            }
        });
    }

    private void refreshOrganizationRepositories() {
        for ( Organization organization : organizations) {
            repoService.getRepositories(URLUtils.getPath(organization.reposUrl), new Callback<Repository[]>() {
                @Override
                public void success(Repository[] repositories, Response response) {
                    postRepositories(repositories);
                }

                @Override
                public void failure(RetrofitError error) {
                    postRepositoriesFailure();
                }
            });
        }
    }

    private void postRepositories(Repository[] repositories) {
        this.repositories.addAll(Arrays.asList(repositories));
        Repository[] repositoriesCopy = new Repository[this.repositories.size()];
        this.repositories.toArray(repositoriesCopy);
        listenable.post(repositoriesCopy, USER_REPOS_REFRESH_SUCCESS);
    }

    private void postRepositoriesFailure() {
        listenable.post(USER_REPOS_REFRESH_FAILURE);
    }
}




Java Source Code List

com.jivesoftware.example.BuildConfig.java
com.jivesoftware.example.Constants.java
com.jivesoftware.example.collaborators.CollaboratorActivity.java
com.jivesoftware.example.collaborators.CollaboratorModel.java
com.jivesoftware.example.collaborators.CollaboratorPresenter.java
com.jivesoftware.example.collaborators.CollaboratorsView.java
com.jivesoftware.example.collaborators.UserView.java
com.jivesoftware.example.collaborators.UsersAdapter.java
com.jivesoftware.example.collaborators.events.CollaboratorDeleteEvent.java
com.jivesoftware.example.collaborators.events.CollaboratorSelectedEvent.java
com.jivesoftware.example.destroyer.Destroyer.java
com.jivesoftware.example.destroyer.IDestroyable.java
com.jivesoftware.example.exceptions.AuthenticationException.java
com.jivesoftware.example.exceptions.TwoFactorException.java
com.jivesoftware.example.followers.FollowersActivity.java
com.jivesoftware.example.followers.FollowersModel.java
com.jivesoftware.example.followers.FollowersPresenter.java
com.jivesoftware.example.followers.FollowersView.java
com.jivesoftware.example.followers.GitHubUsersModel.java
com.jivesoftware.example.followers.events.FollowerSelected.java
com.jivesoftware.example.followers.events.FollowersUpdate.java
com.jivesoftware.example.github.AuthenticationTokenFactory.java
com.jivesoftware.example.github.GitHubBasicAuthRequestInterceptor.java
com.jivesoftware.example.github.GitHubOauthRequestInterceptor.java
com.jivesoftware.example.github.GitHubServiceFactory.java
com.jivesoftware.example.github.authentication.GitHubAuthenticationActivity.java
com.jivesoftware.example.github.authentication.GitHubAuthenticationErrorHandler.java
com.jivesoftware.example.github.authentication.GitHubAuthenticationModel.java
com.jivesoftware.example.github.authentication.GitHubAuthenticationPresenter.java
com.jivesoftware.example.github.authentication.GitHubAuthenticationView.java
com.jivesoftware.example.github.authentication.events.GitHubLoginPressed.java
com.jivesoftware.example.github.dao.AuthorizationRequest.java
com.jivesoftware.example.github.dao.Authorization.java
com.jivesoftware.example.github.dao.GitHubList.java
com.jivesoftware.example.github.dao.Organization.java
com.jivesoftware.example.github.dao.Owner.java
com.jivesoftware.example.github.dao.Repository.java
com.jivesoftware.example.github.dao.Team.java
com.jivesoftware.example.github.dao.User.java
com.jivesoftware.example.github.service.IGitHubAuthService.java
com.jivesoftware.example.github.service.IGitHubRepoService.java
com.jivesoftware.example.github.service.IGitHubUserService.java
com.jivesoftware.example.injection.BaseModule.java
com.jivesoftware.example.jive.authentication.JiveAuthenticationActivity.java
com.jivesoftware.example.jive.authentication.JiveAuthenticationModel.java
com.jivesoftware.example.jive.authentication.JiveAuthenticationPresenter.java
com.jivesoftware.example.jive.authentication.JiveAuthenticationView.java
com.jivesoftware.example.jive.authentication.events.JiveLoginPressed.java
com.jivesoftware.example.jive.dao.JiveConnection.java
com.jivesoftware.example.jive.dao.JiveTokenProvider.java
com.jivesoftware.example.listenable.IListener.java
com.jivesoftware.example.listenable.ITypeListenable.java
com.jivesoftware.example.listenable.IValueListener.java
com.jivesoftware.example.listenable.TypeListenable.java
com.jivesoftware.example.profile.ProfileActivity.java
com.jivesoftware.example.profile.ProfileModel.java
com.jivesoftware.example.profile.ProfilePresenter.java
com.jivesoftware.example.profile.ProfileView.java
com.jivesoftware.example.profiles.ProfilesModel.java
com.jivesoftware.example.profiles.ProfilesPresenter.java
com.jivesoftware.example.profiles.ProfilesView.java
com.jivesoftware.example.profiles.events.GitHubProfileEvent.java
com.jivesoftware.example.profiles.events.JiveProfileEvent.java
com.jivesoftware.example.repositories.RepositoriesActivity.java
com.jivesoftware.example.repositories.RepositoriesModel.java
com.jivesoftware.example.repositories.RepositoriesPresenter.java
com.jivesoftware.example.repositories.RepositoriesView.java
com.jivesoftware.example.repositories.RepositoryAdapter.java
com.jivesoftware.example.repositories.RepositoryView.java
com.jivesoftware.example.team.TeamCollaboratorsActivity.java
com.jivesoftware.example.team.TeamCollaboratorsModel.java
com.jivesoftware.example.team.TeamCollaboratorsPresenter.java
com.jivesoftware.example.team.TeamCollaboratorsView.java
com.jivesoftware.example.team.events.TeamCollaboratorLongPressed.java
com.jivesoftware.example.team.events.TeamCollaboratorPressed.java
com.jivesoftware.example.team.events.TeamCollaborators.java
com.jivesoftware.example.teams.TeamView.java
com.jivesoftware.example.teams.TeamsActivity.java
com.jivesoftware.example.teams.TeamsAdapter.java
com.jivesoftware.example.teams.TeamsModel.java
com.jivesoftware.example.teams.TeamsPresenter.java
com.jivesoftware.example.teams.TeamsView.java
com.jivesoftware.example.teams.events.TeamPressed.java
com.jivesoftware.example.utils.ActivityLauncher.java
com.jivesoftware.example.utils.AuthenticatedDownloader.java
com.jivesoftware.example.utils.AuthorizationReset.java
com.jivesoftware.example.utils.BackgroundRunner.java
com.jivesoftware.example.utils.BackgroundThread.java
com.jivesoftware.example.utils.IntentExtraNames.java
com.jivesoftware.example.utils.IntentUtils.java
com.jivesoftware.example.utils.JivePicasso.java
com.jivesoftware.example.utils.Joiner.java
com.jivesoftware.example.utils.PersistedKeyValueStore.java
com.jivesoftware.example.utils.ToastMaker.java
com.jivesoftware.example.utils.URLUtils.java