From 8a05fc89669772adf494cf989ab6c8d299e06029 Mon Sep 17 00:00:00 2001 From: NerdNumber9 Date: Tue, 28 Feb 2017 16:56:29 -0500 Subject: [PATCH] Add local namespace searching. --- app/src/main/java/exh/search/SearchEngine.kt | 29 ++++++++++++++------ 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/exh/search/SearchEngine.kt b/app/src/main/java/exh/search/SearchEngine.kt index cea46f19d..56eb16525 100644 --- a/app/src/main/java/exh/search/SearchEngine.kt +++ b/app/src/main/java/exh/search/SearchEngine.kt @@ -49,13 +49,25 @@ class SearchEngine { return false } } else { - //Match namespace - val ns = metadata.tags.entries.asSequence().filter { - it.key == component.namespace - }.flatMap { it.value.asSequence() } - //Match tags - if (!matchTagList(ns, component.tag!!)) - return false + if(component.tag!!.components.size > 0) { + //Match namespace + val ns = metadata.tags.entries.asSequence().filter { + it.key == component.namespace + }.flatMap { it.value.asSequence() } + //Match tags + if (!matchTagList(ns, component.tag!!)) + return false + } else { + //Perform namespace search + val hasNs = metadata.tags.entries.find { + it.key == component.namespace + } != null + + if(hasNs && component.excluded) + return false + else if(!hasNs && !component.excluded) + return false + } } } } @@ -87,9 +99,10 @@ class SearchEngine { fun flushAll() { flushText() - if (queuedText.isNotEmpty()) { + if (queuedText.isNotEmpty() || namespace != null) { val component = namespace?.apply { tag = flushToText() + namespace = null } ?: flushToText() component.excluded = nextIsExcluded component.exact = nextIsExact