diff options
| author | Aditya Wasan <adityawasan55@gmail.com> | 2020-07-01 00:00:02 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-01 00:00:02 +0530 |
| commit | 82a9a6125473dbffa6a76f33c6ff83b4a1bd69b3 (patch) | |
| tree | 965c887adfb0c5603f6e8f9dbcbd04d4d1011904 /app/src/main/java/com/zeapo/pwdstore/UserPreference.kt | |
| parent | e11ef1ca1d504bcccf73e75c3782cce2c8fc4bec (diff) | |
| download | HardenedPass-82a9a6125473dbffa6a76f33c6ff83b4a1bd69b3.tar.gz HardenedPass-82a9a6125473dbffa6a76f33c6ff83b4a1bd69b3.zip | |
Use PreferenceKeys file to manage SharedPreferences keys. (#891)
* Use PreferenceKeys file to manage SharedPreferences keys.
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Use PreferenceKeys in all files
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Divide PreferenceKeys into multiple regions
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Fix build error
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Use PreferenceKeys in more files
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Reformat code
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Fix build error
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Fix merge issues
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/UserPreference.kt')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/UserPreference.kt | 116 |
1 files changed, 59 insertions, 57 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt index fb27ba6a..03e314f6 100644 --- a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt +++ b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt @@ -52,6 +52,7 @@ import com.zeapo.pwdstore.sshkeygen.ShowSshKeyFragment import com.zeapo.pwdstore.sshkeygen.SshKeyGenActivity import com.zeapo.pwdstore.utils.BiometricAuthenticator import com.zeapo.pwdstore.utils.PasswordRepository +import com.zeapo.pwdstore.utils.PreferenceKeys import com.zeapo.pwdstore.utils.autofillManager import com.zeapo.pwdstore.utils.getEncryptedPrefs import me.msfjarvis.openpgpktx.util.OpenPgpUtils @@ -88,16 +89,16 @@ class UserPreference : AppCompatActivity() { addPreferencesFromResource(R.xml.preference) // Git preferences - val gitServerPreference = findPreference<Preference>("git_server_info") - val openkeystoreIdPreference = findPreference<Preference>("ssh_openkeystore_clear_keyid") - val gitConfigPreference = findPreference<Preference>("git_config") - val sshKeyPreference = findPreference<Preference>("ssh_key") - val sshKeygenPreference = findPreference<Preference>("ssh_keygen") - clearSavedPassPreference = findPreference("clear_saved_pass") - val viewSshKeyPreference = findPreference<Preference>("ssh_see_key") - val deleteRepoPreference = findPreference<Preference>("git_delete_repo") - val externalGitRepositoryPreference = findPreference<Preference>("git_external") - val selectExternalGitRepositoryPreference = findPreference<Preference>("pref_select_external") + val gitServerPreference = findPreference<Preference>(PreferenceKeys.GIT_SERVER_INFO) + val openkeystoreIdPreference = findPreference<Preference>(PreferenceKeys.SSH_OPENKEYSTORE_CLEAR_KEY_ID) + val gitConfigPreference = findPreference<Preference>(PreferenceKeys.GIT_CONFIG) + val sshKeyPreference = findPreference<Preference>(PreferenceKeys.SSH_KEY) + val sshKeygenPreference = findPreference<Preference>(PreferenceKeys.SSH_KEYGEN) + clearSavedPassPreference = findPreference(PreferenceKeys.CLEAR_SAVED_PASS) + val viewSshKeyPreference = findPreference<Preference>(PreferenceKeys.SSH_SEE_KEY) + val deleteRepoPreference = findPreference<Preference>(PreferenceKeys.GIT_DELETE_REPO) + val externalGitRepositoryPreference = findPreference<Preference>(PreferenceKeys.GIT_EXTERNAL) + val selectExternalGitRepositoryPreference = findPreference<Preference>(PreferenceKeys.PREF_SELECT_EXTERNAL) if (!PasswordRepository.isGitRepo()) { listOfNotNull( @@ -109,21 +110,21 @@ class UserPreference : AppCompatActivity() { } // Crypto preferences - val keyPreference = findPreference<Preference>("openpgp_key_id_pref") + val keyPreference = findPreference<Preference>(PreferenceKeys.OPENPGP_KEY_ID_PREF) // General preferences - val showTimePreference = findPreference<Preference>("general_show_time") - val clearClipboard20xPreference = findPreference<CheckBoxPreference>("clear_clipboard_20x") + val showTimePreference = findPreference<Preference>(PreferenceKeys.GENERAL_SHOW_TIME) + val clearClipboard20xPreference = findPreference<CheckBoxPreference>(PreferenceKeys.CLEAR_CLIPBOARD_20X) // Autofill preferences - autoFillEnablePreference = findPreference("autofill_enable") - val oreoAutofillDirectoryStructurePreference = findPreference<ListPreference>("oreo_autofill_directory_structure") - val oreoAutofillDefaultUsername = findPreference<EditTextPreference>("oreo_autofill_default_username") - val oreoAutofillCustomPublixSuffixes = findPreference<EditTextPreference>("oreo_autofill_custom_public_suffixes") - 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") + autoFillEnablePreference = findPreference(PreferenceKeys.AUTOFILL_ENABLE) + val oreoAutofillDirectoryStructurePreference = findPreference<ListPreference>(PreferenceKeys.OREO_AUTOFILL_DIRECTORY_STRUCTURE) + val oreoAutofillDefaultUsername = findPreference<EditTextPreference>(PreferenceKeys.OREO_AUTOFILL_DEFAULT_USERNAME) + val oreoAutofillCustomPublixSuffixes = findPreference<EditTextPreference>(PreferenceKeys.OREO_AUTOFILL_CUSTOM_PUBLIC_SUFFIXES) + val autoFillAppsPreference = findPreference<Preference>(PreferenceKeys.AUTOFILL_APPS) + val autoFillDefaultPreference = findPreference<CheckBoxPreference>(PreferenceKeys.AUTOFILL_DEFAULT) + val autoFillAlwaysShowDialogPreference = findPreference<CheckBoxPreference>(PreferenceKeys.AUTOFILL_ALWAYS) + val autoFillShowFullNamePreference = findPreference<CheckBoxPreference>(PreferenceKeys.AUTOFILL_FULL_PATH) autofillDependencies = listOfNotNull( autoFillAppsPreference, autoFillDefaultPreference, @@ -143,13 +144,13 @@ class UserPreference : AppCompatActivity() { } // Misc preferences - val appVersionPreference = findPreference<Preference>("app_version") + val appVersionPreference = findPreference<Preference>(PreferenceKeys.APP_VERSION) - selectExternalGitRepositoryPreference?.summary = sharedPreferences.getString("git_external_repo", getString(R.string.no_repo_selected)) - viewSshKeyPreference?.isVisible = sharedPreferences.getBoolean("use_generated_key", false) - deleteRepoPreference?.isVisible = !sharedPreferences.getBoolean("git_external", false) - clearClipboard20xPreference?.isVisible = sharedPreferences.getString("general_show_time", "45")?.toInt() != 0 - openkeystoreIdPreference?.isVisible = sharedPreferences.getString("ssh_openkeystore_keyid", null)?.isNotEmpty() + selectExternalGitRepositoryPreference?.summary = sharedPreferences.getString(PreferenceKeys.GIT_EXTERNAL_REPO, getString(R.string.no_repo_selected)) + viewSshKeyPreference?.isVisible = sharedPreferences.getBoolean(PreferenceKeys.USE_GENERATED_KEY, false) + deleteRepoPreference?.isVisible = !sharedPreferences.getBoolean(PreferenceKeys.GIT_EXTERNAL, false) + clearClipboard20xPreference?.isVisible = sharedPreferences.getString(PreferenceKeys.GENERAL_SHOW_TIME, "45")?.toInt() != 0 + openkeystoreIdPreference?.isVisible = sharedPreferences.getString(PreferenceKeys.SSH_OPENKEYSTORE_KEYID, null)?.isNotEmpty() ?: false updateAutofillSettings() @@ -160,7 +161,7 @@ class UserPreference : AppCompatActivity() { keyPreference?.let { pref -> updateKeyIDsSummary(pref) pref.onPreferenceClickListener = ClickListener { - val providerPackageName = requireNotNull(sharedPreferences.getString("openpgp_provider_list", "")) + val providerPackageName = requireNotNull(sharedPreferences.getString(PreferenceKeys.OPENPGP_PROVIDER_LIST, "")) if (providerPackageName.isEmpty()) { Snackbar.make(requireView(), resources.getString(R.string.provider_toast_text), Snackbar.LENGTH_LONG).show() false @@ -193,17 +194,17 @@ class UserPreference : AppCompatActivity() { clearSavedPassPreference?.onPreferenceClickListener = ClickListener { encryptedPreferences.edit { - if (encryptedPreferences.getString("https_password", null) != null) - remove("https_password") - else if (encryptedPreferences.getString("ssh_key_local_passphrase", null) != null) - remove("ssh_key_local_passphrase") + if (encryptedPreferences.getString(PreferenceKeys.HTTPS_PASSWORD, null) != null) + remove(PreferenceKeys.HTTPS_PASSWORD) + else if (encryptedPreferences.getString(PreferenceKeys.SSH_KEY_LOCAL_PASSPHRASE, null) != null) + remove(PreferenceKeys.SSH_KEY_LOCAL_PASSPHRASE) } updateClearSavedPassphrasePrefs() true } openkeystoreIdPreference?.onPreferenceClickListener = ClickListener { - sharedPreferences.edit { putString("ssh_openkeystore_keyid", null) } + sharedPreferences.edit { putString(PreferenceKeys.SSH_OPENKEYSTORE_KEYID, null) } it.isVisible = false true } @@ -237,7 +238,7 @@ class UserPreference : AppCompatActivity() { removeDynamicShortcuts(dynamicShortcuts.map { it.id }.toMutableList()) } } - sharedPreferences.edit { putBoolean("repository_initialized", false) } + sharedPreferences.edit { putBoolean(PreferenceKeys.REPOSITORY_INITIALIZED, false) } dialogInterface.cancel() callingActivity.finish() } @@ -248,7 +249,7 @@ class UserPreference : AppCompatActivity() { } selectExternalGitRepositoryPreference?.summary = - sharedPreferences.getString("git_external_repo", context.getString(R.string.no_repo_selected)) + sharedPreferences.getString(PreferenceKeys.GIT_EXTERNAL_REPO, context.getString(R.string.no_repo_selected)) selectExternalGitRepositoryPreference?.onPreferenceClickListener = ClickListener { callingActivity.selectExternalGitRepository() true @@ -257,7 +258,7 @@ class UserPreference : AppCompatActivity() { val resetRepo = Preference.OnPreferenceChangeListener { _, o -> deleteRepoPreference?.isVisible = !(o as Boolean) PasswordRepository.closeRepository() - sharedPreferences.edit { putBoolean("repo_changed", true) } + sharedPreferences.edit { putBoolean(PreferenceKeys.REPO_CHANGED, true) } true } @@ -275,8 +276,8 @@ class UserPreference : AppCompatActivity() { true } - findPreference<Preference>("export_passwords")?.apply { - isVisible = sharedPreferences.getBoolean("repository_initialized", false) + findPreference<Preference>(PreferenceKeys.EXPORT_PASSWORDS)?.apply { + isVisible = sharedPreferences.getBoolean(PreferenceKeys.REPOSITORY_INITIALIZED, false) onPreferenceClickListener = Preference.OnPreferenceClickListener { callingActivity.exportPasswords() true @@ -294,12 +295,13 @@ class UserPreference : AppCompatActivity() { } showTimePreference?.summaryProvider = Preference.SummaryProvider<Preference> { - getString(R.string.pref_clipboard_timeout_summary, sharedPreferences.getString("general_show_time", "45")) + getString(R.string.pref_clipboard_timeout_summary, sharedPreferences.getString + (PreferenceKeys.GENERAL_SHOW_TIME, "45")) } - findPreference<CheckBoxPreference>("enable_debug_logging")?.isVisible = !BuildConfig.ENABLE_DEBUG_FEATURES + findPreference<CheckBoxPreference>(PreferenceKeys.ENABLE_DEBUG_LOGGING)?.isVisible = !BuildConfig.ENABLE_DEBUG_FEATURES - findPreference<CheckBoxPreference>("biometric_auth")?.apply { + findPreference<CheckBoxPreference>(PreferenceKeys.BIOMETRIC_AUTH)?.apply { val isFingerprintSupported = BiometricManager.from(requireContext()).canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS if (!isFingerprintSupported) { isEnabled = false @@ -314,13 +316,13 @@ class UserPreference : AppCompatActivity() { when (result) { is BiometricAuthenticator.Result.Success -> { // Apply the changes - putBoolean("biometric_auth", checked) + putBoolean(PreferenceKeys.BIOMETRIC_AUTH, checked) isEnabled = true } else -> { // If any error occurs, revert back to the previous state. This // catch-all clause includes the cancellation case. - putBoolean("biometric_auth", !checked) + putBoolean(PreferenceKeys.BIOMETRIC_AUTH, !checked) isChecked = !checked isEnabled = true } @@ -337,20 +339,20 @@ class UserPreference : AppCompatActivity() { } } - val prefCustomXkpwdDictionary = findPreference<Preference>("pref_key_custom_dict") + val prefCustomXkpwdDictionary = findPreference<Preference>(PreferenceKeys.PREF_KEY_CUSTOM_DICT) prefCustomXkpwdDictionary?.onPreferenceClickListener = ClickListener { callingActivity.storeCustomDictionaryPath() true } - val dictUri = sharedPreferences.getString("pref_key_custom_dict", "") + val dictUri = sharedPreferences.getString(PreferenceKeys.PREF_KEY_CUSTOM_DICT, "") if (!TextUtils.isEmpty(dictUri)) { setCustomDictSummary(prefCustomXkpwdDictionary, Uri.parse(dictUri)) } - val prefIsCustomDict = findPreference<CheckBoxPreference>("pref_key_is_custom_dict") - val prefCustomDictPicker = findPreference<Preference>("pref_key_custom_dict") - val prefPwgenType = findPreference<ListPreference>("pref_key_pwgen_type") + val prefIsCustomDict = findPreference<CheckBoxPreference>(PreferenceKeys.PREF_KEY_IS_CUSTOM_DICT) + val prefCustomDictPicker = findPreference<Preference>(PreferenceKeys.PREF_KEY_CUSTOM_DICT) + val prefPwgenType = findPreference<ListPreference>(PreferenceKeys.PREF_KEY_PWGEN_TYPE) updateXkPasswdPrefsVisibility(prefPwgenType?.value, prefIsCustomDict, prefCustomDictPicker) prefPwgenType?.onPreferenceChangeListener = ChangeListener { _, newValue -> @@ -371,7 +373,7 @@ class UserPreference : AppCompatActivity() { } private fun updateKeyIDsSummary(preference: Preference) { - val selectedKeys = (sharedPreferences.getStringSet("openpgp_key_ids_set", null) + val selectedKeys = (sharedPreferences.getStringSet(PreferenceKeys.OPENPGP_KEY_IDS_SET, null) ?: HashSet()).toTypedArray() preference.summary = if (selectedKeys.isEmpty()) { resources.getString(R.string.pref_no_key_selected) @@ -410,8 +412,8 @@ class UserPreference : AppCompatActivity() { private fun updateClearSavedPassphrasePrefs() { clearSavedPassPreference?.apply { - val sshPass = encryptedPreferences.getString("ssh_key_local_passphrase", null) - val httpsPass = encryptedPreferences.getString("https_password", null) + val sshPass = encryptedPreferences.getString(PreferenceKeys.SSH_KEY_LOCAL_PASSPHRASE, null) + val httpsPass = encryptedPreferences.getString(PreferenceKeys.HTTPS_PASSWORD, null) if (sshPass == null && httpsPass == null) { isVisible = false return@apply @@ -654,8 +656,8 @@ class UserPreference : AppCompatActivity() { ).show() val prefs = PreferenceManager.getDefaultSharedPreferences(applicationContext) - prefs.edit { putBoolean("use_generated_key", false) } - getEncryptedPrefs("git_operation").edit { remove("ssh_key_local_passphrase") } + prefs.edit { putBoolean(PreferenceKeys.USE_GENERATED_KEY, false) } + getEncryptedPrefs("git_operation").edit { remove(PreferenceKeys.SSH_KEY_LOCAL_PASSPHRASE) } // Delete the public key from generation File("""$filesDir/.ssh_key.pub""").delete() @@ -688,12 +690,12 @@ class UserPreference : AppCompatActivity() { .setTitle(getString(R.string.sdcard_root_warning_title)) .setMessage(getString(R.string.sdcard_root_warning_message)) .setPositiveButton("Remove everything") { _, _ -> - prefs.edit { putString("git_external_repo", uri?.path) } + prefs.edit { putString(PreferenceKeys.GIT_EXTERNAL_REPO, uri?.path) } } .setNegativeButton(R.string.dialog_cancel, null) .show() } - prefs.edit { putString("git_external_repo", repoPath) } + prefs.edit { putString(PreferenceKeys.GIT_EXTERNAL_REPO, repoPath) } } EXPORT_PASSWORDS -> { val uri = data.data @@ -716,9 +718,9 @@ class UserPreference : AppCompatActivity() { ).show() val prefs = PreferenceManager.getDefaultSharedPreferences(applicationContext) - prefs.edit { putString("pref_key_custom_dict", uri.toString()) } + prefs.edit { putString(PreferenceKeys.PREF_KEY_CUSTOM_DICT, uri.toString()) } - val customDictPref = prefsFragment.findPreference<Preference>("pref_key_custom_dict") + val customDictPref = prefsFragment.findPreference<Preference>(PreferenceKeys.PREF_KEY_CUSTOM_DICT) setCustomDictSummary(customDictPref, uri) // copy user selected file to internal storage val inputStream = contentResolver.openInputStream(uri) |
