diff --git a/app/src/main/java/com/keepassdroid/activities/EntryActivity.java b/app/src/main/java/com/keepassdroid/activities/EntryActivity.java
index bd9425660..3358b8b40 100644
--- a/app/src/main/java/com/keepassdroid/activities/EntryActivity.java
+++ b/app/src/main/java/com/keepassdroid/activities/EntryActivity.java
@@ -165,12 +165,14 @@ public class EntryActivity extends LockingHideActivity {
mEntry.getUsername(),
getResources()));
// Add password to notifications
- if (mEntry.getPassword().length() > 0)
- notificationFields.add(
- new NotificationField(
- NotificationField.NotificationFieldId.PASSWORD,
- mEntry.getPassword(),
- getResources()));
+ if (PreferencesUtil.allowCopyPassword(this)) {
+ if (mEntry.getPassword().length() > 0)
+ notificationFields.add(
+ new NotificationField(
+ NotificationField.NotificationFieldId.PASSWORD,
+ mEntry.getPassword(),
+ getResources()));
+ }
// Add extra fields
if (mEntry.allowExtraFields()) {
try {
@@ -219,10 +221,12 @@ public class EntryActivity extends LockingHideActivity {
);
entryContentsView.assignPassword(mEntry.getPassword(true, pm));
- entryContentsView.assignPasswordCopyListener(view ->
- clipboardHelper.timeoutCopyToClipboard(mEntry.getPassword(true, App.getDB().pm),
- getString(R.string.copy_field, getString(R.string.entry_password)))
- );
+ if (PreferencesUtil.allowCopyPassword(this)) {
+ entryContentsView.assignPasswordCopyListener(view ->
+ clipboardHelper.timeoutCopyToClipboard(mEntry.getPassword(true, App.getDB().pm),
+ getString(R.string.copy_field, getString(R.string.entry_password)))
+ );
+ }
entryContentsView.assignURL(mEntry.getUrl(true, pm));
diff --git a/app/src/main/java/com/keepassdroid/settings/PreferencesUtil.java b/app/src/main/java/com/keepassdroid/settings/PreferencesUtil.java
index 422729a74..171638d42 100644
--- a/app/src/main/java/com/keepassdroid/settings/PreferencesUtil.java
+++ b/app/src/main/java/com/keepassdroid/settings/PreferencesUtil.java
@@ -131,4 +131,10 @@ public class PreferencesUtil {
return prefs.getBoolean(ctx.getString(R.string.auto_open_file_uri_key),
ctx.getResources().getBoolean(R.bool.auto_open_file_uri_default));
}
+
+ public static boolean allowCopyPassword(Context ctx) {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
+ return prefs.getBoolean(ctx.getString(R.string.allow_copy_password_key),
+ ctx.getResources().getBoolean(R.bool.allow_copy_password_default));
+ }
}
diff --git a/app/src/main/java/com/keepassdroid/view/EntryContentsView.java b/app/src/main/java/com/keepassdroid/view/EntryContentsView.java
index 9074900cf..271526b61 100644
--- a/app/src/main/java/com/keepassdroid/view/EntryContentsView.java
+++ b/app/src/main/java/com/keepassdroid/view/EntryContentsView.java
@@ -130,6 +130,7 @@ public class EntryContentsView extends LinearLayout {
passwordView.setText(password);
if (fontInVisibility)
Util.applyFontVisibilityTo(passwordView);
+ passwordActionView.setVisibility(GONE);
} else {
passwordContainerView.setVisibility(GONE);
}
@@ -137,6 +138,7 @@ public class EntryContentsView extends LinearLayout {
public void assignPasswordCopyListener(OnClickListener onClickListener) {
passwordActionView.setOnClickListener(onClickListener);
+ passwordActionView.setVisibility(VISIBLE);
}
public boolean isPasswordPresent() {
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 379d480ea..eb1238bb7 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -243,6 +243,8 @@
Change la police de caractères des champs pour une meilleure visibilité
Ouvrir le fichier sélectionné automatiquement
Ouvrir automatiquement un fichier à partir de l\'écran de sélection après une sélection dans le navigateur de fichiers
+ Copie de mot de passe
+ Autoriser la copie du mot de passe dans le presse-papiers. Attention: ceci est connu comme un défaut de sécurité
- 5 secondes
diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml
index b58fd1efb..58213d7af 100644
--- a/app/src/main/res/values/donottranslate.xml
+++ b/app/src/main/res/values/donottranslate.xml
@@ -66,6 +66,7 @@
recycle_bin_key
monospace_font_extra_fields_enable_key
auto_open_file_uri_key
+ allow_copy_password_key
true
true
@@ -82,6 +83,7 @@
true
true
true
+ true
300000
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8d97eca40..0ebe07f66 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -244,6 +244,8 @@
Change the font of the fields for better character visibility
Auto open selected file
Automatically open a file from the selection screen after a selection in the file browser
+ Copy of password
+ Allow the copy of the password to the clipboard. Warning: this is known as a security defect
- 5 seconds
diff --git a/app/src/main/res/xml/app_preferences.xml b/app/src/main/res/xml/app_preferences.xml
index c3b18a1a8..16320828a 100644
--- a/app/src/main/res/xml/app_preferences.xml
+++ b/app/src/main/res/xml/app_preferences.xml
@@ -80,6 +80,11 @@
android:title="@string/maskpass_title"
android:summary="@string/maskpass_summary"
android:defaultValue="@bool/maskpass_default"/>
+