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" /> + +