Android Open Source - jive-android-core-sdk-example Collaborator 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.collaborators;
/*from   www.  j a va  2  s .  c  o m*/
import com.jivesoftware.example.github.dao.Repository;
import com.jivesoftware.example.github.dao.User;
import com.jivesoftware.example.github.service.IGitHubRepoService;
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.collaborators.CollaboratorModel.Type.COLLABORATOR_DELETE_SUCCESS;
import static com.jivesoftware.example.collaborators.CollaboratorModel.Type.COLLABORATOR_REFRESH_FAILURE;
import static com.jivesoftware.example.collaborators.CollaboratorModel.Type.COLLABORATOR_REFRESH_SUCCESS;

/**
 * Created by mark.schisler on 9/22/14.
 */
@Singleton
public class CollaboratorModel {
    public final TypeListenable listenable;
    private final IGitHubRepoService repoService;
    private List<User> users;
    private String repositoryPath;

    public enum Type {
        COLLABORATOR_REFRESH_SUCCESS,
        COLLABORATOR_REFRESH_FAILURE,
        COLLABORATOR_DELETE_SUCCESS,
        COLLABORATOR_DELETE_FAILURE
    }

    @Inject
    public CollaboratorModel(IGitHubRepoService repoService, Repository repository, TypeListenable typeListenable) {
        this.listenable = typeListenable;
        this.repoService = repoService;
        this.repositoryPath = URLUtils.getPath(repository.url);
    }

    public void refresh() {
        repoService.getCollaborators(repositoryPath, new Callback<User[]>() {
            @Override
            public void success(User[] users, Response response) {
                CollaboratorModel.this.users = new ArrayList<User>(Arrays.asList(users));
                listenable.post(users, COLLABORATOR_REFRESH_SUCCESS);
            }

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

    public void deleteCollaborator(long id) {
        for ( User user : users){
            if ( Long.valueOf(user.id).equals(id)) {
                repoService.deleteCollaborator(repositoryPath,user.login, new Callback<Void>() {
                    @Override
                    public void success(Void aVoid, Response response) {
                        listenable.post(getUsersAsArray(), COLLABORATOR_REFRESH_SUCCESS);
                        listenable.post(COLLABORATOR_DELETE_SUCCESS);
                    }

                    @Override
                    public void failure(RetrofitError error) {
                        listenable.post(COLLABORATOR_DELETE_SUCCESS);
                    }
                });
                users.remove(user);
                break;
            }
        }
    }

    private User[] getUsersAsArray() {
        User[] usersCopy = new User[users.size()];
        users.toArray(usersCopy);
        return usersCopy;
    }
}




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