diff --git a/CHANGELOG b/CHANGELOG index 0f5587d64..51a7c96c8 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,6 @@ KeePassDX(2.9) - * Fix Autofill recognition + * Fix Autofill recognition #712 + * Keep value after renaming custom field #709 KeePassDX(2.8.5) * Fix Base 64 #708 diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditFragment.kt index 57de64db4..2c5560487 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditFragment.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditFragment.kt @@ -413,7 +413,7 @@ class EntryEditFragment: StylishFragment() { } /** - * Update an extra field or create a new one if doesn't exists + * Update an extra field or create a new one if doesn't exists, the old value is lost */ fun putExtraField(extraField: Field) { extraFieldsContainerView.visibility = View.VISIBLE @@ -434,13 +434,24 @@ class EntryEditFragment: StylishFragment() { } } + /** + * Update an extra field and keep the old value + */ fun replaceExtraField(oldExtraField: Field, newExtraField: Field) { extraFieldsContainerView.visibility = View.VISIBLE val index = mExtraFieldsList.indexOf(oldExtraField) + val oldValueEditText: EditText = extraFieldsListView.getChildAt(index) + .findViewWithTag("FIELD_VALUE_TAG") + val oldValue = oldValueEditText.text.toString() + val newExtraFieldWithOldValue = Field(newExtraField).apply { + this.protectedValue.stringValue = oldValue + } mExtraFieldsList.removeAt(index) - mExtraFieldsList.add(index, newExtraField) + mExtraFieldsList.add(index, newExtraFieldWithOldValue) extraFieldsListView.removeViewAt(index) - extraFieldsListView.addView(buildViewFromField(newExtraField), index) + val newView = buildViewFromField(newExtraFieldWithOldValue) + extraFieldsListView.addView(newView, index) + newView?.requestFocus() } fun removeExtraField(oldExtraField: Field) { diff --git a/app/src/main/java/com/kunzisoft/keepass/model/Field.kt b/app/src/main/java/com/kunzisoft/keepass/model/Field.kt index 0ab85025c..e078f106e 100644 --- a/app/src/main/java/com/kunzisoft/keepass/model/Field.kt +++ b/app/src/main/java/com/kunzisoft/keepass/model/Field.kt @@ -33,6 +33,11 @@ class Field : Parcelable { this.protectedValue = value } + constructor(fieldToCopy: Field) { + this.name = fieldToCopy.name + this.protectedValue = fieldToCopy.protectedValue + } + constructor(parcel: Parcel) { this.name = parcel.readString() ?: name this.protectedValue = parcel.readParcelable(ProtectedString::class.java.classLoader) ?: protectedValue diff --git a/fastlane/metadata/android/en-US/changelogs/42.txt b/fastlane/metadata/android/en-US/changelogs/42.txt index 647cd4929..1537ebdd3 100644 --- a/fastlane/metadata/android/en-US/changelogs/42.txt +++ b/fastlane/metadata/android/en-US/changelogs/42.txt @@ -1 +1,2 @@ - * Fix Autofill recognition #709 + * Fix Autofill recognition #712 + * Keep value after renaming custom field #709 diff --git a/fastlane/metadata/android/fr-FR/changelogs/42.txt b/fastlane/metadata/android/fr-FR/changelogs/42.txt index d9f1080bc..6bf0e5e7d 100644 --- a/fastlane/metadata/android/fr-FR/changelogs/42.txt +++ b/fastlane/metadata/android/fr-FR/changelogs/42.txt @@ -1 +1,2 @@ - * Correction de la reconnaissance de remplissage automatique #709 + * Correction de la reconnaissance de remplissage automatique #712 + * La valeur du champ customisé est gardée après son renommage #709