diff options
| author | zeapo <mohamed@zenadi.com> | 2017-08-10 14:19:24 +0200 |
|---|---|---|
| committer | zeapo <mohamed@zenadi.com> | 2017-08-10 14:19:24 +0200 |
| commit | 24a77b90284ee6a0832245c7f8d1d432b9db3710 (patch) | |
| tree | 44ffcc402cd6c6dc3737267565e1c18539629ed1 /app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java | |
| parent | d284e292377e152768c264a807325f98206312ae (diff) | |
| download | HardenedPass-24a77b90284ee6a0832245c7f8d1d432b9db3710.tar.gz HardenedPass-24a77b90284ee6a0832245c7f8d1d432b9db3710.zip | |
detect error during push
fix #280
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.java | 26 |
1 files changed, 26 insertions, 0 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 26af4c89..a42e5d78 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java @@ -10,7 +10,10 @@ import com.zeapo.pwdstore.R; import org.eclipse.jgit.api.CommitCommand; import org.eclipse.jgit.api.GitCommand; +import org.eclipse.jgit.api.PushCommand; import org.eclipse.jgit.api.StatusCommand; +import org.eclipse.jgit.transport.PushResult; +import org.eclipse.jgit.transport.RemoteRefUpdate; public class GitAsyncTask extends AsyncTask<GitCommand, Integer, String> { @@ -49,6 +52,29 @@ public class GitAsyncTask extends AsyncTask<GitCommand, Integer, String> { // the previous status will eventually be used to avoid a commit if (nbChanges == null || nbChanges > 0) command.call(); + }else if (command instanceof PushCommand) { + for (final PushResult result : ((PushCommand) command).call()) { + // Code imported (modified) from Gerrit PushOp, license Apache v2 + for (final RemoteRefUpdate rru : result.getRemoteUpdates()) { + switch (rru.getStatus()) { + case REJECTED_NONFASTFORWARD: + return activity.getString(R.string.git_push_nff_error); + case REJECTED_NODELETE: + case REJECTED_REMOTE_CHANGED: + case NON_EXISTING: + case NOT_ATTEMPTED: + return activity.getString(R.string.git_push_generic_error) + rru.getStatus().name(); + case REJECTED_OTHER_REASON: + if ("non-fast-forward".equals(rru.getMessage())) { + return activity.getString(R.string.git_push_other_error); + } else { + return activity.getString(R.string.git_push_generic_error) + rru.getMessage(); + } + default: + break; + } + } + } } else { command.call(); } |
