From c46f50f86febc6d42b4da6c0160fc8fe3d494edf Mon Sep 17 00:00:00 2001 From: Emmanuel Corrales Date: Sun, 26 May 2019 17:24:16 +0800 Subject: [PATCH] Added a "SHOW EXTRA CONTENT" button under the "SHOW PASSWORD" button. (#510) * Add 'SHOW EXTRA CONTENT' button. * Show the extra content after clicking the 'SHOW EXTRA CONTENT' button. * Change the regular button to a toggle button and add text for hiding extra contents. * Change the implementaton of showing/hiding extra contents to accomodate using a toggle button. * Add padding to the top of the button. --- .../com/zeapo/pwdstore/crypto/PgpActivity.kt | 20 +++++++++++++++++-- app/src/main/res/layout/decrypt_layout.xml | 13 ++++++++++++ app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 33 insertions(+), 2 deletions(-) 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 81a79d05..f6f0b9a8 100644 --- a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt @@ -271,11 +271,27 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound { } if (entry.hasExtraContent()) { - crypto_extra_show_layout.visibility = if (showExtraContent) View.VISIBLE else View.GONE - crypto_extra_show.typeface = monoTypeface crypto_extra_show.text = entry.extraContent + if (showExtraContent) { + crypto_extra_show_layout.visibility = View.VISIBLE + crypto_extra_toggle_show.visibility = View.GONE + crypto_extra_show.transformationMethod = null + } else { + crypto_extra_show_layout.visibility = View.GONE + crypto_extra_toggle_show.visibility = View.VISIBLE + crypto_extra_toggle_show.setOnCheckedChangeListener { _, _ -> + crypto_extra_show.text = entry.extraContent + } + + crypto_extra_show.transformationMethod = object : PasswordTransformationMethod() { + override fun getTransformation(source: CharSequence, view: View): CharSequence { + return if (crypto_extra_toggle_show.isChecked) source else super.getTransformation(source, view) + } + } + } + if (entry.hasUsername()) { crypto_username_show.visibility = View.VISIBLE crypto_username_show_label.visibility = View.VISIBLE diff --git a/app/src/main/res/layout/decrypt_layout.xml b/app/src/main/res/layout/decrypt_layout.xml index 6f0d9d18..de3d0f03 100644 --- a/app/src/main/res/layout/decrypt_layout.xml +++ b/app/src/main/res/layout/decrypt_layout.xml @@ -228,6 +228,19 @@ android:textIsSelectable="true" android:typeface="monospace" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 52f631c1..bdb77193 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -215,6 +215,8 @@ No external repository selected Send password as plaintext using… Show password + Show extra content + Hide extra content Repository URI App icon Folder icon