diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDB.kt index 510a40523..82ac15d0b 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDB.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDB.kt @@ -40,7 +40,7 @@ import kotlin.collections.ArrayList class DatabaseKDB : DatabaseVersioned() { - var backupGroupId: Int = BACKUP_FOLDER_UNDEFINED_ID + private var backupGroupId: Int = BACKUP_FOLDER_UNDEFINED_ID private var kdfListV3: MutableList = ArrayList() @@ -59,7 +59,14 @@ class DatabaseKDB : DatabaseVersioned() { // Retrieve backup group in index val backupGroup: GroupKDB? - get() = if (backupGroupId == BACKUP_FOLDER_UNDEFINED_ID) null else getGroupById(backupGroupId) + get() { + if (backupGroupId == BACKUP_FOLDER_UNDEFINED_ID) + ensureRecycleBinExists() + return if (backupGroupId == BACKUP_FOLDER_UNDEFINED_ID) + null + else + getGroupById(backupGroupId) + } override val kdfEngine: KdfEngine? get() = kdfListV3[0] @@ -222,6 +229,8 @@ class DatabaseKDB : DatabaseVersioned() { * @return true if node can be recycle, false elsewhere */ fun canRecycle(node: NodeVersioned<*, GroupKDB, EntryKDB>): Boolean { + if (node == backupGroup) + return false backupGroup?.let { if (node.isContainedIn(it)) return false