diff --git a/CHANGELOG b/CHANGELOG
index 429ee8b7a..08583bd51 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,5 @@
KeePassDX(2.9.1)
+ * Copy password from generator #697
* Fix Magikeyboard not fully visible #772
* Fix change font size #770
* Small fixes #771
diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/GeneratePasswordDialogFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/GeneratePasswordDialogFragment.kt
index 38799873b..ccb47d8f3 100644
--- a/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/GeneratePasswordDialogFragment.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/GeneratePasswordDialogFragment.kt
@@ -26,13 +26,11 @@ import com.google.android.material.textfield.TextInputLayout
import androidx.fragment.app.DialogFragment
import androidx.appcompat.app.AlertDialog
import android.view.View
-import android.widget.Button
-import android.widget.CompoundButton
-import android.widget.EditText
-import android.widget.SeekBar
+import android.widget.*
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.password.PasswordGenerator
import com.kunzisoft.keepass.settings.PreferencesUtil
+import com.kunzisoft.keepass.timeout.ClipboardHelper
import com.kunzisoft.keepass.view.applyFontVisibility
class GeneratePasswordDialogFragment : DialogFragment() {
@@ -78,6 +76,15 @@ class GeneratePasswordDialogFragment : DialogFragment() {
passwordInputLayoutView = root?.findViewById(R.id.password_input_layout)
passwordView = root?.findViewById(R.id.password)
passwordView?.applyFontVisibility()
+ val passwordCopyView: ImageView? = root?.findViewById(R.id.password_copy_button)
+ passwordCopyView?.visibility = if(PreferencesUtil.allowCopyPasswordAndProtectedFields(activity))
+ View.VISIBLE else View.GONE
+ val clipboardHelper = ClipboardHelper(activity)
+ passwordCopyView?.setOnClickListener {
+ clipboardHelper.timeoutCopyToClipboard(passwordView!!.text.toString(),
+ getString(R.string.copy_field,
+ getString(R.string.entry_password)))
+ }
lengthTextView = root?.findViewById(R.id.length)
diff --git a/app/src/main/res/layout/fragment_generate_password.xml b/app/src/main/res/layout/fragment_generate_password.xml
index 71916a54a..b506eea0c 100644
--- a/app/src/main/res/layout/fragment_generate_password.xml
+++ b/app/src/main/res/layout/fragment_generate_password.xml
@@ -33,27 +33,45 @@
android:layout_height="wrap_content"
android:orientation="vertical">
-
+ android:layout_height="wrap_content">
-
-
+ app:passwordToggleEnabled="true"
+ app:passwordToggleTint="?attr/colorAccent">
+
+
+
+
+
+