From 706d117d80e0d908625fd7ef21a1856f23d8e8bc Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Tue, 20 Jul 2021 19:53:52 +0200 Subject: [PATCH] Fix template entry edition --- .../kunzisoft/keepass/database/element/Database.kt | 12 ++++++++++++ .../com/kunzisoft/keepass/database/element/Entry.kt | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/Database.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/Database.kt index 89eb8b741..7f79a3ff9 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/element/Database.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/element/Database.kt @@ -165,6 +165,18 @@ class Database { return templatesGroup == entry.parent } + // Not the same as decode, here remove in all cases the template link in the entry data + fun removeTemplateConfiguration(entry: Entry): Entry { + entry.entryKDBX?.let { + mDatabaseKDBX?.decodeEntryWithTemplateConfiguration(it, false)?.let { decode -> + return Entry(decode) + } + } + return entry + } + + // Remove the template link in the entry data if it's a basic entry + // or compress the template fields (as pseudo language) if it's a template entry fun decodeEntryWithTemplateConfiguration(entry: Entry, lastEntryVersion: Entry? = null): Entry { entry.entryKDBX?.let { val lastEntry = lastEntryVersion ?: entry diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/Entry.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/Entry.kt index 9d459c763..45653d35d 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/element/Entry.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/element/Entry.kt @@ -400,7 +400,7 @@ class Entry : Node, EntryVersionedInterface { fun getEntryInfo(database: Database?, raw: Boolean = false): EntryInfo { val entryInfo = EntryInfo() // Remove unwanted template fields - (database?.decodeEntryWithTemplateConfiguration(this) ?: this).apply { + (database?.removeTemplateConfiguration(this) ?: this).apply { if (raw) database?.stopManageEntry(this) else