aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
diff options
context:
space:
mode:
authorHarsh Shandilya <msfjarvis@gmail.com>2020-06-12 14:58:15 +0000
committerGitHub <noreply@github.com>2020-06-12 20:28:15 +0530
commitd8231e112afb501c43041a6f839ab8285f400f77 (patch)
tree6785a8d0c6a70a3017ce5d62fe6b8234d5564f07 /app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
parentbf33fb2c88a208931340201e95a524b274d70b31 (diff)
downloadHardenedPass-d8231e112afb501c43041a6f839ab8285f400f77.tar.gz
HardenedPass-d8231e112afb501c43041a6f839ab8285f400f77.zip
Break down PGP Activity into focused sections (#776)
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/UserPreference.kt')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/UserPreference.kt69
1 files changed, 38 insertions, 31 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
index 96f23724..04967c82 100644
--- a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
@@ -21,6 +21,7 @@ import android.text.TextUtils
import android.view.MenuItem
import android.view.accessibility.AccessibilityManager
import android.widget.Toast
+import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.AppCompatTextView
import androidx.biometric.BiometricManager
@@ -42,7 +43,8 @@ import com.google.android.material.snackbar.Snackbar
import com.zeapo.pwdstore.autofill.AutofillPreferenceActivity
import com.zeapo.pwdstore.autofill.oreo.BrowserAutofillSupportLevel
import com.zeapo.pwdstore.autofill.oreo.getInstalledBrowsersWithAutofillSupportLevel
-import com.zeapo.pwdstore.crypto.PgpActivity
+import com.zeapo.pwdstore.crypto.BasePgpActivity
+import com.zeapo.pwdstore.crypto.GetKeyIdsActivity
import com.zeapo.pwdstore.git.GitConfigActivity
import com.zeapo.pwdstore.git.GitServerConfigActivity
import com.zeapo.pwdstore.pwgenxkpwd.XkpwdDictionary
@@ -74,12 +76,13 @@ class UserPreference : AppCompatActivity() {
private lateinit var autofillDependencies: List<Preference>
private lateinit var oreoAutofillDependencies: List<Preference>
private lateinit var callingActivity: UserPreference
+ private lateinit var sharedPreferences: SharedPreferences
private lateinit var encryptedPreferences: SharedPreferences
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
callingActivity = requireActivity() as UserPreference
val context = requireContext()
- val sharedPreferences = preferenceManager.sharedPreferences
+ sharedPreferences = preferenceManager.sharedPreferences
encryptedPreferences = requireActivity().applicationContext.getEncryptedPrefs("git_operation")
addPreferencesFromResource(R.xml.preference)
@@ -146,15 +149,6 @@ class UserPreference : AppCompatActivity() {
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
- val selectedKeys = (sharedPreferences.getStringSet("openpgp_key_ids_set", null)
- ?: HashSet()).toTypedArray()
- keyPreference?.summary = if (selectedKeys.isEmpty()) {
- this.resources.getString(R.string.pref_no_key_selected)
- } else {
- selectedKeys.joinToString(separator = ";") { s ->
- OpenPgpUtils.convertKeyIdToHex(java.lang.Long.valueOf(s))
- }
- }
openkeystoreIdPreference?.isVisible = sharedPreferences.getString("ssh_openkeystore_keyid", null)?.isNotEmpty()
?: false
@@ -163,16 +157,21 @@ class UserPreference : AppCompatActivity() {
appVersionPreference?.summary = "Version: ${BuildConfig.VERSION_NAME}"
- keyPreference?.onPreferenceClickListener = ClickListener {
- val providerPackageName = requireNotNull(sharedPreferences.getString("openpgp_provider_list", ""))
- if (providerPackageName.isEmpty()) {
- Snackbar.make(requireView(), resources.getString(R.string.provider_toast_text), Snackbar.LENGTH_LONG).show()
- false
- } else {
- val intent = Intent(callingActivity, PgpActivity::class.java)
- intent.putExtra("OPERATION", "GET_KEY_ID")
- startActivityForResult(intent, IMPORT_PGP_KEY)
- true
+ keyPreference?.let { pref ->
+ updateKeyIDsSummary(pref)
+ pref.onPreferenceClickListener = ClickListener {
+ val providerPackageName = requireNotNull(sharedPreferences.getString("openpgp_provider_list", ""))
+ if (providerPackageName.isEmpty()) {
+ Snackbar.make(requireView(), resources.getString(R.string.provider_toast_text), Snackbar.LENGTH_LONG).show()
+ false
+ } else {
+ val intent = Intent(callingActivity, GetKeyIdsActivity::class.java)
+ val keySelectResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
+ updateKeyIDsSummary(pref)
+ }
+ keySelectResult.launch(intent)
+ true
+ }
}
}
@@ -366,13 +365,25 @@ class UserPreference : AppCompatActivity() {
}
}
+ private fun updateKeyIDsSummary(preference: Preference) {
+ val selectedKeys = (sharedPreferences.getStringSet("openpgp_key_ids_set", null)
+ ?: HashSet()).toTypedArray()
+ preference.summary = if (selectedKeys.isEmpty()) {
+ resources.getString(R.string.pref_no_key_selected)
+ } else {
+ selectedKeys.joinToString(separator = ";") { s ->
+ OpenPgpUtils.convertKeyIdToHex(s.toLong())
+ }
+ }
+ }
+
private fun updateXkPasswdPrefsVisibility(newValue: Any?, prefIsCustomDict: CheckBoxPreference?, prefCustomDictPicker: Preference?) {
when (newValue as String) {
- PgpActivity.KEY_PWGEN_TYPE_CLASSIC -> {
+ BasePgpActivity.KEY_PWGEN_TYPE_CLASSIC -> {
prefIsCustomDict?.isVisible = false
prefCustomDictPicker?.isVisible = false
}
- PgpActivity.KEY_PWGEN_TYPE_XKPASSWD -> {
+ BasePgpActivity.KEY_PWGEN_TYPE_XKPASSWD -> {
prefIsCustomDict?.isVisible = true
prefCustomDictPicker?.isVisible = true
}
@@ -653,8 +664,6 @@ class UserPreference : AppCompatActivity() {
.show()
}
}
- EDIT_GIT_INFO -> {
- }
SELECT_GIT_DIRECTORY -> {
val uri = data.data
@@ -792,12 +801,10 @@ class UserPreference : AppCompatActivity() {
companion object {
private const val IMPORT_SSH_KEY = 1
- private const val IMPORT_PGP_KEY = 2
- private const val EDIT_GIT_INFO = 3
- private const val SELECT_GIT_DIRECTORY = 4
- private const val EXPORT_PASSWORDS = 5
- private const val EDIT_GIT_CONFIG = 6
- private const val SET_CUSTOM_XKPWD_DICT = 7
+ private const val SELECT_GIT_DIRECTORY = 2
+ private const val EXPORT_PASSWORDS = 3
+ private const val EDIT_GIT_CONFIG = 4
+ private const val SET_CUSTOM_XKPWD_DICT = 5
private const val TAG = "UserPreference"
/**