diff options
| author | Fabian Henneke <FabianHenneke@users.noreply.github.com> | 2020-03-25 18:13:04 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-25 18:13:04 +0100 |
| commit | fde16c60f4ce5d57a0c7d5a0186dcd532a23f0f0 (patch) | |
| tree | 8a72bcc077590707c47017548cc8adc3eae6e0d1 /app/src/main/java/com/zeapo/pwdstore/UserPreference.kt | |
| parent | 973e023dda3caf17fe024b9ba7f1872c5527e654 (diff) | |
| download | HardenedPass-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.kt | 37 |
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() } } |
