aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
diff options
context:
space:
mode:
authorFabian Henneke <FabianHenneke@users.noreply.github.com>2020-03-25 18:13:04 +0100
committerGitHub <noreply@github.com>2020-03-25 18:13:04 +0100
commitfde16c60f4ce5d57a0c7d5a0186dcd532a23f0f0 (patch)
tree8a72bcc077590707c47017548cc8adc3eae6e0d1 /app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
parent973e023dda3caf17fe024b9ba7f1872c5527e654 (diff)
downloadHardenedPass-fde16c60f4ce5d57a0c7d5a0186dcd532a23f0f0.tar.gz
HardenedPass-fde16c60f4ce5d57a0c7d5a0186dcd532a23f0f0.zip
Make preferred directory structure for Autofill configurable (#660)
Some users keep their password files in a directory structure such as: /example.org/john@doe.org.gpg while others prefer the style: /example.org/john@doe.org/password.gpg This commit adds a setting that allows to switch between the two. All Autofill operations, such as search, match, generate and save, respect this setting. Note: The first style seems to be the most widely used and is therefore kept as the default. The second style is mentioned on the official Pass website at: https://www.passwordstore.org/#organization
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/UserPreference.kt')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/UserPreference.kt37
1 files changed, 19 insertions, 18 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
index 895338e9..06ee24e5 100644
--- a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
@@ -62,8 +62,9 @@ class UserPreference : AppCompatActivity() {
private lateinit var prefsFragment: PrefsFragment
class PrefsFragment : PreferenceFragmentCompat() {
- private var autofillDependencies = listOf<Preference?>()
private var autoFillEnablePreference: SwitchPreferenceCompat? = null
+ private lateinit var autofillDependencies: List<Preference>
+ private lateinit var oreoAutofillDependencies: List<Preference>
private lateinit var callingActivity: UserPreference
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
@@ -96,16 +97,21 @@ class UserPreference : AppCompatActivity() {
// Autofill preferences
autoFillEnablePreference = findPreference("autofill_enable")
- val autoFillAppsPreference = findPreference<Preference>("autofill_apps")
- val autoFillDefaultPreference = findPreference<CheckBoxPreference>("autofill_default")
- val autoFillAlwaysShowDialogPreference = findPreference<CheckBoxPreference>("autofill_always")
- val autoFillShowFullNamePreference = findPreference<CheckBoxPreference>("autofill_full_path")
+ val autoFillAppsPreference = findPreference<Preference>("autofill_apps")!!
+ val autoFillDefaultPreference = findPreference<CheckBoxPreference>("autofill_default")!!
+ val autoFillAlwaysShowDialogPreference =
+ findPreference<CheckBoxPreference>("autofill_always")!!
+ val autoFillShowFullNamePreference =
+ findPreference<CheckBoxPreference>("autofill_full_path")!!
autofillDependencies = listOf(
autoFillAppsPreference,
autoFillDefaultPreference,
autoFillAlwaysShowDialogPreference,
autoFillShowFullNamePreference
)
+ val oreoAutofillDirectoryStructurePreference =
+ findPreference<ListPreference>("oreo_autofill_directory_structure")!!
+ oreoAutofillDependencies = listOf(oreoAutofillDirectoryStructurePreference)
// Misc preferences
val appVersionPreference = findPreference<Preference>("app_version")
@@ -236,7 +242,7 @@ class UserPreference : AppCompatActivity() {
selectExternalGitRepositoryPreference?.onPreferenceChangeListener = resetRepo
externalGitRepositoryPreference?.onPreferenceChangeListener = resetRepo
- autoFillAppsPreference?.onPreferenceClickListener = ClickListener {
+ autoFillAppsPreference.onPreferenceClickListener = ClickListener {
val intent = Intent(callingActivity, AutofillPreferenceActivity::class.java)
startActivity(intent)
true
@@ -356,10 +362,14 @@ class UserPreference : AppCompatActivity() {
private fun updateAutofillSettings() {
val isAccessibilityServiceEnabled = callingActivity.isAccessibilityServiceEnabled
+ val isAutofillServiceEnabled = callingActivity.isAutofillServiceEnabled
autoFillEnablePreference?.isChecked =
- isAccessibilityServiceEnabled || callingActivity.isAutofillServiceEnabled
+ isAccessibilityServiceEnabled || isAutofillServiceEnabled
autofillDependencies.forEach {
- it?.isVisible = isAccessibilityServiceEnabled
+ it.isVisible = isAccessibilityServiceEnabled
+ }
+ oreoAutofillDependencies.forEach {
+ it.isVisible = isAutofillServiceEnabled
}
}
@@ -409,16 +419,7 @@ class UserPreference : AppCompatActivity() {
startActivity(intent)
}
setNegativeButton(R.string.dialog_cancel, null)
- setOnDismissListener {
- val isEnabled =
- if (enableOreoAutofill && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- callingActivity.isAutofillServiceEnabled
- } else {
- callingActivity.isAccessibilityServiceEnabled
- }
- autoFillEnablePreference?.isChecked = isEnabled
- autofillDependencies.forEach { it?.isVisible = isEnabled }
- }
+ setOnDismissListener { updateAutofillSettings() }
show()
}
}