mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
fix: Search Info
This commit is contained in:
@@ -170,16 +170,27 @@ class SearchHelper {
|
||||
if (checkSearchQuery(hexString, searchParameters))
|
||||
return true
|
||||
}
|
||||
if (searchParameters.searchInOTP) {
|
||||
if(entry.getExtraFields().any { field ->
|
||||
field.name == OTP_FIELD
|
||||
&& checkSearchQuery(field.protectedValue.stringValue, searchParameters)
|
||||
})
|
||||
return true
|
||||
}
|
||||
if (searchParameters.searchInRelyingParty) {
|
||||
if(entry.getExtraFields().any { field ->
|
||||
field.name == FIELD_RELYING_PARTY
|
||||
&& checkSearchQuery(field.protectedValue.stringValue, searchParameters)
|
||||
})
|
||||
return true
|
||||
}
|
||||
if (searchParameters.searchInOther) {
|
||||
entry.getExtraFields().forEach { field ->
|
||||
if ( (field.name != OTP_FIELD && field.name != FIELD_RELYING_PARTY)
|
||||
|| (searchParameters.searchInOTP && field.name == OTP_FIELD)
|
||||
|| (searchParameters.searchInRelyingParty && field.name == FIELD_RELYING_PARTY)
|
||||
) {
|
||||
if (checkSearchQuery(field.protectedValue.toString(), searchParameters))
|
||||
return true
|
||||
}
|
||||
}
|
||||
if(entry.getExtraFields().any { field ->
|
||||
field.name != OTP_FIELD
|
||||
&& field.name != FIELD_RELYING_PARTY
|
||||
&& checkSearchQuery(field.protectedValue.toString(), searchParameters)
|
||||
})
|
||||
return true
|
||||
}
|
||||
if (searchParameters.searchInTags) {
|
||||
if (checkSearchQuery(entry.tags.toString(), searchParameters))
|
||||
|
||||
@@ -59,6 +59,7 @@ class SearchParameters() : Parcelable{
|
||||
searchInExpired = parcel.readByte() != 0.toByte()
|
||||
searchInNotes = parcel.readByte() != 0.toByte()
|
||||
searchInOTP = parcel.readByte() != 0.toByte()
|
||||
searchInRelyingParty = parcel.readByte() != 0.toByte()
|
||||
searchInOther = parcel.readByte() != 0.toByte()
|
||||
searchInUUIDs = parcel.readByte() != 0.toByte()
|
||||
searchInTags = parcel.readByte() != 0.toByte()
|
||||
@@ -79,6 +80,7 @@ class SearchParameters() : Parcelable{
|
||||
parcel.writeByte(if (searchInExpired) 1 else 0)
|
||||
parcel.writeByte(if (searchInNotes) 1 else 0)
|
||||
parcel.writeByte(if (searchInOTP) 1 else 0)
|
||||
parcel.writeByte(if (searchInRelyingParty) 1 else 0)
|
||||
parcel.writeByte(if (searchInOther) 1 else 0)
|
||||
parcel.writeByte(if (searchInUUIDs) 1 else 0)
|
||||
parcel.writeByte(if (searchInTags) 1 else 0)
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.kunzisoft.keepass.utils.writeBooleanCompat
|
||||
|
||||
class SearchInfo : ObjectNameResource, Parcelable {
|
||||
var manualSelection: Boolean = false
|
||||
var tag: String? = null
|
||||
var applicationId: String? = null
|
||||
set(value) {
|
||||
field = when {
|
||||
@@ -41,6 +42,7 @@ class SearchInfo : ObjectNameResource, Parcelable {
|
||||
|
||||
constructor(toCopy: SearchInfo?) {
|
||||
manualSelection = toCopy?.manualSelection ?: manualSelection
|
||||
tag = toCopy?.tag
|
||||
applicationId = toCopy?.applicationId
|
||||
webDomain = toCopy?.webDomain
|
||||
webScheme = toCopy?.webScheme
|
||||
@@ -50,6 +52,8 @@ class SearchInfo : ObjectNameResource, Parcelable {
|
||||
|
||||
private constructor(parcel: Parcel) {
|
||||
manualSelection = parcel.readBooleanCompat()
|
||||
val readTag = parcel.readString()
|
||||
tag = if (readTag.isNullOrEmpty()) null else readTag
|
||||
val readAppId = parcel.readString()
|
||||
applicationId = if (readAppId.isNullOrEmpty()) null else readAppId
|
||||
val readDomain = parcel.readString()
|
||||
@@ -68,6 +72,7 @@ class SearchInfo : ObjectNameResource, Parcelable {
|
||||
|
||||
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
||||
parcel.writeBooleanCompat(manualSelection)
|
||||
parcel.writeString(tag ?: "")
|
||||
parcel.writeString(applicationId ?: "")
|
||||
parcel.writeString(webDomain ?: "")
|
||||
parcel.writeString(webScheme ?: "")
|
||||
@@ -85,7 +90,8 @@ class SearchInfo : ObjectNameResource, Parcelable {
|
||||
}
|
||||
|
||||
fun containsOnlyNullValues(): Boolean {
|
||||
return applicationId == null
|
||||
return tag == null
|
||||
&& applicationId == null
|
||||
&& webDomain == null
|
||||
&& webScheme == null
|
||||
&& relyingParty == null
|
||||
@@ -103,11 +109,12 @@ class SearchInfo : ObjectNameResource, Parcelable {
|
||||
fun buildSearchParameters(): SearchParameters {
|
||||
return SearchParameters().apply {
|
||||
if (isAPasskeySearch()) {
|
||||
searchQuery = toString()
|
||||
searchQuery = relyingParty!!
|
||||
searchInTitles = false
|
||||
searchInUsernames = false
|
||||
searchInPasswords = false
|
||||
searchInUrls = false
|
||||
searchByDomain = false
|
||||
searchInNotes = false
|
||||
searchInOTP = false
|
||||
searchInOther = false
|
||||
@@ -143,6 +150,7 @@ class SearchInfo : ObjectNameResource, Parcelable {
|
||||
if (other !is SearchInfo) return false
|
||||
|
||||
if (manualSelection != other.manualSelection) return false
|
||||
if (tag != other.tag) return false
|
||||
if (applicationId != other.applicationId) return false
|
||||
if (webDomain != other.webDomain) return false
|
||||
if (webScheme != other.webScheme) return false
|
||||
@@ -154,6 +162,7 @@ class SearchInfo : ObjectNameResource, Parcelable {
|
||||
|
||||
override fun hashCode(): Int {
|
||||
var result = manualSelection.hashCode()
|
||||
result = 31 * result + (tag?.hashCode() ?: 0)
|
||||
result = 31 * result + (applicationId?.hashCode() ?: 0)
|
||||
result = 31 * result + (webDomain?.hashCode() ?: 0)
|
||||
result = 31 * result + (webScheme?.hashCode() ?: 0)
|
||||
@@ -163,7 +172,7 @@ class SearchInfo : ObjectNameResource, Parcelable {
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return otpString ?: webDomain ?: applicationId ?: relyingParty ?: ""
|
||||
return otpString ?: webDomain ?: applicationId ?: relyingParty ?: tag ?: ""
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
Reference in New Issue
Block a user