diff options
| author | Mohamed Zenadi <zeapo@users.noreply.github.com> | 2015-01-04 21:49:56 +0100 |
|---|---|---|
| committer | Mohamed Zenadi <zeapo@users.noreply.github.com> | 2015-01-04 21:49:56 +0100 |
| commit | df8994d84f3923ba64cb36ecdad54aa29e28f2a0 (patch) | |
| tree | 7eb85fa141183222ca565cb8ee6d5c977cd88729 /app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java | |
| parent | 33689cefc7a429e4f51607a013f6adc9c01ede94 (diff) | |
| parent | 6922652173e05433bb9524b036baafb96c91ca1b (diff) | |
| download | HardenedPass-df8994d84f3923ba64cb36ecdad54aa29e28f2a0.tar.gz HardenedPass-df8994d84f3923ba64cb36ecdad54aa29e28f2a0.zip | |
Merge pull request #57 from zeapo/feature/refactor-git
Refactoring of the git process
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java b/app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java new file mode 100644 index 00000000..dc94ce3b --- /dev/null +++ b/app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java @@ -0,0 +1,67 @@ +package com.zeapo.pwdstore.git; + +import android.app.Activity; + +import org.eclipse.jgit.api.CloneCommand; +import org.eclipse.jgit.api.Git; + +import java.io.File; + +public class CloneOperation extends GitOperation { + private static final String TAG = "CLONEOPT"; + + /** + * Creates a new clone operation + * @param fileDir the git working tree directory + * @param callingActivity the calling activity + */ + public CloneOperation(File fileDir, Activity callingActivity) { + super(fileDir, callingActivity); + } + + /** + * Sets the command using the repository uri + * @param uri the uri of the repository + * @return the current object + */ + public CloneOperation setCommand(String uri) { + this.command = Git.cloneRepository(). + setCloneAllBranches(true). + setDirectory(repository.getWorkTree()). + setURI(uri); + return this; + } + + /** + * sets the authentication for user/pwd scheme + * @param username the username + * @param password the password + * @return the current object + */ + @Override + public CloneOperation setAuthentication(String username, String password) { + super.setAuthentication(username, password); + return this; + } + + /** + * sets the authentication for the ssh-key scheme + * @param sshKey the ssh-key file + * @param username the username + * @param passphrase the passphrase + * @return the current object + */ + @Override + public CloneOperation setAuthentication(File sshKey, String username, String passphrase) { + super.setAuthentication(sshKey, username, passphrase); + return this; + } + + @Override + public void execute() throws Exception { + if (this.provider != null) { + ((CloneCommand) this.command).setCredentialsProvider(this.provider); + } + new GitAsyncTask(callingActivity, true, false, CloneCommand.class).execute(this.command); + } +} |
