diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt
index ede4208a6..6c672b948 100644
--- a/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt
@@ -39,7 +39,7 @@ import com.kunzisoft.keepass.activities.helpers.ReadOnlyHelper
import com.kunzisoft.keepass.activities.lock.LockingHideActivity
import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.database.element.Entry
-import com.kunzisoft.keepass.database.element.NodeId
+import com.kunzisoft.keepass.database.element.node.NodeId
import com.kunzisoft.keepass.education.EntryActivityEducation
import com.kunzisoft.keepass.icons.assignDatabaseIcon
import com.kunzisoft.keepass.magikeyboard.MagikIME
diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt
index ef1c090bf..b6e04520d 100644
--- a/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt
@@ -34,6 +34,8 @@ import com.kunzisoft.keepass.activities.dialogs.GeneratePasswordDialogFragment
import com.kunzisoft.keepass.activities.dialogs.IconPickerDialogFragment
import com.kunzisoft.keepass.activities.lock.LockingHideActivity
import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.element.icon.IconImage
+import com.kunzisoft.keepass.database.element.node.NodeId
import com.kunzisoft.keepass.education.EntryEditActivityEducation
import com.kunzisoft.keepass.notifications.ClipboardEntryNotificationService
import com.kunzisoft.keepass.notifications.DatabaseTaskNotificationService.Companion.ACTION_DATABASE_CREATE_ENTRY_TASK
diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt
index 984b07de0..dbcbbcf39 100644
--- a/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt
@@ -50,6 +50,10 @@ import com.kunzisoft.keepass.adapters.SearchEntryCursorAdapter
import com.kunzisoft.keepass.autofill.AutofillHelper
import com.kunzisoft.keepass.database.SortNodeEnum
import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.element.icon.IconImage
+import com.kunzisoft.keepass.database.element.node.Node
+import com.kunzisoft.keepass.database.element.node.NodeId
+import com.kunzisoft.keepass.database.element.node.Type
import com.kunzisoft.keepass.education.GroupActivityEducation
import com.kunzisoft.keepass.icons.assignDatabaseIcon
import com.kunzisoft.keepass.magikeyboard.MagikIME
diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/ListNodesFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/ListNodesFragment.kt
index f839ea185..4600fa52c 100644
--- a/app/src/main/java/com/kunzisoft/keepass/activities/ListNodesFragment.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/activities/ListNodesFragment.kt
@@ -20,14 +20,14 @@ import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.adapters.NodeAdapter
import com.kunzisoft.keepass.database.SortNodeEnum
import com.kunzisoft.keepass.database.element.Group
-import com.kunzisoft.keepass.database.element.Node
+import com.kunzisoft.keepass.database.element.node.Node
import com.kunzisoft.keepass.activities.dialogs.SortDialogFragment
import com.kunzisoft.keepass.activities.helpers.EntrySelectionHelper
import com.kunzisoft.keepass.settings.PreferencesUtil
import com.kunzisoft.keepass.activities.stylish.StylishFragment
import com.kunzisoft.keepass.activities.helpers.ReadOnlyHelper
import com.kunzisoft.keepass.database.element.Database
-import com.kunzisoft.keepass.database.element.Type
+import com.kunzisoft.keepass.database.element.node.Type
import java.util.*
class ListNodesFragment : StylishFragment(), SortDialogFragment.SortSelectionListener {
diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/DeleteNodesDialogFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/DeleteNodesDialogFragment.kt
index d1960c070..9ff06d9f2 100644
--- a/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/DeleteNodesDialogFragment.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/DeleteNodesDialogFragment.kt
@@ -26,7 +26,7 @@ import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.database.element.Database
-import com.kunzisoft.keepass.database.element.Node
+import com.kunzisoft.keepass.database.element.node.Node
import com.kunzisoft.keepass.notifications.DatabaseTaskNotificationService
import com.kunzisoft.keepass.notifications.DatabaseTaskNotificationService.Companion.getBundleFromListNodes
import com.kunzisoft.keepass.notifications.DatabaseTaskNotificationService.Companion.getListNodesFromBundle
diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/GroupEditDialogFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/GroupEditDialogFragment.kt
index 5763c0a08..1036d2733 100644
--- a/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/GroupEditDialogFragment.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/GroupEditDialogFragment.kt
@@ -34,7 +34,7 @@ import com.kunzisoft.keepass.activities.dialogs.GroupEditDialogFragment.EditGrou
import com.kunzisoft.keepass.activities.dialogs.GroupEditDialogFragment.EditGroupDialogAction.UPDATE
import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.database.element.Group
-import com.kunzisoft.keepass.database.element.IconImage
+import com.kunzisoft.keepass.database.element.icon.IconImage
import com.kunzisoft.keepass.icons.assignDatabaseIcon
class GroupEditDialogFragment : DialogFragment(), IconPickerDialogFragment.IconPickerListener {
diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/IconPickerDialogFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/IconPickerDialogFragment.kt
index 29d3bf6ec..5bd71068e 100644
--- a/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/IconPickerDialogFragment.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/IconPickerDialogFragment.kt
@@ -35,7 +35,7 @@ import android.widget.GridView
import android.widget.ImageView
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.activities.stylish.StylishActivity
-import com.kunzisoft.keepass.database.element.IconImageStandard
+import com.kunzisoft.keepass.database.element.icon.IconImageStandard
import com.kunzisoft.keepass.icons.IconPack
import com.kunzisoft.keepass.icons.IconPackChooser
diff --git a/app/src/main/java/com/kunzisoft/keepass/adapters/NodeAdapter.kt b/app/src/main/java/com/kunzisoft/keepass/adapters/NodeAdapter.kt
index c1bf0999a..c6f7a8bf9 100644
--- a/app/src/main/java/com/kunzisoft/keepass/adapters/NodeAdapter.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/adapters/NodeAdapter.kt
@@ -36,6 +36,8 @@ import androidx.recyclerview.widget.SortedListAdapterCallback
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.database.SortNodeEnum
import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.element.node.Node
+import com.kunzisoft.keepass.database.element.node.Type
import com.kunzisoft.keepass.icons.assignDatabaseIcon
import com.kunzisoft.keepass.settings.PreferencesUtil
import java.util.*
diff --git a/app/src/main/java/com/kunzisoft/keepass/adapters/SearchEntryCursorAdapter.kt b/app/src/main/java/com/kunzisoft/keepass/adapters/SearchEntryCursorAdapter.kt
index 0e6bf5b98..14a574643 100644
--- a/app/src/main/java/com/kunzisoft/keepass/adapters/SearchEntryCursorAdapter.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/adapters/SearchEntryCursorAdapter.kt
@@ -31,7 +31,7 @@ import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.database.cursor.EntryCursor
import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.database.element.Entry
-import com.kunzisoft.keepass.database.element.IconImage
+import com.kunzisoft.keepass.database.element.icon.IconImage
import com.kunzisoft.keepass.icons.assignDatabaseIcon
import com.kunzisoft.keepass.settings.PreferencesUtil
import java.util.*
diff --git a/app/src/main/java/com/kunzisoft/keepass/crypto/engine/AesEngine.kt b/app/src/main/java/com/kunzisoft/keepass/crypto/engine/AesEngine.kt
index 32904397d..01aabbc1f 100644
--- a/app/src/main/java/com/kunzisoft/keepass/crypto/engine/AesEngine.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/crypto/engine/AesEngine.kt
@@ -21,7 +21,7 @@ package com.kunzisoft.keepass.crypto.engine
import com.kunzisoft.keepass.crypto.CipherFactory
-import com.kunzisoft.keepass.database.element.EncryptionAlgorithm
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
import com.kunzisoft.keepass.utils.DatabaseInputOutputUtils
import java.security.InvalidAlgorithmParameterException
import java.security.InvalidKeyException
diff --git a/app/src/main/java/com/kunzisoft/keepass/crypto/engine/ChaCha20Engine.kt b/app/src/main/java/com/kunzisoft/keepass/crypto/engine/ChaCha20Engine.kt
index 009070dbd..2828c5e22 100644
--- a/app/src/main/java/com/kunzisoft/keepass/crypto/engine/ChaCha20Engine.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/crypto/engine/ChaCha20Engine.kt
@@ -19,7 +19,7 @@
*/
package com.kunzisoft.keepass.crypto.engine
-import com.kunzisoft.keepass.database.element.EncryptionAlgorithm
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
import com.kunzisoft.keepass.utils.DatabaseInputOutputUtils
import org.spongycastle.jce.provider.BouncyCastleProvider
import java.security.InvalidAlgorithmParameterException
diff --git a/app/src/main/java/com/kunzisoft/keepass/crypto/engine/CipherEngine.kt b/app/src/main/java/com/kunzisoft/keepass/crypto/engine/CipherEngine.kt
index eed47d28d..64977d748 100644
--- a/app/src/main/java/com/kunzisoft/keepass/crypto/engine/CipherEngine.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/crypto/engine/CipherEngine.kt
@@ -19,7 +19,7 @@
*/
package com.kunzisoft.keepass.crypto.engine
-import com.kunzisoft.keepass.database.element.EncryptionAlgorithm
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
import java.security.InvalidAlgorithmParameterException
import java.security.InvalidKeyException
diff --git a/app/src/main/java/com/kunzisoft/keepass/crypto/engine/TwofishEngine.kt b/app/src/main/java/com/kunzisoft/keepass/crypto/engine/TwofishEngine.kt
index 73b39a7d5..5718ac33c 100644
--- a/app/src/main/java/com/kunzisoft/keepass/crypto/engine/TwofishEngine.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/crypto/engine/TwofishEngine.kt
@@ -20,7 +20,7 @@
package com.kunzisoft.keepass.crypto.engine
import com.kunzisoft.keepass.crypto.CipherFactory
-import com.kunzisoft.keepass.database.element.EncryptionAlgorithm
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
import com.kunzisoft.keepass.utils.DatabaseInputOutputUtils
import java.security.InvalidAlgorithmParameterException
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/SortNodeEnum.kt b/app/src/main/java/com/kunzisoft/keepass/database/SortNodeEnum.kt
index efa1ef6fe..f779fcf21 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/SortNodeEnum.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/SortNodeEnum.kt
@@ -22,8 +22,8 @@ package com.kunzisoft.keepass.database
import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.database.element.Entry
-import com.kunzisoft.keepass.database.element.Node
-import com.kunzisoft.keepass.database.element.Type
+import com.kunzisoft.keepass.database.element.node.Node
+import com.kunzisoft.keepass.database.element.node.Type
import java.util.*
enum class SortNodeEnum {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/ProgressDialogThread.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/ProgressDialogThread.kt
index fd7baadbd..ae9a48495 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/action/ProgressDialogThread.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/action/ProgressDialogThread.kt
@@ -11,6 +11,11 @@ import androidx.fragment.app.FragmentActivity
import com.kunzisoft.keepass.app.database.CipherDatabaseEntity
import com.kunzisoft.keepass.crypto.keyDerivation.KdfEngine
import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.element.database.CompressionAlgorithm
+import com.kunzisoft.keepass.database.element.node.Node
+import com.kunzisoft.keepass.database.element.node.NodeId
+import com.kunzisoft.keepass.database.element.node.Type
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
import com.kunzisoft.keepass.notifications.DatabaseTaskNotificationService
import com.kunzisoft.keepass.notifications.DatabaseTaskNotificationService.Companion.ACTION_DATABASE_ASSIGN_PASSWORD_TASK
import com.kunzisoft.keepass.notifications.DatabaseTaskNotificationService.Companion.ACTION_DATABASE_COPY_NODES_TASK
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/UpdateCompressionBinariesDatabaseRunnable.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/UpdateCompressionBinariesDatabaseRunnable.kt
index 45a0661e8..7a22f0167 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/action/UpdateCompressionBinariesDatabaseRunnable.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/action/UpdateCompressionBinariesDatabaseRunnable.kt
@@ -21,7 +21,7 @@ package com.kunzisoft.keepass.database.action
import android.content.Context
import com.kunzisoft.keepass.database.element.Database
-import com.kunzisoft.keepass.database.element.CompressionAlgorithm
+import com.kunzisoft.keepass.database.element.database.CompressionAlgorithm
class UpdateCompressionBinariesDatabaseRunnable (
context: Context,
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/node/AddEntryRunnable.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/node/AddEntryRunnable.kt
index b2172cc8f..7c40fc626 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/action/node/AddEntryRunnable.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/action/node/AddEntryRunnable.kt
@@ -23,7 +23,7 @@ import android.content.Context
import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.database.element.Entry
import com.kunzisoft.keepass.database.element.Group
-import com.kunzisoft.keepass.database.element.Node
+import com.kunzisoft.keepass.database.element.node.Node
class AddEntryRunnable constructor(
context: Context,
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/node/AddGroupRunnable.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/node/AddGroupRunnable.kt
index 13acb7bfd..75b9ec14c 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/action/node/AddGroupRunnable.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/action/node/AddGroupRunnable.kt
@@ -22,7 +22,7 @@ package com.kunzisoft.keepass.database.action.node
import android.content.Context
import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.database.element.Group
-import com.kunzisoft.keepass.database.element.Node
+import com.kunzisoft.keepass.database.element.node.Node
class AddGroupRunnable constructor(
context: Context,
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/node/AfterActionNodesFinish.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/node/AfterActionNodesFinish.kt
index 684c3b992..ab186c692 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/action/node/AfterActionNodesFinish.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/action/node/AfterActionNodesFinish.kt
@@ -19,7 +19,7 @@
*/
package com.kunzisoft.keepass.database.action.node
-import com.kunzisoft.keepass.database.element.Node
+import com.kunzisoft.keepass.database.element.node.Node
import com.kunzisoft.keepass.tasks.ActionRunnable
/**
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/node/CopyNodesRunnable.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/node/CopyNodesRunnable.kt
index a482557f6..1b20c79ea 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/action/node/CopyNodesRunnable.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/action/node/CopyNodesRunnable.kt
@@ -22,6 +22,8 @@ package com.kunzisoft.keepass.database.action.node
import android.content.Context
import android.util.Log
import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.element.node.Node
+import com.kunzisoft.keepass.database.element.node.Type
import com.kunzisoft.keepass.database.exception.CopyEntryDatabaseException
import com.kunzisoft.keepass.database.exception.CopyGroupDatabaseException
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/node/DeleteNodesRunnable.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/node/DeleteNodesRunnable.kt
index 62526642c..59701196e 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/action/node/DeleteNodesRunnable.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/action/node/DeleteNodesRunnable.kt
@@ -21,6 +21,8 @@ package com.kunzisoft.keepass.database.action.node
import android.content.Context
import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.element.node.Node
+import com.kunzisoft.keepass.database.element.node.Type
class DeleteNodesRunnable(context: Context,
database: Database,
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/node/MoveNodesRunnable.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/node/MoveNodesRunnable.kt
index 81d0c5640..1188a67db 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/action/node/MoveNodesRunnable.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/action/node/MoveNodesRunnable.kt
@@ -22,6 +22,8 @@ package com.kunzisoft.keepass.database.action.node
import android.content.Context
import android.util.Log
import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.element.node.Node
+import com.kunzisoft.keepass.database.element.node.Type
import com.kunzisoft.keepass.database.exception.EntryDatabaseException
import com.kunzisoft.keepass.database.exception.MoveGroupDatabaseException
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/NodeHandler.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/node/NodeHandler.kt
similarity index 94%
rename from app/src/main/java/com/kunzisoft/keepass/database/NodeHandler.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/action/node/NodeHandler.kt
index bf0a46f2c..e0c321872 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/NodeHandler.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/action/node/NodeHandler.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database
+package com.kunzisoft.keepass.database.action.node
/** "Delegate" class for operating on each group when traversing all of
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/node/UpdateEntryRunnable.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/node/UpdateEntryRunnable.kt
index ad2f91a35..ceaae4143 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/action/node/UpdateEntryRunnable.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/action/node/UpdateEntryRunnable.kt
@@ -22,7 +22,7 @@ package com.kunzisoft.keepass.database.action.node
import android.content.Context
import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.database.element.Entry
-import com.kunzisoft.keepass.database.element.Node
+import com.kunzisoft.keepass.database.element.node.Node
class UpdateEntryRunnable constructor(
context: Context,
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/node/UpdateGroupRunnable.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/node/UpdateGroupRunnable.kt
index 59b990c3b..d66c99da6 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/action/node/UpdateGroupRunnable.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/action/node/UpdateGroupRunnable.kt
@@ -22,7 +22,7 @@ package com.kunzisoft.keepass.database.action.node
import android.content.Context
import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.database.element.Group
-import com.kunzisoft.keepass.database.element.Node
+import com.kunzisoft.keepass.database.element.node.Node
class UpdateGroupRunnable constructor(
context: Context,
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursor.kt b/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursor.kt
index d5dbc65a9..2190de7b4 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursor.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursor.kt
@@ -2,9 +2,9 @@ package com.kunzisoft.keepass.database.cursor
import android.database.MatrixCursor
import android.provider.BaseColumns
-import com.kunzisoft.keepass.database.element.EntryVersioned
-import com.kunzisoft.keepass.database.element.IconImageFactory
-import com.kunzisoft.keepass.database.element.NodeId
+import com.kunzisoft.keepass.database.element.entry.EntryVersioned
+import com.kunzisoft.keepass.database.element.icon.IconImageFactory
+import com.kunzisoft.keepass.database.element.node.NodeId
abstract class EntryCursor> : MatrixCursor(arrayOf(
_ID,
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursorKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursorKDB.kt
index 4d78f2bff..5dee502de 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursorKDB.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursorKDB.kt
@@ -1,7 +1,7 @@
package com.kunzisoft.keepass.database.cursor
-import com.kunzisoft.keepass.database.element.DatabaseVersioned
-import com.kunzisoft.keepass.database.element.EntryKDB
+import com.kunzisoft.keepass.database.element.database.DatabaseVersioned
+import com.kunzisoft.keepass.database.element.entry.EntryKDB
class EntryCursorKDB : EntryCursorUUID() {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursorKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursorKDBX.kt
index c0443b27b..7a790e4c4 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursorKDBX.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursorKDBX.kt
@@ -1,7 +1,7 @@
package com.kunzisoft.keepass.database.cursor
-import com.kunzisoft.keepass.database.element.EntryKDBX
-import com.kunzisoft.keepass.database.element.IconImageFactory
+import com.kunzisoft.keepass.database.element.entry.EntryKDBX
+import com.kunzisoft.keepass.database.element.icon.IconImageFactory
import java.util.UUID
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursorUUID.kt b/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursorUUID.kt
index 4f41c2a70..db89e6f00 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursorUUID.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/cursor/EntryCursorUUID.kt
@@ -1,8 +1,8 @@
package com.kunzisoft.keepass.database.cursor
-import com.kunzisoft.keepass.database.element.EntryVersioned
-import com.kunzisoft.keepass.database.element.NodeId
-import com.kunzisoft.keepass.database.element.NodeIdUUID
+import com.kunzisoft.keepass.database.element.entry.EntryVersioned
+import com.kunzisoft.keepass.database.element.node.NodeId
+import com.kunzisoft.keepass.database.element.node.NodeIdUUID
import java.util.*
abstract class EntryCursorUUID>: EntryCursor() {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/cursor/ExtraFieldCursor.kt b/app/src/main/java/com/kunzisoft/keepass/database/cursor/ExtraFieldCursor.kt
index 45a86e34e..bdbc0ee40 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/cursor/ExtraFieldCursor.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/cursor/ExtraFieldCursor.kt
@@ -3,7 +3,7 @@ package com.kunzisoft.keepass.database.cursor
import android.database.MatrixCursor
import android.provider.BaseColumns
-import com.kunzisoft.keepass.database.element.EntryKDBX
+import com.kunzisoft.keepass.database.element.entry.EntryKDBX
import com.kunzisoft.keepass.database.element.security.ProtectedString
class ExtraFieldCursor : MatrixCursor(arrayOf(
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 df48ffd64..091c4b13e 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
@@ -25,9 +25,17 @@ import android.database.Cursor
import android.net.Uri
import android.util.Log
import com.kunzisoft.keepass.crypto.keyDerivation.KdfEngine
-import com.kunzisoft.keepass.database.NodeHandler
+import com.kunzisoft.keepass.database.action.node.NodeHandler
import com.kunzisoft.keepass.database.cursor.EntryCursorKDB
import com.kunzisoft.keepass.database.cursor.EntryCursorKDBX
+import com.kunzisoft.keepass.database.element.database.CompressionAlgorithm
+import com.kunzisoft.keepass.database.element.database.DatabaseKDB
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX
+import com.kunzisoft.keepass.database.element.icon.IconImageFactory
+import com.kunzisoft.keepass.database.element.node.NodeId
+import com.kunzisoft.keepass.database.element.node.NodeIdInt
+import com.kunzisoft.keepass.database.element.node.NodeIdUUID
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
import com.kunzisoft.keepass.database.exception.*
import com.kunzisoft.keepass.database.file.DatabaseHeaderKDB
import com.kunzisoft.keepass.database.file.DatabaseHeaderKDBX
@@ -35,7 +43,7 @@ import com.kunzisoft.keepass.database.file.input.DatabaseInputKDB
import com.kunzisoft.keepass.database.file.input.DatabaseInputKDBX
import com.kunzisoft.keepass.database.file.output.DatabaseOutputKDB
import com.kunzisoft.keepass.database.file.output.DatabaseOutputKDBX
-import com.kunzisoft.keepass.database.search.SearchDbHelper
+import com.kunzisoft.keepass.database.search.SearchHelper
import com.kunzisoft.keepass.icons.IconDrawableFactory
import com.kunzisoft.keepass.stream.LEDataInputStream
import com.kunzisoft.keepass.tasks.ProgressTaskUpdater
@@ -55,7 +63,7 @@ class Database {
var fileUri: Uri? = null
private set
- private var mSearchHelper: SearchDbHelper? = null
+ private var mSearchHelper: SearchHelper? = null
var isReadOnly = false
@@ -374,7 +382,7 @@ class Database {
else -> throw SignatureDatabaseException()
}
- this.mSearchHelper = SearchDbHelper(omitBackup)
+ this.mSearchHelper = SearchHelper(omitBackup)
loaded = true
}
@@ -399,7 +407,7 @@ class Database {
if (mDatabaseKDBX != null)
cursorKDBX = EntryCursorKDBX()
- val searchResult = search(query, SearchDbHelper.MAX_SEARCH_ENTRY)
+ val searchResult = search(query, SearchHelper.MAX_SEARCH_ENTRY)
if (searchResult != null) {
for (entry in searchResult.getChildEntries(true)) {
entry.entryKDB?.let {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/DeletedObject.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/DeletedObject.kt
index c82a0f7e5..17d329c48 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/DeletedObject.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/DeletedObject.kt
@@ -19,6 +19,7 @@
*/
package com.kunzisoft.keepass.database.element
+import com.kunzisoft.keepass.database.element.database.DatabaseVersioned
import java.util.Date
import java.util.UUID
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 762e372b8..a326c2ea9 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
@@ -2,6 +2,17 @@ package com.kunzisoft.keepass.database.element
import android.os.Parcel
import android.os.Parcelable
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX
+import com.kunzisoft.keepass.database.element.entry.EntryKDB
+import com.kunzisoft.keepass.database.element.entry.EntryKDBX
+import com.kunzisoft.keepass.database.element.entry.EntryVersionedInterface
+import com.kunzisoft.keepass.database.element.icon.IconImage
+import com.kunzisoft.keepass.database.element.icon.IconImageCustom
+import com.kunzisoft.keepass.database.element.icon.IconImageStandard
+import com.kunzisoft.keepass.database.element.node.Node
+import com.kunzisoft.keepass.database.element.node.NodeId
+import com.kunzisoft.keepass.database.element.node.NodeIdUUID
+import com.kunzisoft.keepass.database.element.node.Type
import com.kunzisoft.keepass.database.element.security.ProtectedString
import com.kunzisoft.keepass.model.EntryInfo
import com.kunzisoft.keepass.model.Field
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/Group.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/Group.kt
index ba2d75803..7e99cc989 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/Group.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/Group.kt
@@ -2,6 +2,12 @@ package com.kunzisoft.keepass.database.element
import android.os.Parcel
import android.os.Parcelable
+import com.kunzisoft.keepass.database.element.group.GroupKDB
+import com.kunzisoft.keepass.database.element.group.GroupKDBX
+import com.kunzisoft.keepass.database.element.group.GroupVersionedInterface
+import com.kunzisoft.keepass.database.element.icon.IconImage
+import com.kunzisoft.keepass.database.element.icon.IconImageStandard
+import com.kunzisoft.keepass.database.element.node.*
import java.util.*
import kotlin.collections.ArrayList
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/BinaryPool.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/database/BinaryPool.kt
similarity index 97%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/BinaryPool.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/database/BinaryPool.kt
index 8622bcbc0..4fcfe71e4 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/BinaryPool.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/database/BinaryPool.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.database
import android.util.SparseArray
import com.kunzisoft.keepass.database.element.security.BinaryAttachment
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/CompressionAlgorithm.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/database/CompressionAlgorithm.kt
similarity index 97%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/CompressionAlgorithm.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/database/CompressionAlgorithm.kt
index 31748c248..cefc27891 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/CompressionAlgorithm.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/database/CompressionAlgorithm.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.database
import android.content.res.Resources
import android.os.Parcel
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/DatabaseKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDB.kt
similarity index 94%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/DatabaseKDB.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDB.kt
index f7f455c24..e24cc0ef6 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/DatabaseKDB.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDB.kt
@@ -17,11 +17,17 @@
* along with KeePass DX. If not, see .
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.database
import com.kunzisoft.keepass.crypto.finalkey.FinalKeyFactory
import com.kunzisoft.keepass.crypto.keyDerivation.KdfEngine
import com.kunzisoft.keepass.crypto.keyDerivation.KdfFactory
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
+import com.kunzisoft.keepass.database.element.entry.EntryKDB
+import com.kunzisoft.keepass.database.element.group.GroupKDB
+import com.kunzisoft.keepass.database.element.node.NodeIdInt
+import com.kunzisoft.keepass.database.element.node.NodeIdUUID
+import com.kunzisoft.keepass.database.element.node.NodeVersioned
import com.kunzisoft.keepass.stream.NullOutputStream
import java.io.IOException
import java.io.InputStream
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/DatabaseKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDBX.kt
similarity index 96%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/DatabaseKDBX.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDBX.kt
index c594e4311..4d4b6f084 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/DatabaseKDBX.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDBX.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.database
import android.content.res.Resources
import android.util.Base64
@@ -29,7 +29,15 @@ import com.kunzisoft.keepass.crypto.engine.CipherEngine
import com.kunzisoft.keepass.crypto.keyDerivation.KdfEngine
import com.kunzisoft.keepass.crypto.keyDerivation.KdfFactory
import com.kunzisoft.keepass.crypto.keyDerivation.KdfParameters
-import com.kunzisoft.keepass.database.element.DatabaseKDB.Companion.BACKUP_FOLDER_TITLE
+import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.element.database.DatabaseKDB.Companion.BACKUP_FOLDER_TITLE
+import com.kunzisoft.keepass.database.element.entry.EntryKDBX
+import com.kunzisoft.keepass.database.element.group.GroupKDBX
+import com.kunzisoft.keepass.database.element.icon.IconImageCustom
+import com.kunzisoft.keepass.database.element.node.NodeIdUUID
+import com.kunzisoft.keepass.database.element.node.NodeVersioned
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
+import com.kunzisoft.keepass.database.element.security.MemoryProtectionConfig
import com.kunzisoft.keepass.database.exception.UnknownKDF
import com.kunzisoft.keepass.database.file.DatabaseHeaderKDBX.Companion.FILE_VERSION_32_3
import com.kunzisoft.keepass.database.file.DatabaseHeaderKDBX.Companion.FILE_VERSION_32_4
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/DatabaseVersioned.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt
similarity index 96%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/DatabaseVersioned.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt
index 5ccc93b4c..463aa82ec 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/DatabaseVersioned.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt
@@ -17,9 +17,15 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.database
import com.kunzisoft.keepass.crypto.keyDerivation.KdfEngine
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
+import com.kunzisoft.keepass.database.element.entry.EntryVersioned
+import com.kunzisoft.keepass.database.element.group.GroupVersioned
+import com.kunzisoft.keepass.database.element.icon.IconImageFactory
+import com.kunzisoft.keepass.database.element.node.NodeId
+import com.kunzisoft.keepass.database.element.node.Type
import com.kunzisoft.keepass.database.exception.DuplicateUuidDatabaseException
import com.kunzisoft.keepass.database.exception.KeyFileEmptyDatabaseException
import org.apache.commons.io.IOUtils
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/AutoType.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/AutoType.kt
similarity index 98%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/AutoType.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/entry/AutoType.kt
index 00b8b5607..0800fcd3d 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/AutoType.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/AutoType.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.entry
import android.os.Parcel
import android.os.Parcelable
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/EntryKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/EntryKDB.kt
similarity index 93%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/EntryKDB.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/entry/EntryKDB.kt
index 4755bbc2d..b6be2bdf5 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/EntryKDB.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/EntryKDB.kt
@@ -17,10 +17,15 @@
* along with KeePass DX. If not, see .
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.entry
import android.os.Parcel
import android.os.Parcelable
+import com.kunzisoft.keepass.database.element.group.GroupKDB
+import com.kunzisoft.keepass.database.element.node.NodeId
+import com.kunzisoft.keepass.database.element.node.NodeIdUUID
+import com.kunzisoft.keepass.database.element.node.NodeKDBInterface
+import com.kunzisoft.keepass.database.element.node.Type
import java.util.*
/**
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/EntryKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/EntryKDBX.kt
similarity index 94%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/EntryKDBX.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/entry/EntryKDBX.kt
index c3132a3fb..0ccc82681 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/EntryKDBX.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/EntryKDBX.kt
@@ -17,10 +17,20 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.entry
import android.os.Parcel
import android.os.Parcelable
+import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX
+import com.kunzisoft.keepass.database.element.group.GroupKDBX
+import com.kunzisoft.keepass.database.element.icon.IconImage
+import com.kunzisoft.keepass.database.element.icon.IconImageCustom
+import com.kunzisoft.keepass.database.element.icon.IconImageStandard
+import com.kunzisoft.keepass.database.element.node.NodeId
+import com.kunzisoft.keepass.database.element.node.NodeIdUUID
+import com.kunzisoft.keepass.database.element.node.NodeKDBXInterface
+import com.kunzisoft.keepass.database.element.node.Type
import com.kunzisoft.keepass.database.element.security.BinaryAttachment
import com.kunzisoft.keepass.database.element.security.ProtectedString
import com.kunzisoft.keepass.utils.ParcelableUtil
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/EntryVersioned.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/EntryVersioned.kt
similarity index 69%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/EntryVersioned.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/entry/EntryVersioned.kt
index a30ebdfdb..d19883495 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/EntryVersioned.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/EntryVersioned.kt
@@ -1,6 +1,8 @@
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.entry
import android.os.Parcel
+import com.kunzisoft.keepass.database.element.group.GroupVersioned
+import com.kunzisoft.keepass.database.element.node.NodeVersioned
abstract class EntryVersioned
<
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/EntryVersionedInterface.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/EntryVersionedInterface.kt
similarity index 59%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/EntryVersionedInterface.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/entry/EntryVersionedInterface.kt
index 5eca6d851..64a7d16c5 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/EntryVersionedInterface.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/EntryVersionedInterface.kt
@@ -1,4 +1,6 @@
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.entry
+
+import com.kunzisoft.keepass.database.element.node.NodeVersionedInterface
interface EntryVersionedInterface : NodeVersionedInterface {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/FieldReferencesEngine.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/FieldReferencesEngine.kt
similarity index 97%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/FieldReferencesEngine.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/entry/FieldReferencesEngine.kt
index e8fce6821..a0b801f70 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/FieldReferencesEngine.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/FieldReferencesEngine.kt
@@ -17,8 +17,10 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.entry
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX
+import com.kunzisoft.keepass.database.element.group.GroupKDBX
import com.kunzisoft.keepass.database.search.EntryKDBXSearchHandler
import com.kunzisoft.keepass.database.search.SearchParametersKDBX
import com.kunzisoft.keepass.utils.StringUtil
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/GroupKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupKDB.kt
similarity index 88%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/GroupKDB.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupKDB.kt
index 30a885771..9452b260f 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/GroupKDB.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupKDB.kt
@@ -18,10 +18,15 @@
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.group
import android.os.Parcel
import android.os.Parcelable
+import com.kunzisoft.keepass.database.element.entry.EntryKDB
+import com.kunzisoft.keepass.database.element.node.NodeId
+import com.kunzisoft.keepass.database.element.node.NodeIdInt
+import com.kunzisoft.keepass.database.element.node.NodeKDBInterface
+import com.kunzisoft.keepass.database.element.node.Type
import java.util.*
class GroupKDB : GroupVersioned, NodeKDBInterface {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/GroupKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupKDBX.kt
similarity index 88%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/GroupKDBX.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupKDBX.kt
index 9a35a6071..34e7d2bd4 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/GroupKDBX.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupKDBX.kt
@@ -17,10 +17,20 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.group
import android.os.Parcel
import android.os.Parcelable
+import com.kunzisoft.keepass.database.element.database.DatabaseVersioned
+import com.kunzisoft.keepass.database.element.DateInstant
+import com.kunzisoft.keepass.database.element.entry.EntryKDBX
+import com.kunzisoft.keepass.database.element.icon.IconImage
+import com.kunzisoft.keepass.database.element.icon.IconImageCustom
+import com.kunzisoft.keepass.database.element.icon.IconImageStandard
+import com.kunzisoft.keepass.database.element.node.NodeId
+import com.kunzisoft.keepass.database.element.node.NodeIdUUID
+import com.kunzisoft.keepass.database.element.node.NodeKDBXInterface
+import com.kunzisoft.keepass.database.element.node.Type
import java.util.HashMap
import java.util.UUID
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/GroupVersioned.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupVersioned.kt
similarity index 91%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/GroupVersioned.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupVersioned.kt
index 940ccfcb5..6cc938a6a 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/GroupVersioned.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupVersioned.kt
@@ -1,6 +1,8 @@
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.group
import android.os.Parcel
+import com.kunzisoft.keepass.database.element.entry.EntryVersioned
+import com.kunzisoft.keepass.database.element.node.NodeVersioned
abstract class GroupVersioned
<
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/GroupVersionedInterface.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupVersionedInterface.kt
similarity index 88%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/GroupVersionedInterface.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupVersionedInterface.kt
index 3d36efa1a..588aef471 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/GroupVersionedInterface.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupVersionedInterface.kt
@@ -1,6 +1,7 @@
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.group
-import com.kunzisoft.keepass.database.NodeHandler
+import com.kunzisoft.keepass.database.action.node.NodeHandler
+import com.kunzisoft.keepass.database.element.node.NodeVersionedInterface
interface GroupVersionedInterface, Entry> : NodeVersionedInterface {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/IconImage.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImage.kt
similarity index 95%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/IconImage.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImage.kt
index 59cd14b69..47cc76e32 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/IconImage.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImage.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.icon
import android.os.Parcelable
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/IconImageCustom.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageCustom.kt
similarity index 95%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/IconImageCustom.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageCustom.kt
index b2f6b17a1..9744d9dd8 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/IconImageCustom.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageCustom.kt
@@ -17,10 +17,11 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.icon
import android.os.Parcel
import android.os.Parcelable
+import com.kunzisoft.keepass.database.element.database.DatabaseVersioned
import java.util.UUID
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/IconImageFactory.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageFactory.kt
similarity index 97%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/IconImageFactory.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageFactory.kt
index 4b2dee048..e15a3988b 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/IconImageFactory.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageFactory.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.icon
import org.apache.commons.collections.map.AbstractReferenceMap
import org.apache.commons.collections.map.ReferenceMap
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/IconImageStandard.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageStandard.kt
similarity index 97%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/IconImageStandard.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageStandard.kt
index 229dc19bc..9b507bdc3 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/IconImageStandard.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageStandard.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.icon
import android.os.Parcel
import android.os.Parcelable
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/Node.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/node/Node.kt
similarity index 85%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/Node.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/node/Node.kt
index ba887be30..24852a27b 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/Node.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/node/Node.kt
@@ -1,4 +1,6 @@
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.node
+
+import com.kunzisoft.keepass.database.element.Group
interface Node: NodeVersionedInterface {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeId.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeId.kt
similarity index 96%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/NodeId.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeId.kt
index a6faa9690..0a280b434 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeId.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeId.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.node
import android.os.Parcel
import android.os.Parcelable
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeIdInt.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeIdInt.kt
similarity index 97%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/NodeIdInt.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeIdInt.kt
index 49fd2e3ff..507cec4ea 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeIdInt.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeIdInt.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.node
import android.os.Parcel
import android.os.Parcelable
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeIdUUID.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeIdUUID.kt
similarity index 97%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/NodeIdUUID.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeIdUUID.kt
index 94ebd6429..27dc093c5 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeIdUUID.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeIdUUID.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.node
import android.os.Parcel
import android.os.Parcelable
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeKDBInterface.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeKDBInterface.kt
similarity index 82%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/NodeKDBInterface.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeKDBInterface.kt
index bd1105e37..6151764ac 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeKDBInterface.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeKDBInterface.kt
@@ -1,5 +1,6 @@
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.node
+import com.kunzisoft.keepass.database.element.DateInstant
import org.joda.time.LocalDateTime
interface NodeKDBInterface : NodeTimeInterface {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeKDBXInterface.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeKDBXInterface.kt
similarity index 89%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/NodeKDBXInterface.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeKDBXInterface.kt
index ab4c50322..b5588d246 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeKDBXInterface.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeKDBXInterface.kt
@@ -17,7 +17,9 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.node
+
+import com.kunzisoft.keepass.database.element.DateInstant
interface NodeKDBXInterface : NodeTimeInterface {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeTimeInterface.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeTimeInterface.kt
similarity index 89%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/NodeTimeInterface.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeTimeInterface.kt
index aba8d15fd..a97ed77a7 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeTimeInterface.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeTimeInterface.kt
@@ -17,7 +17,9 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.node
+
+import com.kunzisoft.keepass.database.element.DateInstant
interface NodeTimeInterface {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeVersioned.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeVersioned.kt
similarity index 93%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/NodeVersioned.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeVersioned.kt
index 78e92af7e..a1ded7913 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeVersioned.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeVersioned.kt
@@ -18,10 +18,15 @@
*
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.node
import android.os.Parcel
import android.os.Parcelable
+import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.element.entry.EntryVersionedInterface
+import com.kunzisoft.keepass.database.element.group.GroupVersionedInterface
+import com.kunzisoft.keepass.database.element.icon.IconImage
+import com.kunzisoft.keepass.database.element.icon.IconImageStandard
import org.joda.time.LocalDateTime
/**
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeVersionedInterface.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeVersionedInterface.kt
similarity index 82%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/NodeVersionedInterface.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeVersionedInterface.kt
index a49f0321a..8bcd39847 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/NodeVersionedInterface.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/node/NodeVersionedInterface.kt
@@ -1,6 +1,7 @@
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.node
import android.os.Parcelable
+import com.kunzisoft.keepass.database.element.icon.IconImage
interface NodeVersionedInterface : NodeTimeInterface, Parcelable {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/security/BinaryAttachment.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/security/BinaryAttachment.kt
index fa2966850..d9137160d 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/security/BinaryAttachment.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/security/BinaryAttachment.kt
@@ -21,7 +21,7 @@ package com.kunzisoft.keepass.database.element.security
import android.os.Parcel
import android.os.Parcelable
-import com.kunzisoft.keepass.database.element.DatabaseKDBX.Companion.BUFFER_SIZE_BYTES
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX.Companion.BUFFER_SIZE_BYTES
import com.kunzisoft.keepass.stream.ReadBytes
import com.kunzisoft.keepass.stream.readFromStream
import java.io.*
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/EncryptionAlgorithm.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/security/EncryptionAlgorithm.kt
similarity index 97%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/EncryptionAlgorithm.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/security/EncryptionAlgorithm.kt
index d31de59ae..cb87b0c3d 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/EncryptionAlgorithm.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/security/EncryptionAlgorithm.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.security
import android.content.res.Resources
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/MemoryProtectionConfig.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/security/MemoryProtectionConfig.kt
similarity index 96%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/MemoryProtectionConfig.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/element/security/MemoryProtectionConfig.kt
index 1e4dbda13..caae5289a 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/MemoryProtectionConfig.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/element/security/MemoryProtectionConfig.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.element.security
class MemoryProtectionConfig {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/exception/DatabaseException.kt b/app/src/main/java/com/kunzisoft/keepass/database/exception/DatabaseException.kt
index bff4a7616..f9b904560 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/exception/DatabaseException.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/exception/DatabaseException.kt
@@ -3,8 +3,8 @@ package com.kunzisoft.keepass.database.exception
import android.content.res.Resources
import androidx.annotation.StringRes
import com.kunzisoft.keepass.R
-import com.kunzisoft.keepass.database.element.NodeId
-import com.kunzisoft.keepass.database.element.Type
+import com.kunzisoft.keepass.database.element.node.NodeId
+import com.kunzisoft.keepass.database.element.node.Type
abstract class DatabaseException : Exception {
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseHeaderKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseHeaderKDBX.kt
index 012a2e2b0..4236d187c 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseHeaderKDBX.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseHeaderKDBX.kt
@@ -23,8 +23,12 @@ import com.kunzisoft.keepass.crypto.CrsAlgorithm
import com.kunzisoft.keepass.crypto.keyDerivation.AesKdf
import com.kunzisoft.keepass.crypto.keyDerivation.KdfFactory
import com.kunzisoft.keepass.crypto.keyDerivation.KdfParameters
-import com.kunzisoft.keepass.database.NodeHandler
-import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.action.node.NodeHandler
+import com.kunzisoft.keepass.database.element.database.CompressionAlgorithm
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX
+import com.kunzisoft.keepass.database.element.entry.EntryKDBX
+import com.kunzisoft.keepass.database.element.group.GroupKDBX
+import com.kunzisoft.keepass.database.element.node.NodeKDBXInterface
import com.kunzisoft.keepass.database.exception.VersionDatabaseException
import com.kunzisoft.keepass.stream.CopyInputStream
import com.kunzisoft.keepass.stream.HmacBlockStream
@@ -89,7 +93,7 @@ class DatabaseHeaderKDBX(private val databaseV4: DatabaseKDBX) : DatabaseHeader(
this.masterSeed = ByteArray(32)
}
- private inner class NodeHasCustomData : NodeHandler() {
+ private inner class NodeHasCustomData : NodeHandler() {
internal var containsCustomData = false
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/DatabaseKDBXXML.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseKDBXXML.kt
similarity index 99%
rename from app/src/main/java/com/kunzisoft/keepass/database/element/DatabaseKDBXXML.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseKDBXXML.kt
index 7fe829991..9d6a4f9ba 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/element/DatabaseKDBXXML.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseKDBXXML.kt
@@ -17,7 +17,7 @@
* along with KeePass DX. If not, see .
*
*/
-package com.kunzisoft.keepass.database.element
+package com.kunzisoft.keepass.database.file
import java.text.SimpleDateFormat
import java.util.*
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInput.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInput.kt
index cdea888a8..1d71fc2a7 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInput.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInput.kt
@@ -19,7 +19,7 @@
*/
package com.kunzisoft.keepass.database.file.input
-import com.kunzisoft.keepass.database.element.DatabaseVersioned
+import com.kunzisoft.keepass.database.element.database.DatabaseVersioned
import com.kunzisoft.keepass.database.exception.LoadDatabaseException
import com.kunzisoft.keepass.tasks.ProgressTaskUpdater
import java.io.InputStream
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDB.kt
index 6bd3f7e28..a900180eb 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDB.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDB.kt
@@ -48,7 +48,12 @@ package com.kunzisoft.keepass.database.file.input
import android.util.Log
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.crypto.CipherFactory
-import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.element.database.DatabaseKDB
+import com.kunzisoft.keepass.database.element.entry.EntryKDB
+import com.kunzisoft.keepass.database.element.group.GroupKDB
+import com.kunzisoft.keepass.database.element.node.NodeIdInt
+import com.kunzisoft.keepass.database.element.node.NodeIdUUID
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
import com.kunzisoft.keepass.database.exception.*
import com.kunzisoft.keepass.database.file.DatabaseHeader
import com.kunzisoft.keepass.database.file.DatabaseHeaderKDB
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDBX.kt
index 0898ea8d5..0b3082542 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDBX.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDBX.kt
@@ -25,12 +25,21 @@ import com.kunzisoft.keepass.crypto.CipherFactory
import com.kunzisoft.keepass.crypto.StreamCipherFactory
import com.kunzisoft.keepass.crypto.engine.CipherEngine
import com.kunzisoft.keepass.database.element.*
-import com.kunzisoft.keepass.database.element.DatabaseKDBX.Companion.BASE_64_FLAG
+import com.kunzisoft.keepass.database.element.database.CompressionAlgorithm
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX.Companion.BASE_64_FLAG
+import com.kunzisoft.keepass.database.element.database.DatabaseVersioned
+import com.kunzisoft.keepass.database.element.entry.EntryKDBX
+import com.kunzisoft.keepass.database.element.group.GroupKDBX
+import com.kunzisoft.keepass.database.element.icon.IconImageCustom
+import com.kunzisoft.keepass.database.element.node.NodeIdUUID
+import com.kunzisoft.keepass.database.element.node.NodeKDBXInterface
import com.kunzisoft.keepass.database.element.security.BinaryAttachment
import com.kunzisoft.keepass.database.element.security.ProtectedString
import com.kunzisoft.keepass.database.exception.*
import com.kunzisoft.keepass.database.file.DateKDBXUtil
import com.kunzisoft.keepass.database.file.DatabaseHeaderKDBX
+import com.kunzisoft.keepass.database.file.DatabaseKDBXXML
import com.kunzisoft.keepass.stream.*
import com.kunzisoft.keepass.tasks.ProgressTaskUpdater
import com.kunzisoft.keepass.utils.DatabaseInputOutputUtils
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseHeaderOutputKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseHeaderOutputKDBX.kt
index 78e730964..520090d65 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseHeaderOutputKDBX.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseHeaderOutputKDBX.kt
@@ -21,7 +21,7 @@ package com.kunzisoft.keepass.database.file.output
import com.kunzisoft.keepass.utils.VariantDictionary
import com.kunzisoft.keepass.crypto.keyDerivation.KdfParameters
-import com.kunzisoft.keepass.database.element.DatabaseKDBX
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX
import com.kunzisoft.keepass.database.file.DatabaseHeader
import com.kunzisoft.keepass.database.file.DatabaseHeaderKDBX
import com.kunzisoft.keepass.database.exception.DatabaseOutputException
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseInnerHeaderOutputKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseInnerHeaderOutputKDBX.kt
index f55934e62..02990a065 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseInnerHeaderOutputKDBX.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseInnerHeaderOutputKDBX.kt
@@ -19,8 +19,8 @@
*/
package com.kunzisoft.keepass.database.file.output
-import com.kunzisoft.keepass.database.element.DatabaseKDBX
-import com.kunzisoft.keepass.database.element.DatabaseKDBX.Companion.BUFFER_SIZE_BYTES
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX.Companion.BUFFER_SIZE_BYTES
import com.kunzisoft.keepass.database.file.DatabaseHeaderKDBX
import com.kunzisoft.keepass.stream.ReadBytes
import com.kunzisoft.keepass.stream.LEDataOutputStream
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDB.kt
index 6a276d91b..6a6a9bd33 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDB.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDB.kt
@@ -20,9 +20,9 @@
package com.kunzisoft.keepass.database.file.output
import com.kunzisoft.keepass.crypto.CipherFactory
-import com.kunzisoft.keepass.database.element.DatabaseKDB
-import com.kunzisoft.keepass.database.element.EncryptionAlgorithm
-import com.kunzisoft.keepass.database.element.GroupKDB
+import com.kunzisoft.keepass.database.element.database.DatabaseKDB
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
+import com.kunzisoft.keepass.database.element.group.GroupKDB
import com.kunzisoft.keepass.database.exception.DatabaseOutputException
import com.kunzisoft.keepass.database.file.DatabaseHeader
import com.kunzisoft.keepass.database.file.DatabaseHeaderKDB
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDBX.kt
index 6e9f09b2c..1cdb764f7 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDBX.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDBX.kt
@@ -27,15 +27,24 @@ import com.kunzisoft.keepass.crypto.CrsAlgorithm
import com.kunzisoft.keepass.crypto.StreamCipherFactory
import com.kunzisoft.keepass.crypto.engine.CipherEngine
import com.kunzisoft.keepass.crypto.keyDerivation.KdfFactory
-import com.kunzisoft.keepass.database.NodeHandler
+import com.kunzisoft.keepass.database.action.node.NodeHandler
import com.kunzisoft.keepass.database.element.*
-import com.kunzisoft.keepass.database.element.DatabaseKDBX.Companion.BASE_64_FLAG
-import com.kunzisoft.keepass.database.element.DatabaseKDBX.Companion.BUFFER_SIZE_BYTES
+import com.kunzisoft.keepass.database.element.database.CompressionAlgorithm
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX.Companion.BASE_64_FLAG
+import com.kunzisoft.keepass.database.element.database.DatabaseKDBX.Companion.BUFFER_SIZE_BYTES
+import com.kunzisoft.keepass.database.element.entry.AutoType
+import com.kunzisoft.keepass.database.element.entry.EntryKDBX
+import com.kunzisoft.keepass.database.element.group.GroupKDBX
+import com.kunzisoft.keepass.database.element.icon.IconImageCustom
+import com.kunzisoft.keepass.database.element.node.NodeKDBXInterface
import com.kunzisoft.keepass.database.element.security.BinaryAttachment
+import com.kunzisoft.keepass.database.element.security.MemoryProtectionConfig
import com.kunzisoft.keepass.database.element.security.ProtectedString
import com.kunzisoft.keepass.database.exception.DatabaseOutputException
import com.kunzisoft.keepass.database.exception.UnknownKDF
import com.kunzisoft.keepass.database.file.DatabaseHeaderKDBX
+import com.kunzisoft.keepass.database.file.DatabaseKDBXXML
import com.kunzisoft.keepass.database.file.DateKDBXUtil
import com.kunzisoft.keepass.stream.*
import com.kunzisoft.keepass.utils.DatabaseInputOutputUtils
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/output/EntryOutputKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/output/EntryOutputKDB.kt
index 122d7fad4..2429cedaf 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/file/output/EntryOutputKDB.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/file/output/EntryOutputKDB.kt
@@ -19,7 +19,7 @@
*/
package com.kunzisoft.keepass.database.file.output
-import com.kunzisoft.keepass.database.element.EntryKDB
+import com.kunzisoft.keepass.database.element.entry.EntryKDB
import com.kunzisoft.keepass.stream.LEDataOutputStream
import com.kunzisoft.keepass.utils.DatabaseInputOutputUtils
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/output/GroupOutputKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/output/GroupOutputKDB.kt
index 3c77b2282..34c488bf0 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/file/output/GroupOutputKDB.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/file/output/GroupOutputKDB.kt
@@ -19,7 +19,7 @@
*/
package com.kunzisoft.keepass.database.file.output
-import com.kunzisoft.keepass.database.element.GroupKDB
+import com.kunzisoft.keepass.database.element.group.GroupKDB
import com.kunzisoft.keepass.stream.LEDataOutputStream
import com.kunzisoft.keepass.utils.DatabaseInputOutputUtils
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/search/EntryKDBXSearchHandler.kt b/app/src/main/java/com/kunzisoft/keepass/database/search/EntryKDBXSearchHandler.kt
index 4c0ab3aad..6fbf3ffb0 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/search/EntryKDBXSearchHandler.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/search/EntryKDBXSearchHandler.kt
@@ -19,8 +19,8 @@
*/
package com.kunzisoft.keepass.database.search
-import com.kunzisoft.keepass.database.NodeHandler
-import com.kunzisoft.keepass.database.element.EntryKDBX
+import com.kunzisoft.keepass.database.action.node.NodeHandler
+import com.kunzisoft.keepass.database.element.entry.EntryKDBX
import com.kunzisoft.keepass.database.search.iterator.EntrySearchStringIteratorKDBX
import com.kunzisoft.keepass.utils.StringUtil
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/search/SearchDbHelper.kt b/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt
similarity index 96%
rename from app/src/main/java/com/kunzisoft/keepass/database/search/SearchDbHelper.kt
rename to app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt
index 52e5fa17f..881e701ad 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/search/SearchDbHelper.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt
@@ -19,7 +19,7 @@
*/
package com.kunzisoft.keepass.database.search
-import com.kunzisoft.keepass.database.NodeHandler
+import com.kunzisoft.keepass.database.action.node.NodeHandler
import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.database.element.Entry
import com.kunzisoft.keepass.database.element.Group
@@ -28,7 +28,7 @@ import com.kunzisoft.keepass.database.search.iterator.EntrySearchStringIteratorK
import com.kunzisoft.keepass.database.search.iterator.EntrySearchStringIteratorKDBX
import java.util.*
-class SearchDbHelper(private val isOmitBackup: Boolean) {
+class SearchHelper(private val isOmitBackup: Boolean) {
companion object {
const val MAX_SEARCH_ENTRY = 6
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/search/iterator/EntrySearchStringIteratorKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/search/iterator/EntrySearchStringIteratorKDB.kt
index 173ddb5be..7fcc2c4e2 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/search/iterator/EntrySearchStringIteratorKDB.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/search/iterator/EntrySearchStringIteratorKDB.kt
@@ -19,7 +19,7 @@
*/
package com.kunzisoft.keepass.database.search.iterator
-import com.kunzisoft.keepass.database.element.EntryKDB
+import com.kunzisoft.keepass.database.element.entry.EntryKDB
import com.kunzisoft.keepass.database.search.SearchParameters
import java.util.NoSuchElementException
diff --git a/app/src/main/java/com/kunzisoft/keepass/database/search/iterator/EntrySearchStringIteratorKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/search/iterator/EntrySearchStringIteratorKDBX.kt
index f81254ca2..0b0896308 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/search/iterator/EntrySearchStringIteratorKDBX.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/search/iterator/EntrySearchStringIteratorKDBX.kt
@@ -19,7 +19,7 @@
*/
package com.kunzisoft.keepass.database.search.iterator
-import com.kunzisoft.keepass.database.element.EntryKDBX
+import com.kunzisoft.keepass.database.element.entry.EntryKDBX
import com.kunzisoft.keepass.database.search.SearchParametersKDBX
import com.kunzisoft.keepass.database.element.security.ProtectedString
import java.util.*
diff --git a/app/src/main/java/com/kunzisoft/keepass/icons/IconDrawableFactory.kt b/app/src/main/java/com/kunzisoft/keepass/icons/IconDrawableFactory.kt
index 32ba25615..0bdb44f14 100644
--- a/app/src/main/java/com/kunzisoft/keepass/icons/IconDrawableFactory.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/icons/IconDrawableFactory.kt
@@ -33,9 +33,9 @@ import androidx.core.widget.ImageViewCompat
import android.util.Log
import android.widget.ImageView
import com.kunzisoft.keepass.R
-import com.kunzisoft.keepass.database.element.IconImage
-import com.kunzisoft.keepass.database.element.IconImageCustom
-import com.kunzisoft.keepass.database.element.IconImageStandard
+import com.kunzisoft.keepass.database.element.icon.IconImage
+import com.kunzisoft.keepass.database.element.icon.IconImageCustom
+import com.kunzisoft.keepass.database.element.icon.IconImageStandard
import org.apache.commons.collections.map.AbstractReferenceMap
import org.apache.commons.collections.map.ReferenceMap
diff --git a/app/src/main/java/com/kunzisoft/keepass/notifications/DatabaseTaskNotificationService.kt b/app/src/main/java/com/kunzisoft/keepass/notifications/DatabaseTaskNotificationService.kt
index abf1773da..f727cfa94 100644
--- a/app/src/main/java/com/kunzisoft/keepass/notifications/DatabaseTaskNotificationService.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/notifications/DatabaseTaskNotificationService.kt
@@ -11,6 +11,9 @@ import com.kunzisoft.keepass.app.database.CipherDatabaseEntity
import com.kunzisoft.keepass.database.action.*
import com.kunzisoft.keepass.database.action.node.*
import com.kunzisoft.keepass.database.element.*
+import com.kunzisoft.keepass.database.element.node.Node
+import com.kunzisoft.keepass.database.element.node.NodeId
+import com.kunzisoft.keepass.database.element.node.Type
import com.kunzisoft.keepass.settings.PreferencesUtil
import com.kunzisoft.keepass.tasks.ActionRunnable
import com.kunzisoft.keepass.tasks.ProgressTaskUpdater
diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/NestedDatabaseSettingsFragment.kt b/app/src/main/java/com/kunzisoft/keepass/settings/NestedDatabaseSettingsFragment.kt
index e6acd6135..3daefa0f2 100644
--- a/app/src/main/java/com/kunzisoft/keepass/settings/NestedDatabaseSettingsFragment.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/settings/NestedDatabaseSettingsFragment.kt
@@ -15,8 +15,8 @@ import com.kunzisoft.keepass.activities.helpers.ReadOnlyHelper
import com.kunzisoft.keepass.activities.lock.lock
import com.kunzisoft.keepass.crypto.keyDerivation.KdfEngine
import com.kunzisoft.keepass.database.element.Database
-import com.kunzisoft.keepass.database.element.CompressionAlgorithm
-import com.kunzisoft.keepass.database.element.EncryptionAlgorithm
+import com.kunzisoft.keepass.database.element.database.CompressionAlgorithm
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
import com.kunzisoft.keepass.notifications.DatabaseTaskNotificationService
import com.kunzisoft.keepass.settings.preference.*
import com.kunzisoft.keepass.settings.preferencedialogfragment.*
diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/preferencedialogfragment/DatabaseDataCompressionPreferenceDialogFragmentCompat.kt b/app/src/main/java/com/kunzisoft/keepass/settings/preferencedialogfragment/DatabaseDataCompressionPreferenceDialogFragmentCompat.kt
index c6925abc9..3e75acb7c 100644
--- a/app/src/main/java/com/kunzisoft/keepass/settings/preferencedialogfragment/DatabaseDataCompressionPreferenceDialogFragmentCompat.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/settings/preferencedialogfragment/DatabaseDataCompressionPreferenceDialogFragmentCompat.kt
@@ -24,7 +24,7 @@ import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.kunzisoft.keepass.R
-import com.kunzisoft.keepass.database.element.CompressionAlgorithm
+import com.kunzisoft.keepass.database.element.database.CompressionAlgorithm
import com.kunzisoft.keepass.settings.preferencedialogfragment.adapter.ListRadioItemAdapter
class DatabaseDataCompressionPreferenceDialogFragmentCompat
diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/preferencedialogfragment/DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat.kt b/app/src/main/java/com/kunzisoft/keepass/settings/preferencedialogfragment/DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat.kt
index cb179dffd..083e52ee7 100644
--- a/app/src/main/java/com/kunzisoft/keepass/settings/preferencedialogfragment/DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/settings/preferencedialogfragment/DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat.kt
@@ -24,7 +24,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import android.view.View
import com.kunzisoft.keepass.R
-import com.kunzisoft.keepass.database.element.EncryptionAlgorithm
+import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm
import com.kunzisoft.keepass.settings.preferencedialogfragment.adapter.ListRadioItemAdapter
class DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat
diff --git a/app/src/main/java/com/kunzisoft/keepass/view/EntryEditContentsView.kt b/app/src/main/java/com/kunzisoft/keepass/view/EntryEditContentsView.kt
index 8f3e1424f..e92ca87ff 100644
--- a/app/src/main/java/com/kunzisoft/keepass/view/EntryEditContentsView.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/view/EntryEditContentsView.kt
@@ -11,7 +11,7 @@ import android.widget.EditText
import android.widget.ImageView
import android.widget.LinearLayout
import com.kunzisoft.keepass.R
-import com.kunzisoft.keepass.database.element.IconImage
+import com.kunzisoft.keepass.database.element.icon.IconImage
import com.kunzisoft.keepass.database.element.security.ProtectedString
import com.kunzisoft.keepass.icons.IconDrawableFactory
import com.kunzisoft.keepass.icons.assignDatabaseIcon