Skip to content

Commit 65ff9b0

Browse files
committed
Improve the result display
1 parent db7b0e6 commit 65ff9b0

2 files changed

Lines changed: 30 additions & 12 deletions

File tree

library/src/main/java/org/secfirst/advancedsearch/presenters/SearchResultPresenter.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class SearchResultPresenter(private val dataProvider: DataProvider,
7777
view: View,
7878
searchTerm: SearchTerm
7979
) {
80-
Logger.getLogger(tag).info("Searching for ${searchTerm}")
80+
Logger.getLogger(tag).info("Searching for $searchTerm")
8181
view.resetResults()
8282
view.displaySearchTerm(searchTerm.text)
8383
bg {
@@ -90,7 +90,16 @@ class SearchResultPresenter(private val dataProvider: DataProvider,
9090
view.showResultsView()
9191
segmentList.forEach { Logger.getLogger(tag).info("Result $it") }
9292
view.addResultsToAdapter(*segmentList.toTypedArray())
93-
view.displaySearchTermWithResultCount(searchTerm.text, segmentList.size)
93+
view.displayResultCountView(segmentList.size)
94+
val criteria: String = searchTerm
95+
.criteria
96+
?.filterNot { it.second.isEmpty() }
97+
?.joinToString(
98+
" "
99+
) {
100+
"\n${it.first}: ${it.second.joinToString()}"
101+
} ?: ""
102+
view.displaySearchTermWithResultCount(searchTerm.text, segmentList.size, criteria)
94103
}
95104
}
96105
false -> {
@@ -134,9 +143,10 @@ class SearchResultPresenter(private val dataProvider: DataProvider,
134143
fun addPillboxToLayout(criteria: SearchCriteria)
135144
fun addEditTextToLayout(criteria: SearchCriteria)
136145
fun addMainTextToLayout(criteria: SearchCriteria)
137-
fun displaySearchTermWithResultCount(searchTerm: String, count: Int)
138146
fun emptyFields()
139147
fun showApplyResultsView()
140148
fun hideApplyResultsView()
149+
fun displayResultCountView(count: Int)
150+
fun displaySearchTermWithResultCount(searchTerm: String, count: Int, criteria: String)
141151
}
142152
}

library/src/main/java/org/secfirst/advancedsearch/views/SearchResultView.kt

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,12 @@ class SearchResultView : FrameLayout, SearchResultPresenter.View {
108108
.forEach {criteriaChild ->
109109
when(criteriaChild) {
110110
is EditText -> {
111-
if (!list.containsKey(criteriaChild.tag as String?)) {
111+
if (!list.containsKey(criteriaChild.tag as String?) && criteriaChild.text.isNotEmpty()) {
112112
list[criteriaChild.tag as String] = listOf(criteriaChild.text.toString())
113113
}
114114
}
115115
is AutoCompleteTextView -> {
116-
if (!list.containsKey(criteriaChild.tag as String?)) {
116+
if (!list.containsKey(criteriaChild.tag as String?) && criteriaChild.text.isNotEmpty()) {
117117
list[criteriaChild.tag as String] = listOf(criteriaChild.text.toString())
118118
}
119119
}
@@ -132,10 +132,12 @@ class SearchResultView : FrameLayout, SearchResultPresenter.View {
132132
}
133133
is AutoCompleteTextView -> {
134134
(linearLayoutChild.tag as String?)?.let { criteria ->
135-
list[criteria] = listOf(
136-
linearLayoutChild.text.toString(),
137-
*list[criteria]?.toTypedArray() ?: arrayOf()
138-
)
135+
if (linearLayoutChild.text.isNotEmpty()) {
136+
list[criteria] = listOf(
137+
linearLayoutChild.text.toString(),
138+
*list[criteria]?.toTypedArray() ?: arrayOf()
139+
)
140+
}
139141
}
140142
}
141143
else -> {
@@ -170,13 +172,19 @@ class SearchResultView : FrameLayout, SearchResultPresenter.View {
170172
}
171173
}
172174

173-
override fun displaySearchTermWithResultCount(searchTerm: String, count: Int) {
174-
searchTermView.visibility = View.VISIBLE
175+
override fun displayResultCountView(count: Int) {
175176
resultCount.text = context.resources.getQuantityString(R.plurals.results_for_this_query, count, count)
176-
searchTermView.text = context.getString(R.string.results_while_searching, searchTerm)
177177

178178
}
179179

180+
override fun displaySearchTermWithResultCount(searchTerm: String, count: Int, criteria: String) {
181+
searchTermView.visibility = View.VISIBLE
182+
searchTermView.text = when(searchTerm.isEmpty()) {
183+
false -> context.getString(R.string.results_while_searching_for, searchTerm, criteria)
184+
true -> context.getString(R.string.results_while_searching, criteria)
185+
}
186+
}
187+
180188
override fun hideSearchTermView() {
181189
searchTermView.visibility = View.GONE
182190
}

0 commit comments

Comments
 (0)