aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-05 12:27:37 +0100
committerDanilo M. <danix@danix.xyz>2026-11-05 12:36:08 +0100
commit1a22af34711be86061a57abd5140262f27568b5f (patch)
tree30add05371c418c19b797ff9aca46fc20a57e6f2 /app/src/main/java
parent68714bf78feb5a5a59354da624f2d69d6705e8ab (diff)
downloadHardenedPass-1a22af34711be86061a57abd5140262f27568b5f.tar.gz
HardenedPass-1a22af34711be86061a57abd5140262f27568b5f.zip
refactor(app): take the app's own code off AppCompat
Activities extend FragmentActivity, window themes derive from the platform's Material theme and night mode uses UiModeManager. APSTheme colors the system bars, which DynamicColors did through the window theme. AppCompat stays in the APK through zxing. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/app/passwordstore/Application.kt20
-rw-r--r--app/src/main/java/app/passwordstore/ui/autofill/AutofillDecryptActivity.kt4
-rw-r--r--app/src/main/java/app/passwordstore/ui/autofill/AutofillFilterView.kt5
-rw-r--r--app/src/main/java/app/passwordstore/ui/autofill/AutofillPublisherChangedActivity.kt5
-rw-r--r--app/src/main/java/app/passwordstore/ui/autofill/AutofillSaveActivity.kt4
-rw-r--r--app/src/main/java/app/passwordstore/ui/git/base/BaseGitActivity.kt6
-rw-r--r--app/src/main/java/app/passwordstore/ui/main/LaunchActivity.kt4
-rw-r--r--app/src/main/java/app/passwordstore/ui/main/MainActivity.kt4
-rw-r--r--app/src/main/java/app/passwordstore/util/git/operation/BreakOutOfDetached.kt4
-rw-r--r--app/src/main/java/app/passwordstore/util/git/operation/CloneOperation.kt4
-rw-r--r--app/src/main/java/app/passwordstore/util/git/operation/GcOperation.kt4
-rw-r--r--app/src/main/java/app/passwordstore/util/git/operation/GitOperation.kt9
-rw-r--r--app/src/main/java/app/passwordstore/util/git/operation/PullOperation.kt4
-rw-r--r--app/src/main/java/app/passwordstore/util/git/operation/PushOperation.kt4
-rw-r--r--app/src/main/java/app/passwordstore/util/git/operation/ResetToRemoteOperation.kt4
-rw-r--r--app/src/main/java/app/passwordstore/util/git/operation/SyncOperation.kt4
-rw-r--r--app/src/main/java/app/passwordstore/util/git/sshj/SshjSessionFactory.kt8
17 files changed, 45 insertions, 52 deletions
diff --git a/app/src/main/java/app/passwordstore/Application.kt b/app/src/main/java/app/passwordstore/Application.kt
index 60b58cc1..dbeb4ffb 100644
--- a/app/src/main/java/app/passwordstore/Application.kt
+++ b/app/src/main/java/app/passwordstore/Application.kt
@@ -4,13 +4,13 @@
*/
package app.passwordstore
+import android.app.UiModeManager
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.content.SharedPreferences
import android.os.StrictMode
-import androidx.appcompat.app.AppCompatDelegate.*
import app.passwordstore.data.crypto.PGPPassphraseCache
import app.passwordstore.injection.context.FilesDirPath
import app.passwordstore.injection.prefs.SettingsPreferences
@@ -23,7 +23,6 @@ import app.passwordstore.util.settings.GitSettings
import app.passwordstore.util.settings.PreferenceKeys
import app.passwordstore.util.settings.removeSecurityCryptoData
import app.passwordstore.util.settings.runMigrations
-import com.google.android.material.color.DynamicColors
import dagger.hilt.android.HiltAndroidApp
import java.util.concurrent.Executors
import javax.inject.Inject
@@ -64,7 +63,6 @@ class Application : android.app.Application(), SharedPreferences.OnSharedPrefere
removeSecurityCryptoData(this, prefs)
runMigrations(filesDirPath, prefs, gitSettings)
proxyUtils.setDefaultProxy()
- DynamicColors.applyToActivitiesIfAvailable(this)
setupScreenOffHandler()
}
@@ -112,14 +110,14 @@ class Application : android.app.Application(), SharedPreferences.OnSharedPrefere
}
private fun setNightMode() {
- setDefaultNightMode(
- when (prefs.getString(PreferenceKeys.APP_THEME) ?: getString(R.string.app_theme_def)) {
- "light" -> MODE_NIGHT_NO
- "dark" -> MODE_NIGHT_YES
- "follow_system" -> MODE_NIGHT_FOLLOW_SYSTEM
- else -> MODE_NIGHT_AUTO_BATTERY
- }
- )
+ getSystemService(UiModeManager::class.java)
+ .setApplicationNightMode(
+ when (prefs.getString(PreferenceKeys.APP_THEME) ?: getString(R.string.app_theme_def)) {
+ "light" -> UiModeManager.MODE_NIGHT_NO
+ "dark" -> UiModeManager.MODE_NIGHT_YES
+ else -> UiModeManager.MODE_NIGHT_AUTO
+ }
+ )
}
companion object {
diff --git a/app/src/main/java/app/passwordstore/ui/autofill/AutofillDecryptActivity.kt b/app/src/main/java/app/passwordstore/ui/autofill/AutofillDecryptActivity.kt
index 6354359f..3b62de4c 100644
--- a/app/src/main/java/app/passwordstore/ui/autofill/AutofillDecryptActivity.kt
+++ b/app/src/main/java/app/passwordstore/ui/autofill/AutofillDecryptActivity.kt
@@ -15,7 +15,6 @@ import android.view.autofill.AutofillManager
import android.widget.Toast
import androidx.activity.compose.setContent
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
-import androidx.appcompat.app.AppCompatActivity
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
@@ -24,6 +23,7 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.compose.ui.res.stringResource
import androidx.core.content.edit
+import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.lifecycleScope
import app.passwordstore.Application.Companion.screenWasOff
import app.passwordstore.R
@@ -70,7 +70,7 @@ import logcat.logcat
* FLAG_SECURE window shows only the "no keys" and passphrase dialogs.
*/
@AndroidEntryPoint
-class AutofillDecryptActivity : AppCompatActivity() {
+class AutofillDecryptActivity : FragmentActivity() {
@SettingsPreferences @Inject lateinit var settings: SharedPreferences
@Inject lateinit var repository: CryptoRepository
diff --git a/app/src/main/java/app/passwordstore/ui/autofill/AutofillFilterView.kt b/app/src/main/java/app/passwordstore/ui/autofill/AutofillFilterView.kt
index 86c2d51d..474005b5 100644
--- a/app/src/main/java/app/passwordstore/ui/autofill/AutofillFilterView.kt
+++ b/app/src/main/java/app/passwordstore/ui/autofill/AutofillFilterView.kt
@@ -13,13 +13,13 @@ import android.view.autofill.AutofillManager
import androidx.activity.compose.setContent
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
import androidx.activity.viewModels
-import androidx.appcompat.app.AppCompatActivity
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
+import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import app.passwordstore.R
import app.passwordstore.data.repo.PasswordRepository
@@ -43,7 +43,7 @@ import logcat.LogPriority.ERROR
import logcat.logcat
@AndroidEntryPoint
-class AutofillFilterView : AppCompatActivity() {
+class AutofillFilterView : FragmentActivity() {
@Inject lateinit var dispatcherProvider: DispatcherProvider
@@ -128,7 +128,6 @@ class AutofillFilterView : AppCompatActivity() {
return
}
}
- supportActionBar?.hide()
setResult(RESULT_CANCELED)
val isWeb = formOrigin is FormOrigin.Web
diff --git a/app/src/main/java/app/passwordstore/ui/autofill/AutofillPublisherChangedActivity.kt b/app/src/main/java/app/passwordstore/ui/autofill/AutofillPublisherChangedActivity.kt
index b0dd5dd9..74637ca1 100644
--- a/app/src/main/java/app/passwordstore/ui/autofill/AutofillPublisherChangedActivity.kt
+++ b/app/src/main/java/app/passwordstore/ui/autofill/AutofillPublisherChangedActivity.kt
@@ -14,8 +14,8 @@ import android.service.autofill.FillResponse
import android.text.format.DateUtils
import android.view.autofill.AutofillManager
import androidx.activity.compose.setContent
-import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.IntentCompat
+import androidx.fragment.app.FragmentActivity
import app.passwordstore.R
import app.passwordstore.ui.compose.theme.APSTheme
import app.passwordstore.util.autofill.AutofillMatcher
@@ -30,7 +30,7 @@ import com.github.michaelbull.result.runCatching
import logcat.LogPriority.ERROR
import logcat.logcat
-class AutofillPublisherChangedActivity : AppCompatActivity() {
+class AutofillPublisherChangedActivity : FragmentActivity() {
companion object {
@@ -74,7 +74,6 @@ class AutofillPublisherChangedActivity : AppCompatActivity() {
finish()
return
}
- supportActionBar?.hide()
val (packageInfo, appInfo, hash) =
runCatching {
Triple(
diff --git a/app/src/main/java/app/passwordstore/ui/autofill/AutofillSaveActivity.kt b/app/src/main/java/app/passwordstore/ui/autofill/AutofillSaveActivity.kt
index dde6a7ae..2ed0adef 100644
--- a/app/src/main/java/app/passwordstore/ui/autofill/AutofillSaveActivity.kt
+++ b/app/src/main/java/app/passwordstore/ui/autofill/AutofillSaveActivity.kt
@@ -12,8 +12,8 @@ import android.os.Bundle
import android.view.WindowManager
import android.view.autofill.AutofillManager
import androidx.activity.compose.setContent
-import androidx.appcompat.app.AppCompatActivity
import androidx.core.os.bundleOf
+import androidx.fragment.app.FragmentActivity
import app.passwordstore.data.passfile.PasswordEntry
import app.passwordstore.ui.compose.theme.APSTheme
import app.passwordstore.ui.editor.EditorDestination
@@ -39,7 +39,7 @@ import logcat.logcat
* password, fills it in.
*/
@AndroidEntryPoint
-class AutofillSaveActivity : AppCompatActivity() {
+class AutofillSaveActivity : FragmentActivity() {
companion object {
diff --git a/app/src/main/java/app/passwordstore/ui/git/base/BaseGitActivity.kt b/app/src/main/java/app/passwordstore/ui/git/base/BaseGitActivity.kt
index fb29b810..f7181c4e 100644
--- a/app/src/main/java/app/passwordstore/ui/git/base/BaseGitActivity.kt
+++ b/app/src/main/java/app/passwordstore/ui/git/base/BaseGitActivity.kt
@@ -5,8 +5,8 @@
package app.passwordstore.ui.git.base
import android.content.SharedPreferences
-import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.edit
+import androidx.fragment.app.FragmentActivity
import app.passwordstore.R
import app.passwordstore.injection.prefs.GitPreferences
import app.passwordstore.ui.prompts.prompts
@@ -36,11 +36,11 @@ import net.schmizz.sshj.transport.TransportException
import net.schmizz.sshj.userauth.UserAuthException
/**
- * Abstract [AppCompatActivity] that holds some information that is commonly shared across
+ * Abstract [FragmentActivity] that holds some information that is commonly shared across
* git-related tasks and makes sense to be held here.
*/
@AndroidEntryPoint
-abstract class BaseGitActivity : AppCompatActivity() {
+abstract class BaseGitActivity : FragmentActivity() {
/** Enum of possible Git operations than can be run through [launchGitOperation]. */
enum class GitOp {
diff --git a/app/src/main/java/app/passwordstore/ui/main/LaunchActivity.kt b/app/src/main/java/app/passwordstore/ui/main/LaunchActivity.kt
index c0af5742..54aaf9de 100644
--- a/app/src/main/java/app/passwordstore/ui/main/LaunchActivity.kt
+++ b/app/src/main/java/app/passwordstore/ui/main/LaunchActivity.kt
@@ -9,8 +9,8 @@ import android.content.Intent
import android.os.Bundle
import android.os.Handler
import android.os.Looper
-import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.edit
+import androidx.fragment.app.FragmentActivity
import app.passwordstore.data.repo.PasswordRepository
import app.passwordstore.util.auth.BiometricAuthenticator
import app.passwordstore.util.auth.BiometricAuthenticator.Result
@@ -19,7 +19,7 @@ import app.passwordstore.util.settings.PreferenceKeys
import java.io.File
@SuppressLint("CustomSplashScreen")
-class LaunchActivity : AppCompatActivity() {
+class LaunchActivity : FragmentActivity() {
private var prompted = false
diff --git a/app/src/main/java/app/passwordstore/ui/main/MainActivity.kt b/app/src/main/java/app/passwordstore/ui/main/MainActivity.kt
index 7ef4f906..f3d7d3a0 100644
--- a/app/src/main/java/app/passwordstore/ui/main/MainActivity.kt
+++ b/app/src/main/java/app/passwordstore/ui/main/MainActivity.kt
@@ -71,8 +71,8 @@ import kotlinx.serialization.Serializable
/**
* Single-activity host for the Compose UI. Not exported: it is only started by [LaunchActivity],
* after its biometric gate and path check, and by the app itself through [setupIntent]. Extends
- * [BaseGitActivity] (an AppCompatActivity, so also the FragmentActivity BiometricPrompt needs)
- * because the git operations require one; it hosts no fragments.
+ * [BaseGitActivity] (a FragmentActivity, which BiometricPrompt needs) because the git operations
+ * require one; it hosts no fragments.
*/
@AndroidEntryPoint
class MainActivity : BaseGitActivity() {
diff --git a/app/src/main/java/app/passwordstore/util/git/operation/BreakOutOfDetached.kt b/app/src/main/java/app/passwordstore/util/git/operation/BreakOutOfDetached.kt
index 126b2be5..a08f2a35 100644
--- a/app/src/main/java/app/passwordstore/util/git/operation/BreakOutOfDetached.kt
+++ b/app/src/main/java/app/passwordstore/util/git/operation/BreakOutOfDetached.kt
@@ -4,7 +4,7 @@
*/
package app.passwordstore.util.git.operation
-import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.FragmentActivity
import app.passwordstore.R
import app.passwordstore.data.repo.PasswordRepository
import app.passwordstore.ui.prompts.prompts
@@ -14,7 +14,7 @@ import org.eclipse.jgit.api.RebaseCommand
import org.eclipse.jgit.api.ResetCommand
import org.eclipse.jgit.lib.RepositoryState
-class BreakOutOfDetached(callingActivity: AppCompatActivity) : GitOperation(callingActivity) {
+class BreakOutOfDetached(callingActivity: FragmentActivity) : GitOperation(callingActivity) {
private val merging = repository.repositoryState == RepositoryState.MERGING
private val localBranch = PasswordRepository.getCurrentBranch()
diff --git a/app/src/main/java/app/passwordstore/util/git/operation/CloneOperation.kt b/app/src/main/java/app/passwordstore/util/git/operation/CloneOperation.kt
index 0386f674..0d74835f 100644
--- a/app/src/main/java/app/passwordstore/util/git/operation/CloneOperation.kt
+++ b/app/src/main/java/app/passwordstore/util/git/operation/CloneOperation.kt
@@ -4,7 +4,7 @@
*/
package app.passwordstore.util.git.operation
-import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.FragmentActivity
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) :
+class CloneOperation(callingActivity: FragmentActivity, uri: String) :
GitOperation(callingActivity) {
override val commands: Array<GitCommand<out Any>> =
diff --git a/app/src/main/java/app/passwordstore/util/git/operation/GcOperation.kt b/app/src/main/java/app/passwordstore/util/git/operation/GcOperation.kt
index c1487fbf..64467f3e 100644
--- a/app/src/main/java/app/passwordstore/util/git/operation/GcOperation.kt
+++ b/app/src/main/java/app/passwordstore/util/git/operation/GcOperation.kt
@@ -5,7 +5,7 @@
package app.passwordstore.util.git.operation
-import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.FragmentActivity
import org.eclipse.jgit.api.GitCommand
import org.eclipse.jgit.internal.storage.file.FileRepository
import org.eclipse.jgit.internal.storage.file.GC
@@ -14,7 +14,7 @@ import org.eclipse.jgit.internal.storage.file.GC
* Run an aggressive garbage collection job on the repository, expiring every loose object to
* achieve the best compression.
*/
-class GcOperation(callingActivity: AppCompatActivity) : GitOperation(callingActivity) {
+class GcOperation(callingActivity: FragmentActivity) : GitOperation(callingActivity) {
override val requiresAuth: Boolean = false
override val commands: Array<GitCommand<out Any>> =
diff --git a/app/src/main/java/app/passwordstore/util/git/operation/GitOperation.kt b/app/src/main/java/app/passwordstore/util/git/operation/GitOperation.kt
index a4bc33df..f4ed7cd1 100644
--- a/app/src/main/java/app/passwordstore/util/git/operation/GitOperation.kt
+++ b/app/src/main/java/app/passwordstore/util/git/operation/GitOperation.kt
@@ -5,7 +5,6 @@
package app.passwordstore.util.git.operation
import android.widget.Toast
-import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.FragmentActivity
import app.passwordstore.R
import app.passwordstore.data.repo.PasswordRepository
@@ -64,8 +63,6 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) {
EntryPointAccessors.fromApplication<GitOperationEntryPoint>(callingActivity)
protected val repository = PasswordRepository.repository!!
protected val git = Git(repository)
- private val authActivity
- get() = callingActivity as AppCompatActivity
private class HttpsCredentialsProvider(private val passwordFinder: PasswordFinder) :
CredentialsProvider() {
@@ -170,7 +167,7 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) {
}
when (result) {
is Success -> {
- registerAuthProviders(SshAuthMethod.SshKey(authActivity))
+ registerAuthProviders(SshAuthMethod.SshKey(callingActivity))
}
is CanceledByUser -> {
return Err(SSHException(DisconnectReason.AUTH_CANCELLED_BY_USER))
@@ -190,7 +187,7 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) {
}
}
} else {
- registerAuthProviders(SshAuthMethod.SshKey(authActivity))
+ registerAuthProviders(SshAuthMethod.SshKey(callingActivity))
}
} else {
onMissingSshKeyFile()
@@ -208,7 +205,7 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) {
hiltEntryPoint.dispatcherProvider(),
)
)
- registerAuthProviders(SshAuthMethod.Password(authActivity), httpsCredentialProvider)
+ registerAuthProviders(SshAuthMethod.Password(callingActivity), httpsCredentialProvider)
}
AuthMode.None -> {}
}
diff --git a/app/src/main/java/app/passwordstore/util/git/operation/PullOperation.kt b/app/src/main/java/app/passwordstore/util/git/operation/PullOperation.kt
index 1966c4ab..4738d7ee 100644
--- a/app/src/main/java/app/passwordstore/util/git/operation/PullOperation.kt
+++ b/app/src/main/java/app/passwordstore/util/git/operation/PullOperation.kt
@@ -4,10 +4,10 @@
*/
package app.passwordstore.util.git.operation
-import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.FragmentActivity
import org.eclipse.jgit.api.GitCommand
-class PullOperation(callingActivity: AppCompatActivity, rebase: Boolean) :
+class PullOperation(callingActivity: FragmentActivity, rebase: Boolean) :
GitOperation(callingActivity) {
/**
diff --git a/app/src/main/java/app/passwordstore/util/git/operation/PushOperation.kt b/app/src/main/java/app/passwordstore/util/git/operation/PushOperation.kt
index e013b401..a998cda5 100644
--- a/app/src/main/java/app/passwordstore/util/git/operation/PushOperation.kt
+++ b/app/src/main/java/app/passwordstore/util/git/operation/PushOperation.kt
@@ -4,10 +4,10 @@
*/
package app.passwordstore.util.git.operation
-import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.FragmentActivity
import org.eclipse.jgit.api.GitCommand
-class PushOperation(callingActivity: AppCompatActivity) : GitOperation(callingActivity) {
+class PushOperation(callingActivity: FragmentActivity) : GitOperation(callingActivity) {
override val commands: Array<GitCommand<out Any>> =
arrayOf(git.push().setPushAll().setRemote("origin"))
diff --git a/app/src/main/java/app/passwordstore/util/git/operation/ResetToRemoteOperation.kt b/app/src/main/java/app/passwordstore/util/git/operation/ResetToRemoteOperation.kt
index 7ca1282b..904c62ee 100644
--- a/app/src/main/java/app/passwordstore/util/git/operation/ResetToRemoteOperation.kt
+++ b/app/src/main/java/app/passwordstore/util/git/operation/ResetToRemoteOperation.kt
@@ -4,12 +4,12 @@
*/
package app.passwordstore.util.git.operation
-import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.FragmentActivity
import org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode.TRACK
import org.eclipse.jgit.api.GitCommand
import org.eclipse.jgit.api.ResetCommand
-class ResetToRemoteOperation(callingActivity: AppCompatActivity, remoteBranch: String) :
+class ResetToRemoteOperation(callingActivity: FragmentActivity, remoteBranch: String) :
GitOperation(callingActivity) {
override val commands: Array<GitCommand<out Any>> =
diff --git a/app/src/main/java/app/passwordstore/util/git/operation/SyncOperation.kt b/app/src/main/java/app/passwordstore/util/git/operation/SyncOperation.kt
index 25078e8a..c598b829 100644
--- a/app/src/main/java/app/passwordstore/util/git/operation/SyncOperation.kt
+++ b/app/src/main/java/app/passwordstore/util/git/operation/SyncOperation.kt
@@ -4,10 +4,10 @@
*/
package app.passwordstore.util.git.operation
-import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.FragmentActivity
import org.eclipse.jgit.api.GitCommand
-class SyncOperation(callingActivity: AppCompatActivity, rebase: Boolean) :
+class SyncOperation(callingActivity: FragmentActivity, rebase: Boolean) :
GitOperation(callingActivity) {
override val commands: Array<GitCommand<out Any>> =
diff --git a/app/src/main/java/app/passwordstore/util/git/sshj/SshjSessionFactory.kt b/app/src/main/java/app/passwordstore/util/git/sshj/SshjSessionFactory.kt
index ceae70bb..631e416f 100644
--- a/app/src/main/java/app/passwordstore/util/git/sshj/SshjSessionFactory.kt
+++ b/app/src/main/java/app/passwordstore/util/git/sshj/SshjSessionFactory.kt
@@ -5,7 +5,7 @@
package app.passwordstore.util.git.sshj
import android.util.Base64
-import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.FragmentActivity
import app.passwordstore.ui.prompts.Prompts
import app.passwordstore.ui.prompts.prompts
import app.passwordstore.util.coroutines.DispatcherProvider
@@ -44,16 +44,16 @@ import org.eclipse.jgit.transport.SshSessionFactory
import org.eclipse.jgit.transport.URIish
import org.eclipse.jgit.util.FS
-sealed class SshAuthMethod(val activity: AppCompatActivity) {
+sealed class SshAuthMethod(val activity: FragmentActivity) {
/**
* The activity's [Prompts], taken while it is alive: the SSH thread reads it later, and asking an
* activity that was finished meanwhile for it would create one nothing draws.
*/
val prompts = activity.prompts
- class Password(activity: AppCompatActivity) : SshAuthMethod(activity)
+ class Password(activity: FragmentActivity) : SshAuthMethod(activity)
- class SshKey(activity: AppCompatActivity) : SshAuthMethod(activity)
+ class SshKey(activity: FragmentActivity) : SshAuthMethod(activity)
}
abstract class InteractivePasswordFinder(private val dispatcherProvider: DispatcherProvider) :