aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
diff options
context:
space:
mode:
authorAditya Wasan <adityawasan55@gmail.com>2020-07-01 00:00:02 +0530
committerGitHub <noreply@github.com>2020-07-01 00:00:02 +0530
commit82a9a6125473dbffa6a76f33c6ff83b4a1bd69b3 (patch)
tree965c887adfb0c5603f6e8f9dbcbd04d4d1011904 /app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
parente11ef1ca1d504bcccf73e75c3782cce2c8fc4bec (diff)
downloadHardenedPass-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.kt116
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)