mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Better code encapsulation
This commit is contained in:
@@ -34,7 +34,7 @@ class IconCustomFragment : IconFragment<IconImageCustom>() {
|
||||
}
|
||||
|
||||
override fun defineIconList(database: Database): List<IconImageCustom> {
|
||||
return database.iconsManager.getCustomIconList()
|
||||
return database.getCustomIconList()
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
||||
@@ -34,7 +34,7 @@ class IconStandardFragment : IconFragment<IconImageStandard>() {
|
||||
}
|
||||
|
||||
override fun defineIconList(database: Database): List<IconImageStandard> {
|
||||
return database.iconsManager.getStandardIconList()
|
||||
return database.getStandardIconList()
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
||||
@@ -110,10 +110,24 @@ class SearchEntryCursorAdapter(private val context: Context,
|
||||
return database.createEntry()?.apply {
|
||||
database.startManageEntry(this)
|
||||
entryKDB?.let { entryKDB ->
|
||||
(cursor as EntryCursorKDB).populateEntry(entryKDB, database.iconsManager)
|
||||
(cursor as EntryCursorKDB).populateEntry(entryKDB,
|
||||
{ standardIconId ->
|
||||
database.getStandardIcon(standardIconId)
|
||||
},
|
||||
{ customIconId ->
|
||||
database.getCustomIcon(customIconId)
|
||||
}
|
||||
)
|
||||
}
|
||||
entryKDBX?.let { entryKDBX ->
|
||||
(cursor as EntryCursorKDBX).populateEntry(entryKDBX, database.iconsManager)
|
||||
(cursor as EntryCursorKDBX).populateEntry(entryKDBX,
|
||||
{ standardIconId ->
|
||||
database.getStandardIcon(standardIconId)
|
||||
},
|
||||
{ customIconId ->
|
||||
database.getCustomIcon(customIconId)
|
||||
}
|
||||
)
|
||||
}
|
||||
database.stopManageEntry(this)
|
||||
}
|
||||
|
||||
@@ -24,7 +24,8 @@ import android.provider.BaseColumns
|
||||
import com.kunzisoft.keepass.database.element.DateInstant
|
||||
import com.kunzisoft.keepass.database.element.entry.EntryVersioned
|
||||
import com.kunzisoft.keepass.database.element.icon.IconImage
|
||||
import com.kunzisoft.keepass.database.element.icon.IconsManager
|
||||
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 java.util.*
|
||||
|
||||
@@ -50,12 +51,14 @@ abstract class EntryCursor<EntryId, PwEntryV : EntryVersioned<*, EntryId, *, *>>
|
||||
|
||||
abstract fun getPwNodeId(): NodeId<EntryId>
|
||||
|
||||
open fun populateEntry(pwEntry: PwEntryV, iconsManager: IconsManager) {
|
||||
open fun populateEntry(pwEntry: PwEntryV,
|
||||
retrieveStandardIcon: (Int) -> IconImageStandard,
|
||||
retrieveCustomIcon: (UUID) -> IconImageCustom) {
|
||||
pwEntry.nodeId = getPwNodeId()
|
||||
pwEntry.title = getString(getColumnIndex(COLUMN_INDEX_TITLE))
|
||||
|
||||
val iconStandard = iconsManager.getIcon(getInt(getColumnIndex(COLUMN_INDEX_ICON_STANDARD)))
|
||||
val iconCustom = iconsManager.getIcon(UUID(getLong(getColumnIndex(COLUMN_INDEX_ICON_CUSTOM_UUID_MOST_SIGNIFICANT_BITS)),
|
||||
val iconStandard = retrieveStandardIcon.invoke(getInt(getColumnIndex(COLUMN_INDEX_ICON_STANDARD)))
|
||||
val iconCustom = retrieveCustomIcon.invoke(UUID(getLong(getColumnIndex(COLUMN_INDEX_ICON_CUSTOM_UUID_MOST_SIGNIFICANT_BITS)),
|
||||
getLong(getColumnIndex(COLUMN_INDEX_ICON_CUSTOM_UUID_LEAST_SIGNIFICANT_BITS))))
|
||||
pwEntry.icon = IconImage(iconStandard, iconCustom)
|
||||
|
||||
|
||||
@@ -20,7 +20,9 @@
|
||||
package com.kunzisoft.keepass.database.cursor
|
||||
|
||||
import com.kunzisoft.keepass.database.element.entry.EntryKDBX
|
||||
import com.kunzisoft.keepass.database.element.icon.IconsManager
|
||||
import com.kunzisoft.keepass.database.element.icon.IconImageCustom
|
||||
import com.kunzisoft.keepass.database.element.icon.IconImageStandard
|
||||
import java.util.*
|
||||
|
||||
class EntryCursorKDBX : EntryCursorUUID<EntryKDBX>() {
|
||||
|
||||
@@ -50,8 +52,10 @@ class EntryCursorKDBX : EntryCursorUUID<EntryKDBX>() {
|
||||
entryId++
|
||||
}
|
||||
|
||||
override fun populateEntry(pwEntry: EntryKDBX, iconsManager: IconsManager) {
|
||||
super.populateEntry(pwEntry, iconsManager)
|
||||
override fun populateEntry(pwEntry: EntryKDBX,
|
||||
retrieveStandardIcon: (Int) -> IconImageStandard,
|
||||
retrieveCustomIcon: (UUID) -> IconImageCustom) {
|
||||
super.populateEntry(pwEntry, retrieveStandardIcon, retrieveCustomIcon)
|
||||
|
||||
// Retrieve extra fields
|
||||
if (extraFieldCursor.moveToFirst()) {
|
||||
|
||||
@@ -27,6 +27,7 @@ import com.kunzisoft.keepass.crypto.keyDerivation.KdfEngine
|
||||
import com.kunzisoft.keepass.database.action.node.NodeHandler
|
||||
import com.kunzisoft.keepass.database.element.database.*
|
||||
import com.kunzisoft.keepass.database.element.icon.IconImageCustom
|
||||
import com.kunzisoft.keepass.database.element.icon.IconImageStandard
|
||||
import com.kunzisoft.keepass.database.element.icon.IconsManager
|
||||
import com.kunzisoft.keepass.database.element.node.NodeId
|
||||
import com.kunzisoft.keepass.database.element.node.NodeIdInt
|
||||
@@ -92,15 +93,30 @@ class Database {
|
||||
return mDatabaseKDB?.loadedCipherKey ?: mDatabaseKDBX?.loadedCipherKey
|
||||
}
|
||||
|
||||
// TODO private
|
||||
val iconsManager: IconsManager
|
||||
private val iconsManager: IconsManager
|
||||
get() {
|
||||
return mDatabaseKDB?.iconsManager ?: mDatabaseKDBX?.iconsManager ?: IconsManager()
|
||||
}
|
||||
|
||||
fun getStandardIconList(): List<IconImageStandard> {
|
||||
return iconsManager.getStandardIconList()
|
||||
}
|
||||
|
||||
fun getStandardIcon(iconId: Int): IconImageStandard {
|
||||
return iconsManager.getIcon(iconId)
|
||||
}
|
||||
|
||||
val allowCustomIcons: Boolean
|
||||
get() = mDatabaseKDBX != null
|
||||
|
||||
fun getCustomIconList(): List<IconImageCustom> {
|
||||
return iconsManager.getCustomIconList()
|
||||
}
|
||||
|
||||
fun getCustomIcon(iconId: UUID): IconImageCustom {
|
||||
return iconsManager.getIcon(iconId)
|
||||
}
|
||||
|
||||
fun buildNewCustomIcon(cacheDirectory: File): IconImageCustom? {
|
||||
return mDatabaseKDBX?.buildNewCustomIcon(cacheDirectory)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user