diff options
| author | Mohamed Zenadi <mohamed@zenadi.com> | 2015-04-19 20:27:30 +0200 |
|---|---|---|
| committer | Mohamed Zenadi <mohamed@zenadi.com> | 2015-04-19 20:27:30 +0200 |
| commit | 771d8a9415831b5d6fe9cebf574fbf7e5eacd373 (patch) | |
| tree | 3c74a84dce73e1e19b93839b803f509feabe36df /app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java | |
| parent | 6983ef4f82a85cae1e7f83638ce2f5ec37e96ef0 (diff) | |
| download | HardenedPass-771d8a9415831b5d6fe9cebf574fbf7e5eacd373.tar.gz HardenedPass-771d8a9415831b5d6fe9cebf574fbf7e5eacd373.zip | |
Add a Sync command that calls Pull then Push
Fixes #78
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java b/app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java new file mode 100644 index 00000000..9351cc1b --- /dev/null +++ b/app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java @@ -0,0 +1,50 @@ +package com.zeapo.pwdstore.git; + +import android.app.Activity; + +import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.api.PullCommand; +import org.eclipse.jgit.api.PushCommand; + +import java.io.File; + +public class SyncOperation extends GitOperation { + protected PullCommand pullCommand; + protected PushCommand pushCommand; + + /** + * Creates a new git operation + * + * @param fileDir the git working tree directory + * @param callingActivity the calling activity + */ + public SyncOperation(File fileDir, Activity callingActivity) { + super(fileDir, callingActivity); + } + + /** + * Sets the command + * @return the current object + */ + public SyncOperation setCommands() { + this.pullCommand = new Git(repository) + .pull() + .setRebase(true) + .setRemote("origin"); + this.pushCommand = new Git(repository) + .push() + .setPushAll() + .setRemote("origin"); + return this; + } + + @Override + public void execute() throws Exception { + + if (this.provider != null) { + this.pullCommand.setCredentialsProvider(this.provider); + this.pushCommand.setCredentialsProvider(this.provider); + } + new GitAsyncTask(callingActivity, true, false, PullCommand.class).execute(this.pullCommand, this.pushCommand); + } +} |
