aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/git/ResetToRemoteOperation.kt
diff options
context:
space:
mode:
authorHarsh Shandilya <msfjarvis@gmail.com>2019-10-01 22:14:28 +0530
committerGitHub <noreply@github.com>2019-10-01 22:14:28 +0530
commit073346c157ec34b750d175c8543f346e6eae94de (patch)
treea55d24ef43563f3a2d03d7938a1e96c1f5cd1caf /app/src/main/java/com/zeapo/pwdstore/git/ResetToRemoteOperation.kt
parentc9dc4034f12b62f4470f92fb13ecd72871f4a5b7 (diff)
downloadHardenedPass-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.kt52
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()
+ }
+}