mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Refactor TemplateField and Template name as resource
This commit is contained in:
@@ -50,7 +50,7 @@ import com.kunzisoft.keepass.database.element.node.NodeId
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateEngine
|
||||
import com.kunzisoft.keepass.education.EntryActivityEducation
|
||||
import com.kunzisoft.keepass.magikeyboard.MagikIME
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField
|
||||
import com.kunzisoft.keepass.model.EntryAttachmentState
|
||||
import com.kunzisoft.keepass.model.StreamDirection
|
||||
import com.kunzisoft.keepass.otp.OtpEntryFields
|
||||
@@ -337,7 +337,7 @@ class EntryActivity : LockingActivity() {
|
||||
clipboardHelper?.timeoutCopyToClipboard(
|
||||
value.toString(),
|
||||
getString(R.string.copy_field,
|
||||
TemplatesFields.getLocalizedName(applicationContext, field.name))
|
||||
TemplateField.getLocalizedName(applicationContext, field.name))
|
||||
)
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -42,12 +42,12 @@ import com.kunzisoft.keepass.database.element.DateInstant
|
||||
import com.kunzisoft.keepass.database.element.icon.IconImage
|
||||
import com.kunzisoft.keepass.database.element.security.ProtectedString
|
||||
import com.kunzisoft.keepass.database.element.template.*
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields.STANDARD_EXPIRATION
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields.STANDARD_NOTES
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields.STANDARD_PASSWORD
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields.STANDARD_TITLE
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields.STANDARD_URL
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields.STANDARD_USERNAME
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField.STANDARD_EXPIRATION
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField.STANDARD_NOTES
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField.STANDARD_PASSWORD
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField.STANDARD_TITLE
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField.STANDARD_URL
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField.STANDARD_USERNAME
|
||||
import com.kunzisoft.keepass.education.EntryEditActivityEducation
|
||||
import com.kunzisoft.keepass.icons.IconDrawableFactory
|
||||
import com.kunzisoft.keepass.model.*
|
||||
@@ -354,7 +354,7 @@ class EntryEditFragment : StylishFragment() {
|
||||
// Add an action icon if needed
|
||||
return context?.let {
|
||||
EntryEditFieldView(it).apply {
|
||||
label = TemplatesFields.getLocalizedName(context, field.name)
|
||||
label = TemplateField.getLocalizedName(context, field.name)
|
||||
setProtection(field.protectedValue.isProtected, mHideProtectedValue)
|
||||
setValue(field.protectedValue.toString(), when (templateAttribute.type) {
|
||||
TemplateAttributeType.MULTILINE -> EntryEditFieldView.TextType.MULTI_LINE
|
||||
@@ -387,7 +387,7 @@ class EntryEditFragment : StylishFragment() {
|
||||
field: Field): View? {
|
||||
return context?.let {
|
||||
DateTimeView(it).apply {
|
||||
label = TemplatesFields.getLocalizedName(context, field.name)
|
||||
label = TemplateField.getLocalizedName(context, field.name)
|
||||
try {
|
||||
val value = field.protectedValue.toString()
|
||||
activation = value.trim().isNotEmpty()
|
||||
@@ -450,7 +450,7 @@ class EntryEditFragment : StylishFragment() {
|
||||
}.toMutableList().also { customFields ->
|
||||
// Add template field
|
||||
if (mTemplate != Template.STANDARD) {
|
||||
TemplatesFields.getTemplateUUIDField(mTemplate)?.let { templateField ->
|
||||
TemplateField.getTemplateUUIDField(mTemplate)?.let { templateField ->
|
||||
customFields.add(templateField)
|
||||
}
|
||||
}
|
||||
@@ -537,7 +537,7 @@ class EntryEditFragment : StylishFragment() {
|
||||
private data class FieldId(var viewId: Int, var protected: Boolean)
|
||||
|
||||
private fun isStandardFieldName(name: String): Boolean {
|
||||
return TemplatesFields.isStandardFieldName(name)
|
||||
return TemplateField.isStandardFieldName(name)
|
||||
}
|
||||
|
||||
private fun containsCustomFieldName(name: String): Boolean {
|
||||
|
||||
@@ -48,7 +48,7 @@ import com.kunzisoft.keepass.database.element.Database
|
||||
import com.kunzisoft.keepass.database.element.icon.IconImage
|
||||
import com.kunzisoft.keepass.model.EntryInfo
|
||||
import com.kunzisoft.keepass.model.SearchInfo
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField
|
||||
import com.kunzisoft.keepass.settings.AutofillSettingsActivity
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
import java.util.*
|
||||
@@ -175,17 +175,17 @@ object AutofillHelper {
|
||||
}
|
||||
}
|
||||
for (field in entryInfo.customFields) {
|
||||
if (field.name == TemplatesFields.CREDIT_CARD_CARDHOLDER) {
|
||||
if (field.name == TemplateField.CREDIT_CARD_CARDHOLDER) {
|
||||
struct.ccNameId?.let { ccNameId ->
|
||||
builder.setValue(ccNameId, AutofillValue.forText(field.protectedValue.stringValue))
|
||||
}
|
||||
}
|
||||
if (field.name == TemplatesFields.CREDIT_CARD_NUMBER) {
|
||||
if (field.name == TemplateField.CREDIT_CARD_NUMBER) {
|
||||
struct.ccnId?.let { ccnId ->
|
||||
builder.setValue(ccnId, AutofillValue.forText(field.protectedValue.stringValue))
|
||||
}
|
||||
}
|
||||
if (field.name == TemplatesFields.CREDIT_CARD_CVV) {
|
||||
if (field.name == TemplateField.CREDIT_CARD_CVV) {
|
||||
struct.cvvId?.let { cvvId ->
|
||||
builder.setValue(cvvId, AutofillValue.forText(field.protectedValue.stringValue))
|
||||
}
|
||||
|
||||
@@ -388,8 +388,8 @@ class Database {
|
||||
val isTemplatesEnabled: Boolean
|
||||
get() = mDatabaseKDBX?.isTemplatesGroupEnabled() ?: false
|
||||
|
||||
fun enableTemplates(enable: Boolean) {
|
||||
mDatabaseKDBX?.enableTemplatesGroup(enable)
|
||||
fun enableTemplates(enable: Boolean, resources: Resources) {
|
||||
mDatabaseKDBX?.enableTemplatesGroup(enable, resources)
|
||||
}
|
||||
|
||||
val templatesGroup: Group?
|
||||
|
||||
@@ -339,10 +339,9 @@ class DatabaseKDBX : DatabaseVersioned<UUID, UUID, GroupKDBX, EntryKDBX> {
|
||||
return entryTemplatesGroup != UUID_ZERO
|
||||
}
|
||||
|
||||
fun enableTemplatesGroup(enable: Boolean) {
|
||||
fun enableTemplatesGroup(enable: Boolean, resources: Resources) {
|
||||
if (enable) {
|
||||
val uuidTemplatesGroup = mTemplateEngine.createNewTemplatesGroup()
|
||||
|
||||
val uuidTemplatesGroup = mTemplateEngine.createNewTemplatesGroup(resources)
|
||||
addGroupTo(uuidTemplatesGroup, rootGroup)
|
||||
entryTemplatesGroup = uuidTemplatesGroup.id
|
||||
entryTemplatesGroupChanged = uuidTemplatesGroup.lastModificationTime
|
||||
|
||||
@@ -23,11 +23,11 @@ import android.os.ParcelUuid
|
||||
import android.os.Parcelable
|
||||
import com.kunzisoft.keepass.database.element.database.DatabaseVersioned
|
||||
import com.kunzisoft.keepass.database.element.icon.IconImage
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields.STANDARD_EXPIRATION
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields.STANDARD_NOTES
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields.STANDARD_PASSWORD
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields.STANDARD_URL
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields.STANDARD_USERNAME
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField.STANDARD_EXPIRATION
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField.STANDARD_NOTES
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField.STANDARD_PASSWORD
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField.STANDARD_URL
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField.STANDARD_USERNAME
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.kunzisoft.keepass.database.element.template
|
||||
|
||||
import android.content.res.Resources
|
||||
import android.util.Log
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.database.element.database.DatabaseKDBX
|
||||
import com.kunzisoft.keepass.database.element.entry.EntryKDBX
|
||||
import com.kunzisoft.keepass.database.element.group.GroupKDBX
|
||||
@@ -33,9 +35,9 @@ class TemplateEngine(private val databaseKDBX: DatabaseKDBX) {
|
||||
return templates
|
||||
}
|
||||
|
||||
fun createNewTemplatesGroup(): GroupKDBX {
|
||||
fun createNewTemplatesGroup(resources: Resources): GroupKDBX {
|
||||
return databaseKDBX.createGroup().apply {
|
||||
title = TEMPLATE_GROUP_NAME
|
||||
title = getDefaultTemplateGroupName(resources)
|
||||
icon.standard = databaseKDBX.getStandardIcon(IconImageStandard.FOLDER_ID)
|
||||
enableAutoType = false
|
||||
enableSearching = false
|
||||
@@ -92,7 +94,7 @@ class TemplateEngine(private val databaseKDBX: DatabaseKDBX) {
|
||||
val attribute = getOrRetrieveAttributeFromName(attributes, attributeName)
|
||||
var referenceLabel = value.stringValue
|
||||
if (referenceLabel.equals(TEMPLATE_ATTRIBUTE_TITLE_EXPIRATION, true)) {
|
||||
referenceLabel = TemplatesFields.STANDARD_EXPIRATION
|
||||
referenceLabel = TemplateField.STANDARD_EXPIRATION
|
||||
}
|
||||
attribute.attribute.label = referenceLabel
|
||||
} catch (e: Exception) {
|
||||
@@ -171,7 +173,6 @@ class TemplateEngine(private val databaseKDBX: DatabaseKDBX) {
|
||||
private data class TemplateAttributePosition(var position: Int, var attribute: TemplateAttribute)
|
||||
|
||||
private val TAG = TemplateEngine::class.java.name
|
||||
private const val TEMPLATE_GROUP_NAME = "Templates"
|
||||
private const val TEMPLATE_LABEL_VERSION = "_etm_template"
|
||||
const val TEMPLATE_ENTRY_UUID = "_etm_template_uuid"
|
||||
private const val TEMPLATE_ATTRIBUTE_POSITION_PREFIX = "_etm_position"
|
||||
@@ -187,5 +188,9 @@ class TemplateEngine(private val databaseKDBX: DatabaseKDBX) {
|
||||
private const val TEMPLATE_ATTRIBUTE_TYPE_LISTBOX = "Listbox"
|
||||
private const val TEMPLATE_ATTRIBUTE_TYPE_POPOUT = "Popout"
|
||||
private const val TEMPLATE_ATTRIBUTE_TYPE_RICH_TEXTBOX = "Rich Textbox"
|
||||
|
||||
fun getDefaultTemplateGroupName(resources: Resources): String {
|
||||
return resources.getString(R.string.templates)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import com.kunzisoft.keepass.database.element.security.ProtectedString
|
||||
import com.kunzisoft.keepass.model.Field
|
||||
import com.kunzisoft.keepass.utils.UuidUtil
|
||||
|
||||
object TemplatesFields {
|
||||
object TemplateField {
|
||||
|
||||
const val STANDARD_TITLE = "title"
|
||||
const val STANDARD_USERNAME = "username"
|
||||
@@ -15,10 +15,34 @@ object TemplatesFields {
|
||||
const val STANDARD_EXPIRATION = "expires"
|
||||
const val STANDARD_NOTES = "notes"
|
||||
|
||||
const val CREDIT_CARD_TITLE = "Credit Card"
|
||||
const val CREDIT_CARD_CARDHOLDER = "Card holder"
|
||||
const val CREDIT_CARD_NUMBER = "Number"
|
||||
const val CREDIT_CARD_CVV = "CVV"
|
||||
private const val CREDIT_CARD_PIN = "PIN"
|
||||
const val CREDIT_CARD_PIN = "PIN"
|
||||
|
||||
const val ID_CARD_TITLE = "ID Card"
|
||||
const val ID_CARD_NUMBER = "Number"
|
||||
const val ID_CARD_NAME = "Name"
|
||||
const val ID_CARD_PLACE_OF_ISSUE = "Place of issue"
|
||||
const val ID_CARD_DATE_OF_ISSUE = "Date of issue"
|
||||
|
||||
const val EMAIL_TITLE = "E-mail"
|
||||
const val EMAIL_ADDRESS = "E-mail address"
|
||||
const val EMAIL_URL = "URL"
|
||||
const val EMAIL_PASSWORD = "Password"
|
||||
|
||||
const val WIRELESS_LAN_TITLE = "Wireless LAN"
|
||||
const val WIRELESS_LAN_SSID = "SSID"
|
||||
const val WIRELESS_LAN_PASSWORD = "Password"
|
||||
|
||||
const val SECURE_NOTE_TITLE = "Secure Note"
|
||||
const val SECURE_NOTE_NOTES = "Notes"
|
||||
|
||||
const val MEMBERSHIP_TITLE = "Membership"
|
||||
const val MEMBERSHIP_Number = "Number"
|
||||
const val MEMBERSHIP_URL = "URL"
|
||||
const val MEMBERSHIP_EXPIRATION = "@exp_date"
|
||||
|
||||
fun isStandardFieldName(name: String): Boolean {
|
||||
return arrayOf(
|
||||
@@ -24,7 +24,7 @@ import android.os.Parcelable
|
||||
import com.kunzisoft.keepass.database.element.Attachment
|
||||
import com.kunzisoft.keepass.database.element.Database
|
||||
import com.kunzisoft.keepass.database.element.security.ProtectedString
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField
|
||||
import com.kunzisoft.keepass.otp.OtpElement
|
||||
import com.kunzisoft.keepass.otp.OtpEntryFields
|
||||
import com.kunzisoft.keepass.otp.OtpEntryFields.OTP_TOKEN_FIELD
|
||||
@@ -167,7 +167,7 @@ class EntryInfo : NodeInfo {
|
||||
creditCard?.let { cc ->
|
||||
cc.cardholder?.let {
|
||||
val v = ProtectedString(false, it)
|
||||
addUniqueField(Field(TemplatesFields.CREDIT_CARD_CARDHOLDER, v))
|
||||
addUniqueField(Field(TemplateField.CREDIT_CARD_CARDHOLDER, v))
|
||||
}
|
||||
cc.expiration?.let {
|
||||
expires = true
|
||||
@@ -175,11 +175,11 @@ class EntryInfo : NodeInfo {
|
||||
}
|
||||
cc.number?.let {
|
||||
val v = ProtectedString(false, it)
|
||||
addUniqueField(Field(TemplatesFields.CREDIT_CARD_NUMBER, v))
|
||||
addUniqueField(Field(TemplateField.CREDIT_CARD_NUMBER, v))
|
||||
}
|
||||
cc.cvv?.let {
|
||||
val v = ProtectedString(true, it)
|
||||
addUniqueField(Field(TemplatesFields.CREDIT_CARD_CVV, v))
|
||||
addUniqueField(Field(TemplateField.CREDIT_CARD_CVV, v))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,7 +187,7 @@ class NestedDatabaseSettingsFragment : NestedSettingsFragment() {
|
||||
isEnabled = if (!mDatabaseReadOnly) {
|
||||
setOnPreferenceChangeListener { _, newValue ->
|
||||
val templatesEnabled = newValue as Boolean
|
||||
mDatabase.enableTemplates(templatesEnabled)
|
||||
mDatabase.enableTemplates(templatesEnabled, resources)
|
||||
refreshTemplatesGroup()
|
||||
// Save the database if not in readonly mode
|
||||
(context as SettingsActivity?)?.
|
||||
|
||||
@@ -42,7 +42,7 @@ import com.kunzisoft.keepass.database.element.security.ProtectedString
|
||||
import com.kunzisoft.keepass.utils.UuidUtil
|
||||
import com.kunzisoft.keepass.model.EntryAttachmentState
|
||||
import com.kunzisoft.keepass.model.StreamDirection
|
||||
import com.kunzisoft.keepass.database.element.template.TemplatesFields
|
||||
import com.kunzisoft.keepass.database.element.template.TemplateField
|
||||
import com.kunzisoft.keepass.otp.OtpElement
|
||||
import com.kunzisoft.keepass.otp.OtpType
|
||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
@@ -313,7 +313,7 @@ class EntryContentsView @JvmOverloads constructor(context: Context,
|
||||
onCopyButtonClickListener: OnClickListener?) {
|
||||
|
||||
extraFieldsListView.addView(EntryFieldView(context).apply {
|
||||
setLabel(TemplatesFields.getLocalizedName(context, title))
|
||||
setLabel(TemplateField.getLocalizedName(context, title))
|
||||
setValue(value.toString(), value.isProtected)
|
||||
setAutoLink()
|
||||
activateCopyButton(allowCopy)
|
||||
|
||||
Reference in New Issue
Block a user