diff options
| author | zeapo <mohamed@zenadi.com> | 2017-06-05 14:30:19 +0200 |
|---|---|---|
| committer | zeapo <mohamed@zenadi.com> | 2017-06-05 14:30:19 +0200 |
| commit | bbd7f661918fa2a96c7c2f2d954c0a10dc24ce9b (patch) | |
| tree | dde5a4a11e76893a2675c6e95c41724504bb51e2 /app/src/main/java/com/zeapo/pwdstore/git | |
| parent | 3a5a322bfa54d2b520cfb2ff9dfc03bdea55c23b (diff) | |
| download | HardenedPass-bbd7f661918fa2a96c7c2f2d954c0a10dc24ce9b.tar.gz HardenedPass-bbd7f661918fa2a96c7c2f2d954c0a10dc24ce9b.zip | |
add autoSync on startup
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/git')
7 files changed, 43 insertions, 30 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 index 25dba1fc..03c35c23 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java @@ -66,7 +66,7 @@ public class CloneOperation extends GitOperation { } @Override - public void execute() { + public void execute(boolean finishOnEnd) { if (this.provider != null) { ((CloneCommand) this.command).setCredentialsProvider(this.provider); } diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java b/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java index 66e308b9..5d72cd34 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java @@ -536,7 +536,7 @@ public class GitActivity extends AppCompatActivity { try { new CloneOperation(localDir, activity) .setCommand(hostname) - .executeAfterAuthentication(connectionMode, settings.getString("git_remote_username", "git"), new File(getFilesDir() + "/.ssh_key")); + .executeAfterAuthentication(connectionMode, settings.getString("git_remote_username", "git"), new File(getFilesDir() + "/.ssh_key"), true); } catch (Exception e) { //This is what happens when jgit fails :( //TODO Handle the diffent cases of exceptions @@ -574,7 +574,7 @@ public class GitActivity extends AppCompatActivity { } new CloneOperation(localDir, activity) .setCommand(hostname) - .executeAfterAuthentication(connectionMode, settings.getString("git_remote_username", "git"), new File(getFilesDir() + "/.ssh_key")); + .executeAfterAuthentication(connectionMode, settings.getString("git_remote_username", "git"), new File(getFilesDir() + "/.ssh_key"), true); } catch (Exception e) { //This is what happens when jgit fails :( //TODO Handle the diffent cases of exceptions @@ -632,7 +632,7 @@ public class GitActivity extends AppCompatActivity { } try { - op.executeAfterAuthentication(connectionMode, settings.getString("git_remote_username", "git"), new File(getFilesDir() + "/.ssh_key")); + op.executeAfterAuthentication(connectionMode, settings.getString("git_remote_username", "git"), new File(getFilesDir() + "/.ssh_key"), true); } catch (Exception e) { e.printStackTrace(); } @@ -674,7 +674,7 @@ public class GitActivity extends AppCompatActivity { } try { - op.executeAfterAuthentication(connectionMode, settings.getString("git_remote_username", "git"), new File(getFilesDir() + "/.ssh_key")); + op.executeAfterAuthentication(connectionMode, settings.getString("git_remote_username", "git"), new File(getFilesDir() + "/.ssh_key"), true); } catch (Exception e) { e.printStackTrace(); } 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 6b0edb7a..644d3c6b 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitAsyncTask.java @@ -3,7 +3,10 @@ package com.zeapo.pwdstore.git; import android.app.Activity; import android.app.ProgressDialog; import android.os.AsyncTask; +import android.support.design.widget.Snackbar; +import android.text.Html; import android.util.Log; +import android.widget.Toast; import com.zeapo.pwdstore.PasswordStore; import com.zeapo.pwdstore.R; @@ -13,26 +16,35 @@ import org.eclipse.jgit.api.GitCommand; import org.eclipse.jgit.api.StatusCommand; -public class GitAsyncTask extends AsyncTask<GitCommand, Integer, String> { +public class GitAsyncTask extends AsyncTask<GitCommand, String, String> { private Activity activity; private boolean finishOnEnd; private boolean refreshListOnEnd; private ProgressDialog dialog; private GitOperation operation; + private Snackbar snack; public GitAsyncTask(Activity activity, boolean finishOnEnd, boolean refreshListOnEnd, GitOperation operation) { this.activity = activity; this.finishOnEnd = finishOnEnd; this.refreshListOnEnd = refreshListOnEnd; this.operation = operation; - - dialog = new ProgressDialog(this.activity); } protected void onPreExecute() { - this.dialog.setMessage(activity.getResources().getString(R.string.running_dialog_text)); - this.dialog.setCancelable(false); - this.dialog.show(); +// Toast.makeText(activity.getApplicationContext(), String.format("Running %s", operation.toString()), Toast.LENGTH_LONG).show(); + snack = Snackbar.make(activity.findViewById(R.id.main_layout), + Html.fromHtml(String.format("<font color=\"#ffffff\">Running the Git operation %s</font>", operation.toString())), + Snackbar.LENGTH_INDEFINITE); + snack.show(); + } + + protected void onProgressUpdate(String... progress) { + if (this.snack != null) snack.dismiss(); + snack = Snackbar.make(activity.findViewById(R.id.main_layout), + Html.fromHtml(String.format("<font color=\"#ffffff\">Running: <strong>%s</strong></font>", progress[0])), + Snackbar.LENGTH_INDEFINITE); + snack.show(); } @Override @@ -51,7 +63,7 @@ public class GitAsyncTask extends AsyncTask<GitCommand, Integer, String> { } else { command.call(); } - + publishProgress(command.getClass().getName()); } catch (Exception e) { e.printStackTrace(); return e.getMessage() + "\nCaused by:\n" + e.getCause(); @@ -61,9 +73,9 @@ public class GitAsyncTask extends AsyncTask<GitCommand, Integer, String> { } protected void onPostExecute(String result) { - if (this.dialog != null) + if (this.snack != null) try { - this.dialog.dismiss(); + this.snack.dismiss(); } catch (Exception e) { // ignore } diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.java b/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.java index f6b05f4c..5a206f0c 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.java @@ -76,29 +76,30 @@ public abstract class GitOperation { /** * Executes the GitCommand in an async task + * @param finishOnEnd */ - public abstract void execute(); + public abstract void execute(boolean finishOnEnd); /** * Executes the GitCommand in an async task after creating the authentication - * - * @param connectionMode the server-connection mode + * @param connectionMode the server-connection mode * @param username the username * @param sshKey the ssh-key file + * @param finishOnEnd */ - public void executeAfterAuthentication(final String connectionMode, final String username, @Nullable final File sshKey) { - executeAfterAuthentication(connectionMode, username, sshKey, false); + public void executeAfterAuthentication(final String connectionMode, final String username, @Nullable final File sshKey, boolean finishOnEnd) { + executeAfterAuthentication(connectionMode, username, sshKey, false, finishOnEnd); } /** * Executes the GitCommand in an async task after creating the authentication - * - * @param connectionMode the server-connection mode + * @param connectionMode the server-connection mode * @param username the username * @param sshKey the ssh-key file * @param showError show the passphrase edit text in red + * @param finishOnEnd */ - private void executeAfterAuthentication(final String connectionMode, final String username, @Nullable final File sshKey, final boolean showError) { + private void executeAfterAuthentication(final String connectionMode, final String username, @Nullable final File sshKey, final boolean showError, final boolean finishOnEnd) { if (connectionMode.equalsIgnoreCase("ssh-key")) { if (sshKey == null || !sshKey.exists()) { new AlertDialog.Builder(callingActivity) @@ -161,10 +162,10 @@ public abstract class GitOperation { public void onClick(DialogInterface dialog, int whichButton) { if (keyPair.decrypt(passphrase.getText().toString())) { // Authenticate using the ssh-key and then execute the command - setAuthentication(sshKey, username, passphrase.getText().toString()).execute(); + setAuthentication(sshKey, username, passphrase.getText().toString()).execute(finishOnEnd); } else { // call back the method - executeAfterAuthentication(connectionMode, username, sshKey, true); + executeAfterAuthentication(connectionMode, username, sshKey, true, finishOnEnd); } } }).setNegativeButton(callingActivity.getResources().getString(R.string.dialog_cancel), new DialogInterface.OnClickListener() { @@ -173,7 +174,7 @@ public abstract class GitOperation { } }).show(); } else { - setAuthentication(sshKey, username, "").execute(); + setAuthentication(sshKey, username, "").execute(finishOnEnd); } } catch (JSchException e) { new AlertDialog.Builder(callingActivity) @@ -200,7 +201,7 @@ public abstract class GitOperation { .setPositiveButton(callingActivity.getResources().getString(R.string.dialog_ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { // authenticate using the user/pwd and then execute the command - setAuthentication(username, password.getText().toString()).execute(); + setAuthentication(username, password.getText().toString()).execute(finishOnEnd); } }).setNegativeButton(callingActivity.getResources().getString(R.string.dialog_cancel), new DialogInterface.OnClickListener() { diff --git a/app/src/main/java/com/zeapo/pwdstore/git/PullOperation.java b/app/src/main/java/com/zeapo/pwdstore/git/PullOperation.java index 6ca8bf49..a5422cb4 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/PullOperation.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/PullOperation.java @@ -36,7 +36,7 @@ public class PullOperation extends GitOperation { } @Override - public void execute() { + public void execute(boolean finishOnEnd) { if (this.provider != null) { ((PullCommand) this.command).setCredentialsProvider(this.provider); } diff --git a/app/src/main/java/com/zeapo/pwdstore/git/PushOperation.java b/app/src/main/java/com/zeapo/pwdstore/git/PushOperation.java index 2774af90..afe058f0 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/PushOperation.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/PushOperation.java @@ -36,7 +36,7 @@ public class PushOperation extends GitOperation { } @Override - public void execute() { + public void execute(boolean finishOnEnd) { if (this.provider != null) { ((PushCommand) this.command).setCredentialsProvider(this.provider); } diff --git a/app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java b/app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java index cc82b9b3..128713e9 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java @@ -48,12 +48,12 @@ public class SyncOperation extends GitOperation { } @Override - public void execute() { + public void execute(boolean finishOnEnd) { if (this.provider != null) { this.pullCommand.setCredentialsProvider(this.provider); this.pushCommand.setCredentialsProvider(this.provider); } - new GitAsyncTask(callingActivity, true, false, this).execute(this.addCommand, this.statusCommand, this.commitCommand, this.pullCommand, this.pushCommand); + new GitAsyncTask(callingActivity, finishOnEnd, false, this).execute(this.addCommand, this.statusCommand, this.commitCommand, this.pullCommand, this.pushCommand); } @Override |
