Reland symlink support (#1020)
* Add symlink support to JGit (#1016) * Add symlink support to JGit * Fix a typo Co-authored-by: Harsh Shandilya <me@msfjarvis.dev> * Prevent crash when following a broken symlink Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
57f1c65fdf
commit
087ab547c1
4 changed files with 13 additions and 1 deletions
|
@ -118,6 +118,8 @@ dependencies {
|
|||
implementation(Dependencies.ThirdParty.jgit) {
|
||||
exclude(group = "org.apache.httpcomponents", module = "httpclient")
|
||||
}
|
||||
// Loaded dynamically by JGit to provide symlink support
|
||||
implementation(Dependencies.ThirdParty.jgit_java7)
|
||||
implementation(Dependencies.ThirdParty.jsch)
|
||||
implementation(Dependencies.ThirdParty.sshj)
|
||||
implementation(Dependencies.ThirdParty.bouncycastle)
|
||||
|
|
|
@ -12,6 +12,7 @@ import android.text.method.PasswordTransformationMethod
|
|||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.IntentSenderRequest
|
||||
import androidx.activity.result.contract.ActivityResultContracts.StartIntentSenderForResult
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
|
@ -23,6 +24,7 @@ import com.zeapo.pwdstore.utils.PreferenceKeys
|
|||
import com.zeapo.pwdstore.utils.viewBinding
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.File
|
||||
import java.io.FileNotFoundException
|
||||
import kotlin.time.ExperimentalTime
|
||||
import kotlin.time.seconds
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
@ -135,7 +137,13 @@ class DecryptActivity : BasePgpActivity(), OpenPgpServiceConnection.OnBound {
|
|||
val data = receivedIntent ?: Intent()
|
||||
data.action = OpenPgpApi.ACTION_DECRYPT_VERIFY
|
||||
|
||||
val inputStream = File(fullPath).inputStream()
|
||||
val inputStream = try {
|
||||
File(fullPath).inputStream()
|
||||
} catch (e: FileNotFoundException) {
|
||||
Toast.makeText(this, getString(R.string.error_broken_symlink), Toast.LENGTH_SHORT).show()
|
||||
finish()
|
||||
return
|
||||
}
|
||||
val outputStream = ByteArrayOutputStream()
|
||||
|
||||
lifecycleScope.launch(Dispatchers.IO) {
|
||||
|
|
|
@ -224,6 +224,7 @@
|
|||
<string name="no_repo_selected">No external repository selected</string>
|
||||
<string name="send_plaintext_password_to">Send password as plaintext using…</string>
|
||||
<string name="app_icon_hint">App icon</string>
|
||||
<string name="error_broken_symlink">File not found, likely because of a broken symlink</string>
|
||||
|
||||
<!-- Oreo Autofill -->
|
||||
<string name="oreo_autofill_strict_domain_search">Phishing-resistant search</string>
|
||||
|
|
|
@ -53,6 +53,7 @@ object Dependencies {
|
|||
const val fastscroll = "me.zhanghai.android.fastscroll:library:1.1.4"
|
||||
const val jsch = "com.jcraft:jsch:0.1.55"
|
||||
const val jgit = "org.eclipse.jgit:org.eclipse.jgit:3.7.1.201504261725-r"
|
||||
const val jgit_java7 = "org.eclipse.jgit:org.eclipse.jgit.java7:3.7.1.201504261725-r"
|
||||
const val leakcanary = "com.squareup.leakcanary:leakcanary-android:2.4"
|
||||
const val plumber = "com.squareup.leakcanary:plumber-android:2.4"
|
||||
const val sshj = "com.hierynomus:sshj:0.29.0"
|
||||
|
|
Loading…
Reference in a new issue