diff options
| author | Harsh Shandilya <msfjarvis@gmail.com> | 2020-10-23 15:23:47 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-23 15:23:47 +0530 |
| commit | 66b31f1432a1405143323f92ca7e33d6c98ee0a2 (patch) | |
| tree | 492be417c235bc4d5c7492504cc4f5c93e78a2ac /app/src/main/java/com/zeapo/pwdstore/git/operation | |
| parent | 4e22df02faf8dee4a160bb8b81bec1c9418e2e01 (diff) | |
| download | HardenedPass-66b31f1432a1405143323f92ca7e33d6c98ee0a2.tar.gz HardenedPass-66b31f1432a1405143323f92ca7e33d6c98ee0a2.zip | |
Workaround AndroidX lifecycle requirements in OpenKeychain auth (#1168)
* Workaround AndroidX lifecycle requirements in OpenKeychain auth
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* CHANGELOG: add OpenKeychain fix
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/git/operation')
7 files changed, 18 insertions, 16 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/operation/BreakOutOfDetached.kt b/app/src/main/java/com/zeapo/pwdstore/git/operation/BreakOutOfDetached.kt index 6c7fee3a..f7759ada 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/operation/BreakOutOfDetached.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/operation/BreakOutOfDetached.kt @@ -4,12 +4,12 @@ */ package com.zeapo.pwdstore.git.operation -import androidx.appcompat.app.AppCompatActivity import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.zeapo.pwdstore.R +import com.zeapo.pwdstore.git.sshj.ContinuationContainerActivity import org.eclipse.jgit.api.RebaseCommand -class BreakOutOfDetached(callingActivity: AppCompatActivity) : GitOperation(callingActivity) { +class BreakOutOfDetached(callingActivity: ContinuationContainerActivity) : GitOperation(callingActivity) { override val commands = arrayOf( // abort the rebase diff --git a/app/src/main/java/com/zeapo/pwdstore/git/operation/CloneOperation.kt b/app/src/main/java/com/zeapo/pwdstore/git/operation/CloneOperation.kt index 256437a8..2a94a283 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/operation/CloneOperation.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/operation/CloneOperation.kt @@ -4,7 +4,7 @@ */ package com.zeapo.pwdstore.git.operation -import androidx.appcompat.app.AppCompatActivity +import com.zeapo.pwdstore.git.sshj.ContinuationContainerActivity import org.eclipse.jgit.api.Git import org.eclipse.jgit.api.GitCommand @@ -14,7 +14,7 @@ import org.eclipse.jgit.api.GitCommand * @param uri URL to clone the repository from * @param callingActivity the calling activity */ -class CloneOperation(callingActivity: AppCompatActivity, uri: String) : GitOperation(callingActivity) { +class CloneOperation(callingActivity: ContinuationContainerActivity, uri: String) : GitOperation(callingActivity) { override val commands: Array<GitCommand<out Any>> = arrayOf( Git.cloneRepository().setBranch(remoteBranch).setDirectory(repository.workTree).setURI(uri), diff --git a/app/src/main/java/com/zeapo/pwdstore/git/operation/GitOperation.kt b/app/src/main/java/com/zeapo/pwdstore/git/operation/GitOperation.kt index d7ff7c4c..491feaf0 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/operation/GitOperation.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/operation/GitOperation.kt @@ -19,6 +19,7 @@ import com.zeapo.pwdstore.UserPreference import com.zeapo.pwdstore.git.GitCommandExecutor import com.zeapo.pwdstore.git.config.AuthMode import com.zeapo.pwdstore.git.config.GitSettings +import com.zeapo.pwdstore.git.sshj.ContinuationContainerActivity import com.zeapo.pwdstore.git.sshj.SshAuthMethod import com.zeapo.pwdstore.git.sshj.SshKey import com.zeapo.pwdstore.git.sshj.SshjSessionFactory @@ -55,6 +56,7 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) { protected val repository = PasswordRepository.getRepository(null)!! protected val git = Git(repository) protected val remoteBranch = GitSettings.branch + private val authActivity get() = callingActivity as ContinuationContainerActivity private class HttpsCredentialsProvider(private val passwordFinder: PasswordFinder) : CredentialsProvider() { @@ -154,7 +156,7 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) { } when (result) { is BiometricAuthenticator.Result.Success -> { - registerAuthProviders(SshAuthMethod.SshKey(callingActivity)) + registerAuthProviders(SshAuthMethod.SshKey(authActivity)) } is BiometricAuthenticator.Result.Cancelled -> { return Err(SSHException(DisconnectReason.AUTH_CANCELLED_BY_USER)) @@ -172,7 +174,7 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) { } } } else { - registerAuthProviders(SshAuthMethod.SshKey(callingActivity)) + registerAuthProviders(SshAuthMethod.SshKey(authActivity)) } } else { onMissingSshKeyFile() @@ -180,10 +182,10 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) { // error, allowing users to make the SSH key selection. return Err(SSHException(DisconnectReason.AUTH_CANCELLED_BY_USER)) } - AuthMode.OpenKeychain -> registerAuthProviders(SshAuthMethod.OpenKeychain(callingActivity)) + AuthMode.OpenKeychain -> registerAuthProviders(SshAuthMethod.OpenKeychain(authActivity)) AuthMode.Password -> { val httpsCredentialProvider = HttpsCredentialsProvider(CredentialFinder(callingActivity, AuthMode.Password)) - registerAuthProviders(SshAuthMethod.Password(callingActivity), httpsCredentialProvider) + registerAuthProviders(SshAuthMethod.Password(authActivity), httpsCredentialProvider) } AuthMode.None -> { } diff --git a/app/src/main/java/com/zeapo/pwdstore/git/operation/PullOperation.kt b/app/src/main/java/com/zeapo/pwdstore/git/operation/PullOperation.kt index 8173105c..4dcc3ec4 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/operation/PullOperation.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/operation/PullOperation.kt @@ -4,10 +4,10 @@ */ package com.zeapo.pwdstore.git.operation -import androidx.appcompat.app.AppCompatActivity +import com.zeapo.pwdstore.git.sshj.ContinuationContainerActivity import org.eclipse.jgit.api.GitCommand -class PullOperation(callingActivity: AppCompatActivity) : GitOperation(callingActivity) { +class PullOperation(callingActivity: ContinuationContainerActivity) : GitOperation(callingActivity) { /** * The story of why the pull operation is committing files goes like this: Once upon a time when diff --git a/app/src/main/java/com/zeapo/pwdstore/git/operation/PushOperation.kt b/app/src/main/java/com/zeapo/pwdstore/git/operation/PushOperation.kt index d3bee209..28d7a6fa 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/operation/PushOperation.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/operation/PushOperation.kt @@ -4,10 +4,10 @@ */ package com.zeapo.pwdstore.git.operation -import androidx.appcompat.app.AppCompatActivity +import com.zeapo.pwdstore.git.sshj.ContinuationContainerActivity import org.eclipse.jgit.api.GitCommand -class PushOperation(callingActivity: AppCompatActivity) : GitOperation(callingActivity) { +class PushOperation(callingActivity: ContinuationContainerActivity) : GitOperation(callingActivity) { override val commands: Array<GitCommand<out Any>> = arrayOf( git.push().setPushAll().setRemote("origin"), diff --git a/app/src/main/java/com/zeapo/pwdstore/git/operation/ResetToRemoteOperation.kt b/app/src/main/java/com/zeapo/pwdstore/git/operation/ResetToRemoteOperation.kt index 2df7a2b4..ad0fb823 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/operation/ResetToRemoteOperation.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/operation/ResetToRemoteOperation.kt @@ -4,10 +4,10 @@ */ package com.zeapo.pwdstore.git.operation -import androidx.appcompat.app.AppCompatActivity +import com.zeapo.pwdstore.git.sshj.ContinuationContainerActivity import org.eclipse.jgit.api.ResetCommand -class ResetToRemoteOperation(callingActivity: AppCompatActivity) : GitOperation(callingActivity) { +class ResetToRemoteOperation(callingActivity: ContinuationContainerActivity) : GitOperation(callingActivity) { override val commands = arrayOf( // Stage all files diff --git a/app/src/main/java/com/zeapo/pwdstore/git/operation/SyncOperation.kt b/app/src/main/java/com/zeapo/pwdstore/git/operation/SyncOperation.kt index a0a80fe3..8c1ec1fa 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/operation/SyncOperation.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/operation/SyncOperation.kt @@ -4,9 +4,9 @@ */ package com.zeapo.pwdstore.git.operation -import androidx.appcompat.app.AppCompatActivity +import com.zeapo.pwdstore.git.sshj.ContinuationContainerActivity -class SyncOperation(callingActivity: AppCompatActivity) : GitOperation(callingActivity) { +class SyncOperation(callingActivity: ContinuationContainerActivity) : GitOperation(callingActivity) { override val commands = arrayOf( // Stage all files |
