aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java
diff options
context:
space:
mode:
authorMohamed Zenadi <mohamed@zenadi.com>2017-03-27 22:47:33 +0200
committerMohamed Zenadi <mohamed@zenadi.com>2017-03-27 22:47:33 +0200
commit824845bf41227c9ee0891f6d0299efe0f067ce00 (patch)
tree99570fbcde21a737b635ae54e64a8fedaa8d0f8e /app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java
parentd888e5e2f25ca1308a5a34a17b5c585edeb30881 (diff)
downloadHardenedPass-824845bf41227c9ee0891f6d0299efe0f067ce00.tar.gz
HardenedPass-824845bf41227c9ee0891f6d0299efe0f067ce00.zip
fix git rm and sync
fixes #276 fixes #283
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java b/app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java
index 42984338..f2e689d9 100644
--- a/app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java
+++ b/app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java
@@ -7,7 +7,9 @@ import android.os.AsyncTask;
import com.zeapo.pwdstore.PasswordStore;
import com.zeapo.pwdstore.R;
+import org.eclipse.jgit.api.CommitCommand;
import org.eclipse.jgit.api.GitCommand;
+import org.eclipse.jgit.api.StatusCommand;
public class GitAsyncTask extends AsyncTask<GitCommand, Integer, String> {
@@ -33,10 +35,21 @@ public class GitAsyncTask extends AsyncTask<GitCommand, Integer, String> {
}
@Override
- protected String doInBackground(GitCommand... cmd) {
- for (GitCommand aCmd : cmd) {
+ protected String doInBackground(GitCommand... commands) {
+ Integer nbChanges = null;
+ for (GitCommand command : commands) {
try {
- aCmd.call();
+ if (command instanceof StatusCommand) {
+ // in case we have changes, we want to keep track of it
+ nbChanges = ((StatusCommand) command).call().getChanged().size();
+ } else if (command instanceof CommitCommand) {
+ // the previous status will eventually be used to avoid a commit
+ if (nbChanges == null || nbChanges > 0)
+ command.call();
+ } else {
+ command.call();
+ }
+
} catch (Exception e) {
e.printStackTrace();
return e.getMessage() + "\nCaused by:\n" + e.getCause();
@@ -49,8 +62,7 @@ public class GitAsyncTask extends AsyncTask<GitCommand, Integer, String> {
if (this.dialog != null)
try {
this.dialog.dismiss();
- } catch (Exception e)
- {
+ } catch (Exception e) {
// ignore
}