mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Show expiration not referenced
This commit is contained in:
@@ -168,10 +168,10 @@ abstract class TemplateAbstractView<TEntryFieldView: GenericEntryFieldView, TDat
|
|||||||
|
|
||||||
abstract fun preProcessTemplate()
|
abstract fun preProcessTemplate()
|
||||||
|
|
||||||
private fun buildViewForNotReferencedField(field: Field): View? {
|
private fun buildViewForNotReferencedField(field: Field, attributeType: TemplateAttributeType): View? {
|
||||||
val standardFieldTemplateAttribute = TemplateAttribute(
|
val standardFieldTemplateAttribute = TemplateAttribute(
|
||||||
field.name,
|
field.name,
|
||||||
TemplateAttributeType.MULTILINE,
|
attributeType,
|
||||||
field.protectedValue.isProtected,
|
field.protectedValue.isProtected,
|
||||||
field.protectedValue.stringValue)
|
field.protectedValue.stringValue)
|
||||||
val fieldTag: String = getTagFromStandardTemplateAttribute(standardFieldTemplateAttribute)
|
val fieldTag: String = getTagFromStandardTemplateAttribute(standardFieldTemplateAttribute)
|
||||||
@@ -239,8 +239,10 @@ abstract class TemplateAbstractView<TEntryFieldView: GenericEntryFieldView, TDat
|
|||||||
buildTemplateAndPopulateInfo()
|
buildTemplateAndPopulateInfo()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
private fun populateEntryFieldView(fieldTag: String,
|
private fun populateEntryFieldView(fieldTag: String,
|
||||||
label: String,
|
label: String,
|
||||||
|
type: TemplateAttributeType,
|
||||||
entryInfoValue: String,
|
entryInfoValue: String,
|
||||||
showEmptyFields: Boolean) {
|
showEmptyFields: Boolean) {
|
||||||
var fieldView: TEntryFieldView? = findViewWithTag(fieldTag)
|
var fieldView: TEntryFieldView? = findViewWithTag(fieldTag)
|
||||||
@@ -249,7 +251,8 @@ abstract class TemplateAbstractView<TEntryFieldView: GenericEntryFieldView, TDat
|
|||||||
} else if (fieldView == null && entryInfoValue.isNotEmpty()) {
|
} else if (fieldView == null && entryInfoValue.isNotEmpty()) {
|
||||||
// Add new not referenced view if standard field not in template
|
// Add new not referenced view if standard field not in template
|
||||||
fieldView = buildViewForNotReferencedField(
|
fieldView = buildViewForNotReferencedField(
|
||||||
Field(label, ProtectedString(false, entryInfoValue))
|
Field(label, ProtectedString(false, entryInfoValue)),
|
||||||
|
type
|
||||||
) as? TEntryFieldView?
|
) as? TEntryFieldView?
|
||||||
fieldView?.let {
|
fieldView?.let {
|
||||||
addNotReferencedView(it as View)
|
addNotReferencedView(it as View)
|
||||||
@@ -259,6 +262,30 @@ abstract class TemplateAbstractView<TEntryFieldView: GenericEntryFieldView, TDat
|
|||||||
fieldView?.applyFontVisibility(mFontInVisibility)
|
fieldView?.applyFontVisibility(mFontInVisibility)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
private fun populateDateTimeView(fieldTag: String,
|
||||||
|
label: String,
|
||||||
|
type: TemplateAttributeType,
|
||||||
|
expires: Boolean,
|
||||||
|
expiryTime: DateInstant,
|
||||||
|
showEmptyFields: Boolean) {
|
||||||
|
|
||||||
|
var fieldView: TDateTimeView? = findViewWithTag(fieldTag)
|
||||||
|
if (!showEmptyFields && !expires) {
|
||||||
|
fieldView?.isFieldVisible = false
|
||||||
|
} else if (fieldView == null && expires) {
|
||||||
|
fieldView = buildViewForNotReferencedField(
|
||||||
|
Field(label, ProtectedString(false, "")),
|
||||||
|
type
|
||||||
|
) as? TDateTimeView?
|
||||||
|
fieldView?.let {
|
||||||
|
addNotReferencedView(it as View)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fieldView?.activation = expires
|
||||||
|
fieldView?.dateTime = expiryTime
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return empty custom fields
|
* Return empty custom fields
|
||||||
*/
|
*/
|
||||||
@@ -267,30 +294,33 @@ abstract class TemplateAbstractView<TEntryFieldView: GenericEntryFieldView, TDat
|
|||||||
|
|
||||||
populateEntryFieldView(FIELD_TITLE_TAG,
|
populateEntryFieldView(FIELD_TITLE_TAG,
|
||||||
TemplateField.LABEL_TITLE,
|
TemplateField.LABEL_TITLE,
|
||||||
|
TemplateAttributeType.INLINE,
|
||||||
entryInfo.title,
|
entryInfo.title,
|
||||||
showEmptyFields)
|
showEmptyFields)
|
||||||
populateEntryFieldView(FIELD_USERNAME_TAG,
|
populateEntryFieldView(FIELD_USERNAME_TAG,
|
||||||
TemplateField.LABEL_USERNAME,
|
TemplateField.LABEL_USERNAME,
|
||||||
|
TemplateAttributeType.INLINE,
|
||||||
entryInfo.username,
|
entryInfo.username,
|
||||||
showEmptyFields)
|
showEmptyFields)
|
||||||
populateEntryFieldView(FIELD_PASSWORD_TAG,
|
populateEntryFieldView(FIELD_PASSWORD_TAG,
|
||||||
TemplateField.LABEL_PASSWORD,
|
TemplateField.LABEL_PASSWORD,
|
||||||
|
TemplateAttributeType.INLINE,
|
||||||
entryInfo.password,
|
entryInfo.password,
|
||||||
showEmptyFields)
|
showEmptyFields)
|
||||||
populateEntryFieldView(FIELD_URL_TAG,
|
populateEntryFieldView(FIELD_URL_TAG,
|
||||||
TemplateField.LABEL_URL,
|
TemplateField.LABEL_URL,
|
||||||
|
TemplateAttributeType.INLINE,
|
||||||
entryInfo.url,
|
entryInfo.url,
|
||||||
showEmptyFields)
|
showEmptyFields)
|
||||||
|
populateDateTimeView(FIELD_EXPIRES_TAG,
|
||||||
val expirationView: TDateTimeView? = findViewWithTag(FIELD_EXPIRES_TAG)
|
TemplateField.LABEL_EXPIRATION,
|
||||||
expirationView?.activation = entryInfo.expires
|
TemplateAttributeType.DATETIME,
|
||||||
expirationView?.dateTime = entryInfo.expiryTime
|
entryInfo.expires,
|
||||||
if (!showEmptyFields && !entryInfo.expires) {
|
entryInfo.expiryTime,
|
||||||
expirationView?.isFieldVisible = false
|
showEmptyFields)
|
||||||
}
|
|
||||||
|
|
||||||
populateEntryFieldView(FIELD_NOTES_TAG,
|
populateEntryFieldView(FIELD_NOTES_TAG,
|
||||||
TemplateField.LABEL_NOTES,
|
TemplateField.LABEL_NOTES,
|
||||||
|
TemplateAttributeType.MULTILINE,
|
||||||
entryInfo.notes,
|
entryInfo.notes,
|
||||||
showEmptyFields)
|
showEmptyFields)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user