mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Fix search filters depending on database version
This commit is contained in:
@@ -664,9 +664,11 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
if (group?.isVirtual == true) {
|
||||
searchFiltersView?.setNumbers(group.numberOfChildEntries)
|
||||
searchFiltersView?.setCurrentGroupText(mMainGroup?.title ?: "")
|
||||
searchFiltersView?.enableOther(mDatabase?.allowEntryCustomFields() ?: false)
|
||||
searchFiltersView?.availableOther(mDatabase?.allowEntryCustomFields() ?: false)
|
||||
searchFiltersView?.availableTags(mDatabase?.allowTags() ?: false)
|
||||
searchFiltersView?.enableTags(mDatabase?.tagPool?.isNotEmpty() ?: false)
|
||||
searchFiltersView?.enableSearchableGroup(mDatabase?.allowCustomSearchableGroup() ?: false)
|
||||
searchFiltersView?.availableSearchableGroup(mDatabase?.allowCustomSearchableGroup() ?: false)
|
||||
searchFiltersView?.availableTemplates(mDatabase?.allowTemplatesGroup ?: false)
|
||||
searchFiltersView?.enableTemplates(mDatabase?.templatesGroup != null)
|
||||
toolbarBreadcrumb?.navigationIcon = null
|
||||
} else {
|
||||
|
||||
@@ -495,7 +495,7 @@ class Database {
|
||||
* Determine if a configurable templates group is available or not for this version of database
|
||||
* @return true if a configurable templates group available
|
||||
*/
|
||||
val allowConfigurableTemplatesGroup: Boolean
|
||||
val allowTemplatesGroup: Boolean
|
||||
get() = mDatabaseKDBX != null
|
||||
|
||||
// Maybe another templates method with KDBX5
|
||||
|
||||
@@ -435,7 +435,7 @@ class Group : Node, GroupVersionedInterface<Group, Entry> {
|
||||
}
|
||||
|
||||
var searchable: Boolean?
|
||||
get() = if (groupKDB != null) true else groupKDBX?.enableSearching
|
||||
get() = groupKDBX?.enableSearching
|
||||
set(value) {
|
||||
groupKDBX?.enableSearching = value
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@ class SearchHelper {
|
||||
// Search all entries
|
||||
incrementEntry = 0
|
||||
|
||||
val allowSearchable = database.allowCustomSearchableGroup()
|
||||
val startGroup = if (searchParameters.searchInCurrentGroup && fromGroup != null) {
|
||||
database.getGroupById(fromGroup) ?: database.rootGroup
|
||||
} else {
|
||||
@@ -69,12 +70,14 @@ class SearchHelper {
|
||||
},
|
||||
object : NodeHandler<Group>() {
|
||||
override fun operate(node: Group): Boolean {
|
||||
val inRecycleBin = database.groupIsInRecycleBin(node)
|
||||
val inTemplates = database.groupIsInTemplates(node)
|
||||
return when {
|
||||
incrementEntry >= max -> false
|
||||
searchParameters.searchInRecycleBin -> database.groupIsInRecycleBin(node)
|
||||
searchParameters.searchInTemplates -> database.groupIsInTemplates(node)
|
||||
searchParameters.searchInSearchableGroup -> node.isSearchable()
|
||||
else -> true
|
||||
searchParameters.searchInRecycleBin -> inRecycleBin
|
||||
searchParameters.searchInTemplates -> inTemplates
|
||||
(allowSearchable && searchParameters.searchInSearchableGroup) -> node.isSearchable()
|
||||
else -> !inRecycleBin && !inTemplates
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -238,7 +238,7 @@ class NestedDatabaseSettingsFragment : NestedSettingsFragment(), DatabaseRetriev
|
||||
// Templates
|
||||
val templatesGroupPrefCategory: PreferenceCategory? = findPreference(getString(R.string.database_category_templates_key))
|
||||
templatesGroupPref = findPreference(getString(R.string.templates_group_uuid_key))
|
||||
if (database.allowConfigurableTemplatesGroup) {
|
||||
if (database.allowTemplatesGroup) {
|
||||
val templatesEnablePref: SwitchPreference? = findPreference(getString(R.string.templates_group_enable_key))
|
||||
templatesEnablePref?.apply {
|
||||
isChecked = database.isTemplatesEnabled
|
||||
|
||||
@@ -64,7 +64,7 @@ class DatabaseTemplatesGroupPreferenceDialogFragmentCompat
|
||||
super.onDialogClosed(database, positiveResult)
|
||||
if (positiveResult) {
|
||||
database?.let {
|
||||
if (database.allowConfigurableTemplatesGroup) {
|
||||
if (database.allowTemplatesGroup) {
|
||||
val oldGroup = database.templatesGroup
|
||||
val newGroup = mGroupTemplates
|
||||
database.setTemplatesGroup(newGroup)
|
||||
|
||||
@@ -9,6 +9,7 @@ import android.widget.CompoundButton
|
||||
import android.widget.ImageView
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.core.view.isVisible
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.database.search.SearchHelper
|
||||
import com.kunzisoft.keepass.database.search.SearchParameters
|
||||
@@ -199,16 +200,24 @@ class SearchFiltersView @JvmOverloads constructor(context: Context,
|
||||
}
|
||||
}
|
||||
|
||||
fun enableOther(enable: Boolean) {
|
||||
searchOther.isEnabled = enable
|
||||
fun availableOther(available: Boolean) {
|
||||
searchOther.isVisible = available
|
||||
}
|
||||
|
||||
fun availableTags(available: Boolean) {
|
||||
searchTag.isVisible = available
|
||||
}
|
||||
|
||||
fun enableTags(enable: Boolean) {
|
||||
searchTag.isEnabled = enable
|
||||
}
|
||||
|
||||
fun enableSearchableGroup(enable: Boolean) {
|
||||
searchGroupSearchable.isEnabled = enable
|
||||
fun availableSearchableGroup(available: Boolean) {
|
||||
searchGroupSearchable.isVisible = available
|
||||
}
|
||||
|
||||
fun availableTemplates(available: Boolean) {
|
||||
searchTemplate.isVisible = available
|
||||
}
|
||||
|
||||
fun enableTemplates(enable: Boolean) {
|
||||
|
||||
Reference in New Issue
Block a user