Fix merge and save copy in KDB database

This commit is contained in:
J-Jamet
2022-02-12 13:20:22 +01:00
parent e7eb8099ac
commit 8af70fa7b5
5 changed files with 14 additions and 1 deletions

View File

@@ -276,6 +276,9 @@ class GroupActivity : DatabaseLockActivity(),
inflateMenu(R.menu.settings) inflateMenu(R.menu.settings)
inflateMenu(R.menu.database_extra) inflateMenu(R.menu.database_extra)
inflateMenu(R.menu.about) inflateMenu(R.menu.about)
if (!mMergeDataAllowed) {
menu.findItem(R.id.menu_merge_from)?.isVisible = false
}
setNavigationItemSelectedListener { menuItem -> setNavigationItemSelectedListener { menuItem ->
when (menuItem.itemId) { when (menuItem.itemId) {
R.id.menu_app_settings -> { R.id.menu_app_settings -> {
@@ -289,7 +292,7 @@ class GroupActivity : DatabaseLockActivity(),
mExternalFileHelper?.createDocument( mExternalFileHelper?.createDocument(
getString(R.string.database_file_name_default) + getString(R.string.database_file_name_default) +
getString(R.string.database_file_name_copy) + getString(R.string.database_file_name_copy) +
getString(R.string.database_file_extension_default)) mDatabase?.defaultFileExtension)
} }
R.id.menu_contribute -> { R.id.menu_contribute -> {
UriUtil.gotoUrl(this@GroupActivity, R.string.contribution_url) UriUtil.gotoUrl(this@GroupActivity, R.string.contribution_url)

View File

@@ -274,6 +274,9 @@ class Database {
} }
} }
val defaultFileExtension: String
get() = mDatabaseKDB?.defaultFileExtension ?: mDatabaseKDBX?.defaultFileExtension ?: ".bin"
val type: Class<*>? val type: Class<*>?
get() = mDatabaseKDB?.javaClass ?: mDatabaseKDBX?.javaClass get() = mDatabaseKDB?.javaClass ?: mDatabaseKDBX?.javaClass

View File

@@ -64,6 +64,9 @@ class DatabaseKDB : DatabaseVersioned<Int, UUID, GroupKDB, EntryKDB>() {
override val version: String override val version: String
get() = "V1" get() = "V1"
override val defaultFileExtension: String
get() = ".kdb"
init { init {
// New manual root because KDB contains multiple root groups (here available with getRootGroups()) // New manual root because KDB contains multiple root groups (here available with getRootGroups())
rootGroup = createGroup().apply { rootGroup = createGroup().apply {

View File

@@ -201,6 +201,9 @@ class DatabaseKDBX : DatabaseVersioned<UUID, UUID, GroupKDBX, EntryKDBX> {
return "V2 - KDBX$kdbxStringVersion" return "V2 - KDBX$kdbxStringVersion"
} }
override val defaultFileExtension: String
get() = ".kdbx"
private open class NodeOperationHandler<T: NodeKDBXInterface> : NodeHandler<T>() { private open class NodeOperationHandler<T: NodeKDBXInterface> : NodeHandler<T>() {
var containsCustomData = false var containsCustomData = false
override fun operate(node: T): Boolean { override fun operate(node: T): Boolean {

View File

@@ -62,6 +62,7 @@ abstract class DatabaseVersioned<
protected set protected set
abstract val version: String abstract val version: String
abstract val defaultFileExtension: String
/** /**
* To manage binaries in faster way * To manage binaries in faster way