diff options
| author | Fabian Henneke <FabianHenneke@users.noreply.github.com> | 2020-08-06 10:58:20 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-06 14:28:20 +0530 |
| commit | 3dace243e4b0fe1378e2d81c46fb70cb236e6ae5 (patch) | |
| tree | a52739e2532e54337adb04468ca66ddd0bd6764d /app/src/main/java/com/zeapo/pwdstore/autofill | |
| parent | 14c44bf584cb7d13ada46b264419efca923ed65c (diff) | |
| download | HardenedPass-3dace243e4b0fe1378e2d81c46fb70cb236e6ae5.tar.gz HardenedPass-3dace243e4b0fe1378e2d81c46fb70cb236e6ae5.zip | |
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
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/autofill')
5 files changed, 14 insertions, 17 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillService.kt b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillService.kt index 1d3086f9..4b40d8a4 100644 --- a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillService.kt +++ b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillService.kt @@ -76,7 +76,7 @@ class AutofillService : AccessibilityService(), CoroutineScope by CoroutineScope } fun setPickedPassword(path: String) { - items.add(File("${PasswordRepository.getRepositoryDirectory(applicationContext)}/$path.gpg")) + items.add(File("${PasswordRepository.getRepositoryDirectory()}/$path.gpg")) bindDecryptAndVerify() } @@ -296,9 +296,9 @@ class AutofillService : AccessibilityService(), CoroutineScope by CoroutineScope when (preference) { "/first" -> { if (!PasswordRepository.isInitialized) { - PasswordRepository.initialize(this) + PasswordRepository.initialize() } - items = searchPasswords(PasswordRepository.getRepositoryDirectory(this), webViewTitle) + items = searchPasswords(PasswordRepository.getRepositoryDirectory(), webViewTitle) } "/never" -> items = ArrayList() else -> getPreferredPasswords(preference) @@ -318,9 +318,9 @@ class AutofillService : AccessibilityService(), CoroutineScope by CoroutineScope when (preference) { "/first" -> { if (!PasswordRepository.isInitialized) { - PasswordRepository.initialize(this) + PasswordRepository.initialize() } - items = searchPasswords(PasswordRepository.getRepositoryDirectory(this), appName) + items = searchPasswords(PasswordRepository.getRepositoryDirectory(), appName) } "/never" -> items = ArrayList() else -> getPreferredPasswords(preference) @@ -331,12 +331,12 @@ class AutofillService : AccessibilityService(), CoroutineScope by CoroutineScope // file into the items list. private fun getPreferredPasswords(preference: String) { if (!PasswordRepository.isInitialized) { - PasswordRepository.initialize(this) + PasswordRepository.initialize() } val preferredPasswords = preference.splitLines() items = ArrayList() for (password in preferredPasswords) { - val path = PasswordRepository.getRepositoryDirectory(applicationContext).toString() + "/" + password + ".gpg" + val path = PasswordRepository.getRepositoryDirectory().toString() + "/" + password + ".gpg" if (File(path).exists()) { items.add(File(path)) } @@ -417,7 +417,7 @@ class AutofillService : AccessibilityService(), CoroutineScope by CoroutineScope // populate the dialog items, always with pick + pick and match. Could // make it optional (or make height a setting for the same effect) val itemNames = arrayOfNulls<CharSequence>(items.size + 2) - val passwordDirectory = PasswordRepository.getRepositoryDirectory(applicationContext).toString() + val passwordDirectory = PasswordRepository.getRepositoryDirectory().toString() val autofillFullPath = settings!!.getBoolean(PreferenceKeys.AUTOFILL_FULL_PATH, false) for (i in items.indices) { if (autofillFullPath) { diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillHelper.kt b/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillHelper.kt index 361f2fee..d5c7af75 100644 --- a/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillHelper.kt +++ b/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillHelper.kt @@ -121,7 +121,7 @@ private fun makeRemoteView( fun makeFillMatchRemoteView(context: Context, file: File, formOrigin: FormOrigin): RemoteViews { val title = formOrigin.getPrettyIdentifier(context, untrusted = false) val directoryStructure = AutofillPreferences.directoryStructure(context) - val relativeFile = file.relativeTo(PasswordRepository.getRepositoryDirectory(context)) + val relativeFile = file.relativeTo(PasswordRepository.getRepositoryDirectory()) val summary = directoryStructure.getUsernameFor(relativeFile) ?: directoryStructure.getPathToIdentifierFor(relativeFile) ?: "" val iconRes = R.drawable.ic_person_black_24dp diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillPreferences.kt b/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillPreferences.kt index 38bd375e..3e10933a 100644 --- a/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillPreferences.kt +++ b/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillPreferences.kt @@ -9,12 +9,10 @@ import android.content.SharedPreferences import android.os.Build import androidx.annotation.RequiresApi import androidx.preference.PreferenceManager +import com.zeapo.pwdstore.utils.sharedPrefs import java.io.File import java.nio.file.Paths -private val Context.defaultSharedPreferences: SharedPreferences - get() = PreferenceManager.getDefaultSharedPreferences(this) - enum class DirectoryStructure(val value: String) { EncryptedUsername("encrypted_username"), FileBased("file"), @@ -122,8 +120,7 @@ enum class DirectoryStructure(val value: String) { object AutofillPreferences { fun directoryStructure(context: Context): DirectoryStructure { - val value = - context.defaultSharedPreferences.getString(DirectoryStructure.PREFERENCE, null) + val value = context.sharedPrefs.getString(DirectoryStructure.PREFERENCE, null) return DirectoryStructure.fromValue(value) } } diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/PublicSuffixListCache.kt b/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/PublicSuffixListCache.kt index ab4f134a..536357f5 100644 --- a/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/PublicSuffixListCache.kt +++ b/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/PublicSuffixListCache.kt @@ -8,6 +8,7 @@ import android.content.Context import android.util.Patterns import androidx.preference.PreferenceManager import com.zeapo.pwdstore.utils.PreferenceKeys +import com.zeapo.pwdstore.utils.sharedPrefs import kotlinx.coroutines.runBlocking import mozilla.components.lib.publicsuffixlist.PublicSuffixList @@ -68,8 +69,7 @@ fun getSuffixPlusUpToOne(domain: String, suffix: String): String? { } fun getCustomSuffixes(context: Context): Sequence<String> { - val prefs = PreferenceManager.getDefaultSharedPreferences(context) - return prefs.getString(PreferenceKeys.OREO_AUTOFILL_CUSTOM_PUBLIC_SUFFIXES, "")!! + return context.sharedPrefs.getString(PreferenceKeys.OREO_AUTOFILL_CUSTOM_PUBLIC_SUFFIXES, "")!! .splitToSequence('\n') .filter { it.isNotBlank() && it.first() != '.' && it.last() != '.' } } diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/ui/AutofillSaveActivity.kt b/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/ui/AutofillSaveActivity.kt index 745d2d1e..f6ef8757 100644 --- a/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/ui/AutofillSaveActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/ui/AutofillSaveActivity.kt @@ -100,7 +100,7 @@ class AutofillSaveActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val repo = PasswordRepository.getRepositoryDirectory(applicationContext) + val repo = PasswordRepository.getRepositoryDirectory() val saveIntent = Intent(this, PasswordCreationActivity::class.java).apply { putExtras( bundleOf( |
