Android Open Source - PrincePolo Request All Commits For Branch






From Project

Back to project page PrincePolo.

License

The source code is released under:

GNU General Public License

If you think the Android project PrincePolo 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 se.agile.asynctasks;
//from   w  w w.j  a  v a 2s  . com
import java.util.ArrayList;

import se.agile.githubdata.Branch;
import se.agile.githubdata.Commit;
import android.util.Log;

public class RequestAllCommitsForBranch{
  
  private RequestBranches reqBranches;
  private RequestListener<ArrayList<Commit>> listener;
  private ArrayList<Commit> commitList = new ArrayList<Commit>();
  private ArrayList<String> shaList = new ArrayList<String>();
  private String logTag = "PrincePolo";
  private int numberOfThreads = 0;
  
  private RequestListener<Commit> getCommitListener(){
    RequestListener<Commit> commitListener = new RequestListenerAdapter<Commit>() {
      
      @Override
      public void whenNoSelectedRepository() {
        listener.whenNoSelectedRepository();
      }
      
      @Override
      public void whenNoInternetConnection() {
        listener.whenNoInternetConnection();
      }
      
      @Override
      public synchronized void requestFinished(Commit commit) {
        if(commit != null){
          numberOfThreads--;
          commitList.add(commit);
          listener.requestUpdate();
          ArrayList<Commit> parentCommitsList = commit.getParentList();
          if(parentCommitsList.size() > 0){
            for(Commit com : parentCommitsList){
              if(!shaList.contains(com.getSha())){
                shaList.add(com.getSha());
                numberOfThreads++;
                RequestShortCommit reqCommitList = new RequestShortCommit(getCommitListener());
                reqCommitList.execute(com.getSha(),commit.getBranchName());
              }
            }
          }
          Log.d(logTag,"Number of threads " + numberOfThreads);
          if(numberOfThreads < 1){
            listener.requestFinished(commitList);
          }
        }
      }
    };
    return commitListener;
  }
  
  public RequestAllCommitsForBranch(final RequestListener<ArrayList<Commit>> listener, String branchname){
    this.listener = listener;
    final String branchNameFinal = branchname;
    
    RequestListener<ArrayList<Branch>> branchListener = new RequestListenerAdapter<ArrayList<Branch>>() {
      
      @Override
      public void whenNoSelectedRepository() {
        listener.whenNoSelectedRepository();        
      }
      
      @Override
      public void whenNoInternetConnection() {
        listener.whenNoInternetConnection();
        
      }
      
      @Override
      public void requestFinished(ArrayList<Branch> branchList) {
        if(branchList != null){
          for(Branch branch : branchList){
            if(branch.getName().equals(branchNameFinal)){
              numberOfThreads++;
              RequestShortCommit reqCommit = new RequestShortCommit(getCommitListener());
              reqCommit.execute(branch.getLatestCommit().getSha(),branch.getName());
              break;
            }
          }
        }
      }
    };
    
    reqBranches = new RequestBranches(branchListener);
    reqBranches.execute();
  }
  
  public ArrayList<Commit> getResult(){
    if(commitList.size() < 1){
      Log.i("PrincePolo", "No commits recieved for branch");
    }
    return this.commitList;
  }
}




Java Source Code List

se.agile.activities.AboutFragment.java
se.agile.activities.BranchFragment.java
se.agile.activities.BranchesFragment.java
se.agile.activities.CardFragment.java
se.agile.activities.CollaboratorsFragment.java
se.agile.activities.CommitFragment.java
se.agile.activities.ConflictFragment.java
se.agile.activities.ConnectToGitHubFragment.java
se.agile.activities.LoginActivity.java
se.agile.activities.MainActivity.java
se.agile.activities.NotificationFragmentSwitcher.java
se.agile.activities.NotificationsFragment.java
se.agile.activities.PersonalNotesFragment.java
se.agile.activities.PokerFragment.java
se.agile.activities.RepositoryOverviewFragment.java
se.agile.activities.SelectRepositoryFragment.java
se.agile.activities.SelectWorkingFilesActivity.java
se.agile.activities.SelectWorkingFilesFragment.java
se.agile.activities.SelectWorkingFilesOverviewFragment.java
se.agile.activities.SettingsFragment.java
se.agile.activities.SignOutFragment.java
se.agile.asynctasks.RequestAccessToken.java
se.agile.asynctasks.RequestAllCommitsForBranch.java
se.agile.asynctasks.RequestAllFilesForBranch.java
se.agile.asynctasks.RequestBranch.java
se.agile.asynctasks.RequestBranches.java
se.agile.asynctasks.RequestFiles.java
se.agile.asynctasks.RequestFullCommit.java
se.agile.asynctasks.RequestListenerAdapter.java
se.agile.asynctasks.RequestListener.java
se.agile.asynctasks.RequestRepositories.java
se.agile.asynctasks.RequestShortCommit.java
se.agile.asynctasks.RequestTask.java
se.agile.asynctasks.RequestUser.java
se.agile.controller.MainActivityController.java
se.agile.controller.settingsFragmentController.java
se.agile.githubdata.Branch.java
se.agile.githubdata.Commit.java
se.agile.githubdata.Directory.java
se.agile.githubdata.File.java
se.agile.githubdata.Folder.java
se.agile.githubdata.GitHubDataInterface.java
se.agile.githubdata.Repository.java
se.agile.githubdata.User.java
se.agile.model.BranchNotification.java
se.agile.model.BranchSelectionModel.java
se.agile.model.CommitNotification.java
se.agile.model.ConflictNotification.java
se.agile.model.CreateNotificationActivity.java
se.agile.model.DirectoryListArrayAdapter.java
se.agile.model.InteractiveArrayAdapter.java
se.agile.model.JSONParser.java
se.agile.model.NotificationDialog.java
se.agile.model.NotificationHandler.java
se.agile.model.NotificationListArrayAdapter.java
se.agile.model.NotificationListener.java
se.agile.model.Notification.java
se.agile.model.PreferenceListener.java
se.agile.model.Preferences.java
se.agile.model.TemporaryStorage.java
se.agile.model.Tuple.java
se.agile.model.WorkingFileListArrayAdapter.java
se.agile.navigator.NavDrawerItem.java
se.agile.navigator.NavDrawerListAdapter.java