diff options
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/UserPreference.kt | 12 | ||||
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt | 36 | ||||
-rw-r--r-- | app/src/main/res/values-es/strings.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/values/strings.xml | 3 |
4 files changed, 35 insertions, 19 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt index afac816a..7d1be72c 100644 --- a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt +++ b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt @@ -168,6 +168,16 @@ class UserPreference : AppCompatActivity() { callingActivity.exportPasswordsWithPermissions() true } + + findPreference("general_show_time").onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _: Preference?, newValue: Any? -> + try { + findPreference("clear_after_copy").isEnabled = newValue.toString().toInt() != 0 + findPreference("clear_clipboard_20x").isEnabled = newValue.toString().toInt() != 0 + true + } catch (e: NumberFormatException) { + false + } + } } override fun onStart() { @@ -183,6 +193,8 @@ class UserPreference : AppCompatActivity() { )?.isNotEmpty() ?: false findPreference("hotp_remember_clear_choice").isEnabled = sharedPreferences.getBoolean("hotp_remember_check", false) + findPreference("clear_after_copy").isEnabled = sharedPreferences.getString("general_show_time", "45")?.toInt() != 0 + findPreference("clear_clipboard_20x").isEnabled = sharedPreferences.getString("general_show_time", "45")?.toInt() != 0 val keyPref = findPreference("openpgp_key_id_pref") val selectedKeys: Array<String> = ArrayList<String>( sharedPreferences.getStringSet( diff --git a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt index 9be1f170..9828f43a 100644 --- a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt @@ -612,8 +612,6 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound { if (findViewById<TextView>(R.id.crypto_password_show) == null) return - setTimer() - val clip = ClipData.newPlainText("pgp_handler_result_pm", passwordEntry?.password) clipboard.primaryClip = clip @@ -624,7 +622,13 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound { // ignore and keep default } - showToast(this.resources.getString(R.string.clipboard_password_toast_text, clearAfter)) + if (settings.getBoolean("clear_after_copy", true) && clearAfter != 0) { + setTimer() + showToast(this.resources.getString(R.string.clipboard_password_toast_text, clearAfter)) + } else { + showToast(this.resources.getString(R.string.clipboard_password_no_clear_toast_text)) + } + } private fun copyUsernameToClipBoard(username: String) { @@ -743,20 +747,18 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound { if (skip) return checkAndIncrementHotp() - // only clear the clipboard if we automatically copied the password to it - if (settings.getBoolean("copy_on_decrypt", true)) { - Log.d("DELAY_SHOW", "Clearing the clipboard") - val clip = ClipData.newPlainText("pgp_handler_result_pm", "") - clipboard.primaryClip = clip - if (settings.getBoolean("clear_clipboard_20x", false)) { - val handler = Handler() - for (i in 0..18) { - val count = i.toString() - handler.postDelayed( - { clipboard.primaryClip = ClipData.newPlainText(count, count) }, - (i * 500).toLong() - ) - } + // No need to validate clear_after_copy. It was validated in copyPasswordToClipBoard() + Log.d("DELAY_SHOW", "Clearing the clipboard") + val clip = ClipData.newPlainText("pgp_handler_result_pm", "") + clipboard.primaryClip = clip + if (settings.getBoolean("clear_clipboard_20x", false)) { + val handler = Handler() + for (i in 0..18) { + val count = i.toString() + handler.postDelayed( + { clipboard.primaryClip = ClipData.newPlainText(count, count) }, + (i * 500).toLong() + ) } } diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 1131616d..392be07f 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -30,6 +30,7 @@ <!-- PGPHandler --> <string name="provider_toast_text">¡No se ha seleccionado ningún proveedor OpenGPG!</string> <string name="clipboard_password_toast_text">Contraseña copiada al portapapeles, tienes %d segundos para pegarla.</string> + <string name="clipboard_password_no_clear_toast_text">Contraseña copiada al portapapeles</string> <string name="clipboard_username_toast_text">Nombre de usuario copiado al portapapeles</string> <string name="clipboard_otp_toast_text">Código OTP copiado al portapapeles</string> <string name="file_toast_text">Por favor selecciona un nombre de archivo</string> @@ -122,7 +123,7 @@ <string name="pref_no_key_selected">Ninguna llave seleccionada</string> <string name="pref_general_title">General</string> <string name="pref_password_title">Tiempo para mostrar contraseña</string> - <string name="pref_password_dialog_title">Establece el tiempo antes de limpiar la contraseña del portapapeles.</string> + <string name="pref_password_dialog_title">Establece el tiempo antes de limpiar la contraseña del portapapeles. Un valor de cero deshabilita el limpiado.</string> <string name="pref_copy_title">Copiar contraseña automáticamente</string> <string name="pref_copy_dialog_title">Automáticamente copia la contraseña al portapapeles si el descifrado fue exitoso.</string> <string name="ssh_key_success_dialog_title">Llave SSH importada</string> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ddcb5da4..0b1afda1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -38,6 +38,7 @@ <!-- PGPHandler --> <string name="provider_toast_text">No OpenPGP Provider selected!</string> <string name="clipboard_password_toast_text">Password copied to clipboard, you have %d seconds to paste it somewhere.</string> + <string name="clipboard_password_no_clear_toast_text">Password copied to clipboard</string> <string name="clipboard_username_toast_text">Username copied to clipboard</string> <string name="clipboard_otp_toast_text">OTP code copied to clipboard</string> <string name="file_toast_text">Please provide a file name</string> @@ -136,7 +137,7 @@ <string name="pref_no_key_selected">No key selected</string> <string name="pref_general_title">General</string> <string name="pref_password_title">Password Show Time</string> - <string name="pref_password_dialog_title">Set the time you want the password to be in clipboard</string> + <string name="pref_password_dialog_title">Set the time you want the password to be in clipboard. 0 means forever.</string> <string name="pref_copy_title">Automatically Copy Password</string> <string name="pref_copy_dialog_title">Automatically copy the password to the clipboard after decryption was successful.</string> <string name="ssh_key_success_dialog_title">SSH-key imported</string> |