diff options
| author | Harsh Shandilya <msfjarvis@gmail.com> | 2019-10-01 22:14:28 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-10-01 22:14:28 +0530 |
| commit | 073346c157ec34b750d175c8543f346e6eae94de (patch) | |
| tree | a55d24ef43563f3a2d03d7938a1e96c1f5cd1caf /app/src/main/java/com/zeapo/pwdstore/git/ResetToRemoteOperation.kt | |
| parent | c9dc4034f12b62f4470f92fb13ecd72871f4a5b7 (diff) | |
| download | HardenedPass-073346c157ec34b750d175c8543f346e6eae94de.tar.gz HardenedPass-073346c157ec34b750d175c8543f346e6eae94de.zip | |
Redesign UI and introduce dark theme (#519)
Caveats:
- The openpgp preference had to be removed because the open-intents developers are too lazy to update their libraries. Over the coming weeks I will be reimplementing a local solution for this instead.
- The autofill dialog is broken but I since it is being worked on in #410 already I'm not going to bother fixing it.
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/git/ResetToRemoteOperation.kt')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/git/ResetToRemoteOperation.kt | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/ResetToRemoteOperation.kt b/app/src/main/java/com/zeapo/pwdstore/git/ResetToRemoteOperation.kt new file mode 100644 index 00000000..1bab0981 --- /dev/null +++ b/app/src/main/java/com/zeapo/pwdstore/git/ResetToRemoteOperation.kt @@ -0,0 +1,52 @@ +package com.zeapo.pwdstore.git + +import android.app.Activity +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.zeapo.pwdstore.R +import org.eclipse.jgit.api.AddCommand +import org.eclipse.jgit.api.FetchCommand +import org.eclipse.jgit.api.Git +import org.eclipse.jgit.api.ResetCommand +import java.io.File + +/** + * Creates a new git operation + * + * @param fileDir the git working tree directory + * @param callingActivity the calling activity + */ +class ResetToRemoteOperation(fileDir: File, callingActivity: Activity) : GitOperation(fileDir, callingActivity) { + private var addCommand: AddCommand? = null + private var fetchCommand: FetchCommand? = null + private var resetCommand: ResetCommand? = null + + /** + * Sets the command + * + * @return the current object + */ + fun setCommands(): ResetToRemoteOperation { + val git = Git(repository) + this.addCommand = git.add().addFilepattern(".") + this.fetchCommand = git.fetch().setRemote("origin") + this.resetCommand = git.reset().setRef("origin/master").setMode(ResetCommand.ResetType.HARD) + return this + } + + override fun execute() { + this.fetchCommand?.setCredentialsProvider(this.provider) + GitAsyncTask(callingActivity, true, false, this) + .execute(this.addCommand, this.fetchCommand, this.resetCommand) + } + + override fun onError(errorMessage: String) { + MaterialAlertDialogBuilder(callingActivity) + .setTitle(callingActivity.resources.getString(R.string.jgit_error_dialog_title)) + .setMessage("Error occured during the sync operation, " + + "\nPlease check the FAQ for possible reasons why this error might occur." + + callingActivity.resources.getString(R.string.jgit_error_dialog_text) + + errorMessage) + .setPositiveButton(callingActivity.resources.getString(R.string.dialog_ok)) { _, _ -> } + .show() + } +} |
