From 0027710465f793535dbb668bacfaa4a63a4cee94 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 30 May 2021 02:18:13 +0530 Subject: app: use unsafeLazy everywhere Signed-off-by: Harsh Shandilya --- .../msfjarvis/aps/data/repo/PasswordRepository.kt | 3 ++- .../aps/ui/autofill/AutofillSaveActivity.kt | 3 ++- .../dev/msfjarvis/aps/ui/crypto/BasePgpActivity.kt | 9 +++++---- .../dev/msfjarvis/aps/ui/crypto/DecryptActivity.kt | 5 ++--- .../aps/ui/crypto/PasswordCreationActivity.kt | 23 +++++++--------------- .../aps/ui/onboarding/fragments/CloneFragment.kt | 5 ++--- .../onboarding/fragments/KeySelectionFragment.kt | 5 ++--- .../onboarding/fragments/RepoLocationFragment.kt | 7 +++---- .../aps/ui/proxy/ProxySelectorActivity.kt | 5 ++--- .../msfjarvis/aps/ui/settings/PasswordSettings.kt | 3 ++- .../aps/ui/settings/RepositorySettings.kt | 3 ++- .../util/extensions/FragmentViewBindingDelegate.kt | 2 +- .../msfjarvis/aps/util/git/GitCommandExecutor.kt | 3 ++- .../java/dev/msfjarvis/aps/util/git/GitLogModel.kt | 3 ++- .../aps/util/git/operation/BreakOutOfDetached.kt | 3 ++- .../java/dev/msfjarvis/aps/util/git/sshj/SshKey.kt | 5 +++-- .../dev/msfjarvis/aps/util/settings/GitSettings.kt | 2 +- .../viewmodel/SearchableRepositoryViewModel.kt | 3 ++- 18 files changed, 44 insertions(+), 48 deletions(-) (limited to 'app/src/main/java') diff --git a/app/src/main/java/dev/msfjarvis/aps/data/repo/PasswordRepository.kt b/app/src/main/java/dev/msfjarvis/aps/data/repo/PasswordRepository.kt index d5f9a24b..feaca889 100644 --- a/app/src/main/java/dev/msfjarvis/aps/data/repo/PasswordRepository.kt +++ b/app/src/main/java/dev/msfjarvis/aps/data/repo/PasswordRepository.kt @@ -14,6 +14,7 @@ import dev.msfjarvis.aps.Application import dev.msfjarvis.aps.data.password.PasswordItem import dev.msfjarvis.aps.util.extensions.getString import dev.msfjarvis.aps.util.extensions.sharedPrefs +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.settings.PasswordSortOrder import dev.msfjarvis.aps.util.settings.PreferenceKeys import java.io.File @@ -55,7 +56,7 @@ object PasswordRepository { } private var repository: Repository? = null - private val settings by lazy(LazyThreadSafetyMode.NONE) { Application.instance.sharedPrefs } + private val settings by unsafeLazy { Application.instance.sharedPrefs } private val filesDir get() = Application.instance.filesDir diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/autofill/AutofillSaveActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/autofill/AutofillSaveActivity.kt index ee3cf752..a2ed02fd 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/autofill/AutofillSaveActivity.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/autofill/AutofillSaveActivity.kt @@ -24,6 +24,7 @@ import dev.msfjarvis.aps.ui.crypto.PasswordCreationActivity import dev.msfjarvis.aps.util.autofill.AutofillMatcher import dev.msfjarvis.aps.util.autofill.AutofillPreferences import dev.msfjarvis.aps.util.autofill.AutofillResponseBuilder +import dev.msfjarvis.aps.util.extensions.unsafeLazy import java.io.File @RequiresApi(Build.VERSION_CODES.O) @@ -89,7 +90,7 @@ class AutofillSaveActivity : AppCompatActivity() { } } - private val formOrigin by lazy(LazyThreadSafetyMode.NONE) { + private val formOrigin by unsafeLazy { val shouldMatchApp: String? = intent.getStringExtra(EXTRA_SHOULD_MATCH_APP) val shouldMatchWeb: String? = intent.getStringExtra(EXTRA_SHOULD_MATCH_WEB) if (shouldMatchApp != null && shouldMatchWeb == null) { diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/crypto/BasePgpActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/crypto/BasePgpActivity.kt index f17ca72b..681025aa 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/crypto/BasePgpActivity.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/crypto/BasePgpActivity.kt @@ -30,6 +30,7 @@ import dev.msfjarvis.aps.util.extensions.clipboard import dev.msfjarvis.aps.util.extensions.getString import dev.msfjarvis.aps.util.extensions.sharedPrefs import dev.msfjarvis.aps.util.extensions.snackbar +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.services.ClipboardService import dev.msfjarvis.aps.util.settings.PreferenceKeys import java.io.File @@ -42,20 +43,20 @@ import org.openintents.openpgp.OpenPgpError open class BasePgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound { /** Full path to the repository */ - val repoPath by lazy(LazyThreadSafetyMode.NONE) { intent.getStringExtra("REPO_PATH")!! } + val repoPath by unsafeLazy { intent.getStringExtra("REPO_PATH")!! } /** Full path to the password file being worked on */ - val fullPath by lazy(LazyThreadSafetyMode.NONE) { intent.getStringExtra("FILE_PATH")!! } + val fullPath by unsafeLazy { intent.getStringExtra("FILE_PATH")!! } /** * Name of the password file * * Converts personal/auth.foo.org/john_doe@example.org.gpg to john_doe.example.org */ - val name: String by lazy(LazyThreadSafetyMode.NONE) { File(fullPath).nameWithoutExtension } + val name: String by unsafeLazy { File(fullPath).nameWithoutExtension } /** [SharedPreferences] instance used by subclasses to persist settings */ - val settings: SharedPreferences by lazy(LazyThreadSafetyMode.NONE) { sharedPrefs } + val settings: SharedPreferences by unsafeLazy { sharedPrefs } /** * Handle to the [OpenPgpApi] instance that is used by subclasses to interface with OpenKeychain. diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/crypto/DecryptActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/crypto/DecryptActivity.kt index 49d5d6a8..650c65de 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/crypto/DecryptActivity.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/crypto/DecryptActivity.kt @@ -22,6 +22,7 @@ import dev.msfjarvis.aps.data.password.FieldItem import dev.msfjarvis.aps.databinding.DecryptLayoutBinding import dev.msfjarvis.aps.injection.password.PasswordEntryFactory import dev.msfjarvis.aps.ui.adapters.FieldItemAdapter +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.extensions.viewBinding import dev.msfjarvis.aps.util.settings.PreferenceKeys import java.io.ByteArrayOutputStream @@ -44,9 +45,7 @@ class DecryptActivity : BasePgpActivity(), OpenPgpServiceConnection.OnBound { private val binding by viewBinding(DecryptLayoutBinding::inflate) @Inject lateinit var passwordEntryFactory: PasswordEntryFactory - private val relativeParentPath by lazy(LazyThreadSafetyMode.NONE) { - getParentPath(fullPath, repoPath) - } + private val relativeParentPath by unsafeLazy { getParentPath(fullPath, repoPath) } private var passwordEntry: PasswordEntry? = null private val userInteractionRequiredResult = diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/crypto/PasswordCreationActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/crypto/PasswordCreationActivity.kt index c9ae348a..91e375aa 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/crypto/PasswordCreationActivity.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/crypto/PasswordCreationActivity.kt @@ -44,6 +44,7 @@ import dev.msfjarvis.aps.util.extensions.commitChange import dev.msfjarvis.aps.util.extensions.getString import dev.msfjarvis.aps.util.extensions.isInsideRepository import dev.msfjarvis.aps.util.extensions.snackbar +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.extensions.viewBinding import dev.msfjarvis.aps.util.settings.PreferenceKeys import java.io.ByteArrayInputStream @@ -63,24 +64,14 @@ class PasswordCreationActivity : BasePgpActivity(), OpenPgpServiceConnection.OnB private val binding by viewBinding(PasswordCreationActivityBinding::inflate) @Inject lateinit var passwordEntryFactory: PasswordEntryFactory - private val suggestedName by lazy(LazyThreadSafetyMode.NONE) { - intent.getStringExtra(EXTRA_FILE_NAME) - } - private val suggestedPass by lazy(LazyThreadSafetyMode.NONE) { - intent.getStringExtra(EXTRA_PASSWORD) - } - private val suggestedExtra by lazy(LazyThreadSafetyMode.NONE) { - intent.getStringExtra(EXTRA_EXTRA_CONTENT) - } - private val shouldGeneratePassword by lazy(LazyThreadSafetyMode.NONE) { + private val suggestedName by unsafeLazy { intent.getStringExtra(EXTRA_FILE_NAME) } + private val suggestedPass by unsafeLazy { intent.getStringExtra(EXTRA_PASSWORD) } + private val suggestedExtra by unsafeLazy { intent.getStringExtra(EXTRA_EXTRA_CONTENT) } + private val shouldGeneratePassword by unsafeLazy { intent.getBooleanExtra(EXTRA_GENERATE_PASSWORD, false) } - private val editing by lazy(LazyThreadSafetyMode.NONE) { - intent.getBooleanExtra(EXTRA_EDITING, false) - } - private val oldFileName by lazy(LazyThreadSafetyMode.NONE) { - intent.getStringExtra(EXTRA_FILE_NAME) - } + private val editing by unsafeLazy { intent.getBooleanExtra(EXTRA_EDITING, false) } + private val oldFileName by unsafeLazy { intent.getStringExtra(EXTRA_FILE_NAME) } private var oldCategory: String? = null private var copy: Boolean = false private var encryptionIntent: Intent = Intent() diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/onboarding/fragments/CloneFragment.kt b/app/src/main/java/dev/msfjarvis/aps/ui/onboarding/fragments/CloneFragment.kt index 407da1d1..603c016b 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/onboarding/fragments/CloneFragment.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/onboarding/fragments/CloneFragment.kt @@ -17,6 +17,7 @@ import dev.msfjarvis.aps.ui.git.config.GitServerConfigActivity import dev.msfjarvis.aps.util.extensions.finish import dev.msfjarvis.aps.util.extensions.performTransactionWithBackStack import dev.msfjarvis.aps.util.extensions.sharedPrefs +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.extensions.viewBinding import dev.msfjarvis.aps.util.settings.PreferenceKeys @@ -24,9 +25,7 @@ class CloneFragment : Fragment(R.layout.fragment_clone) { private val binding by viewBinding(FragmentCloneBinding::bind) - private val settings by lazy(LazyThreadSafetyMode.NONE) { - requireActivity().applicationContext.sharedPrefs - } + private val settings by unsafeLazy { requireActivity().applicationContext.sharedPrefs } private val cloneAction = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/onboarding/fragments/KeySelectionFragment.kt b/app/src/main/java/dev/msfjarvis/aps/ui/onboarding/fragments/KeySelectionFragment.kt index 4123f031..7783e1eb 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/onboarding/fragments/KeySelectionFragment.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/onboarding/fragments/KeySelectionFragment.kt @@ -22,6 +22,7 @@ import dev.msfjarvis.aps.util.extensions.commitChange import dev.msfjarvis.aps.util.extensions.finish import dev.msfjarvis.aps.util.extensions.sharedPrefs import dev.msfjarvis.aps.util.extensions.snackbar +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.extensions.viewBinding import dev.msfjarvis.aps.util.settings.PreferenceKeys import java.io.File @@ -32,9 +33,7 @@ import me.msfjarvis.openpgpktx.util.OpenPgpApi class KeySelectionFragment : Fragment(R.layout.fragment_key_selection) { - private val settings by lazy(LazyThreadSafetyMode.NONE) { - requireActivity().applicationContext.sharedPrefs - } + private val settings by unsafeLazy { requireActivity().applicationContext.sharedPrefs } private val binding by viewBinding(FragmentKeySelectionBinding::bind) private val gpgKeySelectAction = diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/onboarding/fragments/RepoLocationFragment.kt b/app/src/main/java/dev/msfjarvis/aps/ui/onboarding/fragments/RepoLocationFragment.kt index 2fdb82e8..8503cfbd 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/onboarding/fragments/RepoLocationFragment.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/onboarding/fragments/RepoLocationFragment.kt @@ -28,6 +28,7 @@ import dev.msfjarvis.aps.util.extensions.isPermissionGranted import dev.msfjarvis.aps.util.extensions.listFilesRecursively import dev.msfjarvis.aps.util.extensions.performTransactionWithBackStack import dev.msfjarvis.aps.util.extensions.sharedPrefs +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.extensions.viewBinding import dev.msfjarvis.aps.util.settings.PasswordSortOrder import dev.msfjarvis.aps.util.settings.PreferenceKeys @@ -35,10 +36,8 @@ import java.io.File class RepoLocationFragment : Fragment(R.layout.fragment_repo_location) { - private val settings by lazy(LazyThreadSafetyMode.NONE) { - requireActivity().applicationContext.sharedPrefs - } - private val directorySelectIntent by lazy(LazyThreadSafetyMode.NONE) { + private val settings by unsafeLazy { requireActivity().applicationContext.sharedPrefs } + private val directorySelectIntent by unsafeLazy { Intent(requireContext(), DirectorySelectionActivity::class.java) } private val binding by viewBinding(FragmentRepoLocationBinding::bind) diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/proxy/ProxySelectorActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/proxy/ProxySelectorActivity.kt index 936104e3..90aea7ae 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/proxy/ProxySelectorActivity.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/proxy/ProxySelectorActivity.kt @@ -18,6 +18,7 @@ import dev.msfjarvis.aps.R import dev.msfjarvis.aps.databinding.ActivityProxySelectorBinding import dev.msfjarvis.aps.util.extensions.getEncryptedProxyPrefs import dev.msfjarvis.aps.util.extensions.getString +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.extensions.viewBinding import dev.msfjarvis.aps.util.proxy.ProxyUtils import dev.msfjarvis.aps.util.settings.GitSettings @@ -34,9 +35,7 @@ class ProxySelectorActivity : AppCompatActivity() { @Inject lateinit var proxyUtils: ProxyUtils private val binding by viewBinding(ActivityProxySelectorBinding::inflate) - private val proxyPrefs by lazy(LazyThreadSafetyMode.NONE) { - applicationContext.getEncryptedProxyPrefs() - } + private val proxyPrefs by unsafeLazy { applicationContext.getEncryptedProxyPrefs() } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/settings/PasswordSettings.kt b/app/src/main/java/dev/msfjarvis/aps/ui/settings/PasswordSettings.kt index ff2e7a81..dced4fc8 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/settings/PasswordSettings.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/settings/PasswordSettings.kt @@ -23,13 +23,14 @@ import de.Maxr1998.modernpreferences.preferences.choice.SelectionItem import dev.msfjarvis.aps.R import dev.msfjarvis.aps.util.extensions.getString import dev.msfjarvis.aps.util.extensions.sharedPrefs +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.pwgenxkpwd.XkpwdDictionary import dev.msfjarvis.aps.util.settings.PreferenceKeys import java.io.File class PasswordSettings(private val activity: FragmentActivity) : SettingsProvider { - private val sharedPrefs by lazy(LazyThreadSafetyMode.NONE) { activity.sharedPrefs } + private val sharedPrefs by unsafeLazy { activity.sharedPrefs } private val storeCustomXkpwdDictionaryAction = activity.registerForActivityResult(ActivityResultContracts.OpenDocument()) { uri -> if (uri == null) return@registerForActivityResult diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt b/app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt index d571d962..289391b4 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt @@ -37,12 +37,13 @@ import dev.msfjarvis.aps.ui.sshkeygen.SshKeyImportActivity import dev.msfjarvis.aps.util.extensions.getString import dev.msfjarvis.aps.util.extensions.sharedPrefs import dev.msfjarvis.aps.util.extensions.snackbar +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.settings.GitSettings import dev.msfjarvis.aps.util.settings.PreferenceKeys class RepositorySettings(private val activity: FragmentActivity) : SettingsProvider { - private val hiltEntryPoint by lazy(LazyThreadSafetyMode.NONE) { + private val hiltEntryPoint by unsafeLazy { EntryPointAccessors.fromApplication( activity.applicationContext, RepositorySettingsEntryPoint::class.java, diff --git a/app/src/main/java/dev/msfjarvis/aps/util/extensions/FragmentViewBindingDelegate.kt b/app/src/main/java/dev/msfjarvis/aps/util/extensions/FragmentViewBindingDelegate.kt index de21a359..fe885c86 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/extensions/FragmentViewBindingDelegate.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/extensions/FragmentViewBindingDelegate.kt @@ -67,4 +67,4 @@ fun Fragment.viewBinding(viewBindingFactory: (View) -> T) = inline fun AppCompatActivity.viewBinding( crossinline bindingInflater: (LayoutInflater) -> T -) = lazy(LazyThreadSafetyMode.NONE) { bindingInflater.invoke(layoutInflater) } +) = unsafeLazy { bindingInflater.invoke(layoutInflater) } diff --git a/app/src/main/java/dev/msfjarvis/aps/util/git/GitCommandExecutor.kt b/app/src/main/java/dev/msfjarvis/aps/util/git/GitCommandExecutor.kt index 54e1e2e5..115c2f9f 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/git/GitCommandExecutor.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/git/GitCommandExecutor.kt @@ -16,6 +16,7 @@ import dagger.hilt.android.EntryPointAccessors import dagger.hilt.components.SingletonComponent import dev.msfjarvis.aps.R import dev.msfjarvis.aps.util.extensions.snackbar +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.git.GitException.PullException import dev.msfjarvis.aps.util.git.GitException.PushException import dev.msfjarvis.aps.util.git.operation.GitOperation @@ -34,7 +35,7 @@ class GitCommandExecutor( private val operation: GitOperation, ) { - private val hiltEntryPoint by lazy(LazyThreadSafetyMode.NONE) { + private val hiltEntryPoint by unsafeLazy { EntryPointAccessors.fromApplication( activity.applicationContext, GitCommandExecutorEntryPoint::class.java diff --git a/app/src/main/java/dev/msfjarvis/aps/util/git/GitLogModel.kt b/app/src/main/java/dev/msfjarvis/aps/util/git/GitLogModel.kt index bfef2571..0fa21271 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/git/GitLogModel.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/git/GitLogModel.kt @@ -11,6 +11,7 @@ import com.github.michaelbull.result.runCatching import dev.msfjarvis.aps.data.repo.PasswordRepository import dev.msfjarvis.aps.util.extensions.hash import dev.msfjarvis.aps.util.extensions.time +import dev.msfjarvis.aps.util.extensions.unsafeLazy import org.eclipse.jgit.api.Git import org.eclipse.jgit.revwalk.RevCommit @@ -39,7 +40,7 @@ class GitLogModel { // This is because the commit graph is walked from HEAD to the last commit to obtain. // Additionally, tests with 1000 commits in the log have not produced a significant delay in the // user experience. - private val cache: MutableList by lazy(LazyThreadSafetyMode.NONE) { + private val cache: MutableList by unsafeLazy { commits() .map { GitCommit(it.hash, it.shortMessage, it.authorIdent.name, it.time) } .toMutableList() diff --git a/app/src/main/java/dev/msfjarvis/aps/util/git/operation/BreakOutOfDetached.kt b/app/src/main/java/dev/msfjarvis/aps/util/git/operation/BreakOutOfDetached.kt index fd0aedf7..6ea9b8bb 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/git/operation/BreakOutOfDetached.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/git/operation/BreakOutOfDetached.kt @@ -6,6 +6,7 @@ package dev.msfjarvis.aps.util.git.operation import com.google.android.material.dialog.MaterialAlertDialogBuilder import dev.msfjarvis.aps.R +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.git.sshj.ContinuationContainerActivity import org.eclipse.jgit.api.RebaseCommand import org.eclipse.jgit.api.ResetCommand @@ -28,7 +29,7 @@ class BreakOutOfDetached(callingActivity: ContinuationContainerActivity) : git.checkout().setName(remoteBranch), ) - override val commands by lazy(LazyThreadSafetyMode.NONE) { + override val commands by unsafeLazy { if (merging) { // We need to run some non-command operations first repository.writeMergeCommitMsg(null) diff --git a/app/src/main/java/dev/msfjarvis/aps/util/git/sshj/SshKey.kt b/app/src/main/java/dev/msfjarvis/aps/util/git/sshj/SshKey.kt index 3d23658e..66617a18 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/git/sshj/SshKey.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/git/sshj/SshKey.kt @@ -25,6 +25,7 @@ import dev.msfjarvis.aps.R import dev.msfjarvis.aps.util.extensions.getEncryptedGitPrefs import dev.msfjarvis.aps.util.extensions.getString import dev.msfjarvis.aps.util.extensions.sharedPrefs +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.settings.PreferenceKeys import java.io.File import java.io.IOException @@ -50,7 +51,7 @@ private const val PROVIDER_ANDROID_KEY_STORE = "AndroidKeyStore" private const val KEYSTORE_ALIAS = "sshkey" private const val ANDROIDX_SECURITY_KEYSET_PREF_NAME = "androidx_sshkey_keyset_prefs" -private val androidKeystore: KeyStore by lazy(LazyThreadSafetyMode.NONE) { +private val androidKeystore: KeyStore by unsafeLazy { KeyStore.getInstance(PROVIDER_ANDROID_KEY_STORE).apply { load(null) } } @@ -118,7 +119,7 @@ object SshKey { set(value) = context.sharedPrefs.edit { putString(PreferenceKeys.GIT_REMOTE_KEY_TYPE, value?.value) } - private val isStrongBoxSupported by lazy(LazyThreadSafetyMode.NONE) { + private val isStrongBoxSupported by unsafeLazy { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) context.packageManager.hasSystemFeature(PackageManager.FEATURE_STRONGBOX_KEYSTORE) else false diff --git a/app/src/main/java/dev/msfjarvis/aps/util/settings/GitSettings.kt b/app/src/main/java/dev/msfjarvis/aps/util/settings/GitSettings.kt index 50b6cbfe..072c1c1c 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/settings/GitSettings.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/settings/GitSettings.kt @@ -61,7 +61,7 @@ constructor( @FilesDirPath private val filesDirPath: String, ) { - private val hostKeyPath by lazy(LazyThreadSafetyMode.NONE) { "$filesDirPath/.host_key" } + private val hostKeyPath = "$filesDirPath/.host_key" var authMode get() = AuthMode.fromString(settings.getString(PreferenceKeys.GIT_REMOTE_AUTH)) private set(value) { diff --git a/app/src/main/java/dev/msfjarvis/aps/util/viewmodel/SearchableRepositoryViewModel.kt b/app/src/main/java/dev/msfjarvis/aps/util/viewmodel/SearchableRepositoryViewModel.kt index f2d0dc64..1c1b6aee 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/viewmodel/SearchableRepositoryViewModel.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/viewmodel/SearchableRepositoryViewModel.kt @@ -29,6 +29,7 @@ import dev.msfjarvis.aps.data.repo.PasswordRepository import dev.msfjarvis.aps.util.autofill.AutofillPreferences import dev.msfjarvis.aps.util.autofill.DirectoryStructure import dev.msfjarvis.aps.util.extensions.sharedPrefs +import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.settings.PasswordSortOrder import dev.msfjarvis.aps.util.settings.PreferenceKeys import dev.sphericalkat.sublimefuzzy.Fuzzy @@ -120,7 +121,7 @@ class SearchableRepositoryViewModel(application: Application) : AndroidViewModel private val root get() = PasswordRepository.getRepositoryDirectory() - private val settings by lazy(LazyThreadSafetyMode.NONE) { application.sharedPrefs } + private val settings by unsafeLazy { application.sharedPrefs } private val showHiddenContents get() = settings.getBoolean(PreferenceKeys.SHOW_HIDDEN_CONTENTS, false) private val defaultSearchMode -- cgit v1.2.3