From 3dace243e4b0fe1378e2d81c46fb70cb236e6ae5 Mon Sep 17 00:00:00 2001 From: Fabian Henneke Date: Thu, 6 Aug 2020 10:58:20 +0200 Subject: Refactor uses of applicationContext and startActivityForResult (#997) * Refactor uses of applicationContext and startActivityForResult This commit applies three types of refactoring: 1. Remove context argument from PasswordRepository companion functions by relying on Application.instance. 2. Introduce a sharedPrefs extension function on Context that returns the default SharedPreferences for the applicationContext. 3. Use OpenDocument() and OpenDocumentTree() contracts. * Drop toPasswordItem argument --- app/src/main/java/com/zeapo/pwdstore/git/BaseGitActivity.kt | 6 +++--- app/src/main/java/com/zeapo/pwdstore/git/GitConfigActivity.kt | 2 +- app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt | 4 ++-- app/src/main/java/com/zeapo/pwdstore/git/operation/GitOperation.kt | 4 +--- 4 files changed, 7 insertions(+), 9 deletions(-) (limited to 'app/src/main/java/com/zeapo/pwdstore/git') diff --git a/app/src/main/java/com/zeapo/pwdstore/git/BaseGitActivity.kt b/app/src/main/java/com/zeapo/pwdstore/git/BaseGitActivity.kt index 706592fe..06f85d1b 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/BaseGitActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/BaseGitActivity.kt @@ -13,7 +13,6 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.content.edit import androidx.core.text.isDigitsOnly import androidx.lifecycle.lifecycleScope -import androidx.preference.PreferenceManager import com.github.ajalt.timberkt.Timber.tag import com.github.ajalt.timberkt.e import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -31,6 +30,7 @@ import com.zeapo.pwdstore.git.operation.SyncOperation import com.zeapo.pwdstore.utils.PasswordRepository import com.zeapo.pwdstore.utils.PreferenceKeys import com.zeapo.pwdstore.utils.getEncryptedPrefs +import com.zeapo.pwdstore.utils.sharedPrefs import java.io.File import java.net.URI import kotlinx.coroutines.launch @@ -61,7 +61,7 @@ abstract class BaseGitActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - settings = PreferenceManager.getDefaultSharedPreferences(this) + settings = sharedPrefs encryptedSettings = getEncryptedPrefs("git_operation") protocol = Protocol.fromString(settings.getString(PreferenceKeys.GIT_REMOTE_PROTOCOL, null)) connectionMode = ConnectionMode.fromString(settings.getString(PreferenceKeys.GIT_REMOTE_AUTH, null)) @@ -197,7 +197,7 @@ abstract class BaseGitActivity : AppCompatActivity() { return } - val localDir = requireNotNull(PasswordRepository.getRepositoryDirectory(this)) + val localDir = requireNotNull(PasswordRepository.getRepositoryDirectory()) val op = when (operation) { REQUEST_CLONE, GitOperation.GET_SSH_KEY_FROM_CLONE -> CloneOperation(localDir, url!!, this) REQUEST_PULL -> PullOperation(localDir, this) diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitConfigActivity.kt b/app/src/main/java/com/zeapo/pwdstore/git/GitConfigActivity.kt index 35a3c648..e84c87e1 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitConfigActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitConfigActivity.kt @@ -34,7 +34,7 @@ class GitConfigActivity : BaseGitActivity() { else binding.gitUserName.setText(username) binding.gitUserEmail.setText(email) - val repo = PasswordRepository.getRepository(PasswordRepository.getRepositoryDirectory(this)) + val repo = PasswordRepository.getRepository(PasswordRepository.getRepositoryDirectory()) if (repo != null) { try { val objectId = repo.resolve(Constants.HEAD) diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt b/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt index 4830b2c8..3fe0314a 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt @@ -113,7 +113,7 @@ class GitServerConfigActivity : BaseGitActivity() { binding.saveButton.setOnClickListener { if (isClone && PasswordRepository.getRepository(null) == null) - PasswordRepository.initialize(this) + PasswordRepository.initialize() when (val result = updateUrl()) { GitUpdateUrlResult.Ok -> { settings.edit { @@ -161,7 +161,7 @@ class GitServerConfigActivity : BaseGitActivity() { * Clones the repository, the directory exists, deletes it */ private fun cloneRepository() { - val localDir = requireNotNull(PasswordRepository.getRepositoryDirectory(this)) + val localDir = requireNotNull(PasswordRepository.getRepositoryDirectory()) val localDirFiles = localDir.listFiles() ?: emptyArray() // Warn if non-empty folder unless it's a just-initialized store that has just a .git folder if (localDir.exists() && localDirFiles.isNotEmpty() && 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 45fefd64..591c121f 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 @@ -158,9 +158,7 @@ abstract class GitOperation(gitDir: File, internal val callingActivity: Fragment .edit { remove(PreferenceKeys.SSH_OPENKEYSTORE_KEYID) } } is SshjSessionFactory -> { - callingActivity.applicationContext - .getEncryptedPrefs("git_operation") - .edit { + callingActivity.getEncryptedPrefs("git_operation").edit { remove(PreferenceKeys.SSH_KEY_LOCAL_PASSPHRASE) remove(PreferenceKeys.HTTPS_PASSWORD) } -- cgit v1.2.3