diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/setupEncryption/SetupEncryptionDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/setupEncryption/SetupEncryptionDialogFragment.kt
index 857b87bbfe62..457de2260720 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/setupEncryption/SetupEncryptionDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/setupEncryption/SetupEncryptionDialogFragment.kt
@@ -21,6 +21,7 @@ import com.nextcloud.client.account.User
import com.nextcloud.client.di.Injectable
import com.nextcloud.client.network.ClientFactory
import com.nextcloud.utils.extensions.getParcelableArgument
+import com.owncloud.android.BuildConfig
import com.owncloud.android.R
import com.owncloud.android.databinding.SetupEncryptionDialogBinding
import com.owncloud.android.datamodel.ArbitraryDataProvider
@@ -34,6 +35,7 @@ import com.owncloud.android.lib.resources.users.GetPublicKeyRemoteOperation
import com.owncloud.android.lib.resources.users.GetServerPublicKeyRemoteOperation
import com.owncloud.android.lib.resources.users.SendCSRRemoteOperation
import com.owncloud.android.lib.resources.users.StorePrivateKeyRemoteOperation
+import com.owncloud.android.utils.ClipboardUtil
import com.owncloud.android.utils.DisplayUtils
import com.owncloud.android.utils.EncryptionUtils
import com.owncloud.android.utils.crypto.CryptoHelper
@@ -237,6 +239,7 @@ class SetupEncryptionDialogFragment :
}
private fun generateKey() {
+ binding.copyPassphraseButton.visibility = View.GONE
binding.encryptionPassphrase.visibility = View.GONE
positiveButton?.visibility = View.GONE
negativeButton?.visibility = View.GONE
@@ -499,6 +502,8 @@ class SetupEncryptionDialogFragment :
binding.encryptionPassphrase.text = generateMnemonicString(true)
binding.encryptionPassphrase.visibility = View.VISIBLE
+ setupCopyPassphraseButton()
+
positiveButton?.setText(R.string.end_to_end_encryption_confirm_button)
positiveButton?.visibility = View.VISIBLE
negativeButton?.visibility = View.VISIBLE
@@ -512,6 +517,17 @@ class SetupEncryptionDialogFragment :
keyResult = KEY_GENERATE
}
+ private fun setupCopyPassphraseButton() {
+ if (!BuildConfig.DEBUG) {
+ return
+ }
+
+ binding.copyPassphraseButton.visibility = View.VISIBLE
+ binding.copyPassphraseButton.setOnClickListener {
+ ClipboardUtil.copyToClipboard(requireActivity(), binding.encryptionPassphrase.text.toString())
+ }
+ }
+
@VisibleForTesting
fun errorSavingKeys() {
if (dialog == null) {
diff --git a/app/src/main/res/layout/setup_encryption_dialog.xml b/app/src/main/res/layout/setup_encryption_dialog.xml
index fdd75b65661e..3fa8d5784bfb 100644
--- a/app/src/main/res/layout/setup_encryption_dialog.xml
+++ b/app/src/main/res/layout/setup_encryption_dialog.xml
@@ -36,6 +36,17 @@
tools:text="@string/placeholder_passphrase"
tools:visibility="visible" />
+
+