mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
fix: Search and allow empty query #2096
This commit is contained in:
@@ -892,6 +892,7 @@ open class Database {
|
||||
return mSearchHelper.createVirtualGroupWithSearchResult(this,
|
||||
SearchParameters().apply {
|
||||
searchQuery = searchInfoString
|
||||
allowEmptyQuery = false
|
||||
searchInTitles = true
|
||||
searchInUsernames = false
|
||||
searchInPasswords = false
|
||||
|
||||
@@ -123,11 +123,9 @@ class SearchHelper {
|
||||
*/
|
||||
fun searchInEntry(entry: Entry,
|
||||
searchParameters: SearchParameters): Boolean {
|
||||
val searchQuery = searchParameters.searchQuery
|
||||
|
||||
// Not found if the search string is empty
|
||||
if (searchQuery.isEmpty())
|
||||
return false
|
||||
if (searchParameters.searchQuery.isEmpty())
|
||||
return searchParameters.allowEmptyQuery
|
||||
|
||||
// Exclude entry expired
|
||||
if (!searchParameters.searchInExpired) {
|
||||
@@ -206,10 +204,14 @@ class SearchHelper {
|
||||
regex.matches(stringToCheck)
|
||||
} else {
|
||||
searchParameters.searchQuery.split(" ").any { word ->
|
||||
if (word.isEmpty()) {
|
||||
false
|
||||
} else {
|
||||
specialComparison?.invoke(stringToCheck, word)
|
||||
?: stringToCheck.contains(word, !searchParameters.caseSensitive)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ import android.os.Parcelable
|
||||
*/
|
||||
class SearchParameters() : Parcelable{
|
||||
var searchQuery: String = ""
|
||||
var allowEmptyQuery = true
|
||||
var caseSensitive = false
|
||||
var isRegex = false
|
||||
|
||||
@@ -49,6 +50,7 @@ class SearchParameters() : Parcelable{
|
||||
|
||||
constructor(parcel: Parcel) : this() {
|
||||
searchQuery = parcel.readString() ?: searchQuery
|
||||
allowEmptyQuery = parcel.readByte() != 0.toByte()
|
||||
caseSensitive = parcel.readByte() != 0.toByte()
|
||||
isRegex = parcel.readByte() != 0.toByte()
|
||||
searchInTitles = parcel.readByte() != 0.toByte()
|
||||
@@ -69,6 +71,7 @@ class SearchParameters() : Parcelable{
|
||||
|
||||
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
||||
parcel.writeString(searchQuery)
|
||||
parcel.writeByte(if (allowEmptyQuery) 1 else 0)
|
||||
parcel.writeByte(if (caseSensitive) 1 else 0)
|
||||
parcel.writeByte(if (isRegex) 1 else 0)
|
||||
parcel.writeByte(if (searchInTitles) 1 else 0)
|
||||
|
||||
Reference in New Issue
Block a user