aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/autofill
diff options
context:
space:
mode:
authorFabian Henneke <FabianHenneke@users.noreply.github.com>2020-08-06 10:58:20 +0200
committerGitHub <noreply@github.com>2020-08-06 14:28:20 +0530
commit3dace243e4b0fe1378e2d81c46fb70cb236e6ae5 (patch)
treea52739e2532e54337adb04468ca66ddd0bd6764d /app/src/main/java/com/zeapo/pwdstore/autofill
parent14c44bf584cb7d13ada46b264419efca923ed65c (diff)
downloadHardenedPass-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')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/autofill/AutofillService.kt16
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillHelper.kt2
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillPreferences.kt7
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/autofill/oreo/PublicSuffixListCache.kt4
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/autofill/oreo/ui/AutofillSaveActivity.kt2
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(